Numerická inegrace Mirko Navara Cenrum srojového vnímání kaedra kyberneiky FEL ČVUT Karlovo náměsí, budova G, mísnos 14a hp://cmpfelkcvucz/~navara/nm 1 lisopadu 18 Úloha: Odhadnou b a f() d na základě hodno funkce f v konečně mnoha uzlových bodech x,, x n 1 Pokud se aproximace ϕ na inervalu a, b liší od f nejvýše o ε, pak b I b ϕ() d = (f() ϕ()) d Příklad: a b a a b a f() ϕ() d (b a) ε sin 1 d je náročnou úlohou pro počíačové algebraické sysémy, ale z numerického hlediska není nijak zvlášť obížný Linearia: Inegrál závisí na inegrandu lineárně, proo odhad inegrálu závisí lineárně na f(x ),, f(x n 1 ): A = i<n w i f(x i ), Můžeme voli pouze uzlové body x,, x n 1 a jejich váhy w,, w n 1 Zjednodušení: Funkci f aproximujeme inerpolačním polynomem a, b rozdělíme na k inervalů a j, a j+1, j =,, k 1, kde a = a, a k = b V dílčích inervalech použijeme náhradu polynomem nízkého supně, vedoucí na zv jednoduchý vzorec, j odhad A j inegrálu Sečením dosaneme složený vzorec, j odhad I j = aj+1 a j f() d A = j<k A j inegrálu j<k I j = b a f() d Zjednodušení: Všechny dílčí inervaly mají sejnou délku H = b a k = a j+1 a j 1
Každý dílčí inerval lze lineární subsiucí převés na jednokový inerval, 1 Obecný případ dosaneme lineární subsiucí u = a j H, = a j + H u, I j = aj+1 a j f() d = 1 Newonovy-Coesovy vzorce Uzlové body ekvidisanní 11 Meoda levého odhadu H f(a j + H u) du = g j (u) = H f(a j + H u), g (m) j (u) = H m+1 f (m) (a j + H u) g j (u) du, Jediný uzlový bod v krajním bodě inervalu, u = ; g j nahradíme konsanou g j (u ) = g j () Jednoduchý vzorec: Složený vzorec: L = j<k L j = L j = H j<k g j () d = g j () = H f(a j ) f(a j ) = H j<k f(a + j H) Rovnocenný je odhad pro volbu u = 1, meoda pravého odhadu 1 Obdélníková meoda Uzlový bod ve sředu inervalu, u = 1/ Proložíme konsanu g j (u ) = g j (1/) Jednoduchý vzorec: Složený vzorec: R j = g j (1/) d = g j (1/) = H f(a j + H/) R = R j = H f(a j + H/) = H f(a 1/ + j H), j<k j<k j<k kde a 1/ = a + H/
1 Lichoběžníková meoda Dva uzlové body na krajích inervalu, u =, u 1 = 1 Proložíme lineární funkci, výsledkem bude plocha pod přímkou, neboli obsah lichoběžníka Jednoduchý vzorec: Složený vzorec: T = j<k T j = g j(u ) + g j (u 1 ) T j = H j<k f(a j ) + f(a j+1 ) = g j() + g j (1) = H = H f(a j) + f(a j+1 ) f(a) + f(b) f(a + j H) k 1 + j=1 14 Simpsonova meoda Tři uzlové body; dva na krajích inervalu, jeden uprosřed, u =, u 1 = 1/, u = 1 Proložíme kvadraický polynom a zinegrujeme Jednoduchý vzorec: S j = w g j (u ) + w 1 g j (u 1 ) + w g j (u ) = w g j () + w 1 g j (1/) + w g j (1)
Vzorec bude přesný, bude-li g j libovolný kvadraický polynom Speciálně pro g j (u) {1, u, u }: w + w 1 + w = 1 w 1 + w = 1 4 w 1 + w = 1 du = 1, u du = 1, u du = 1 To je sousava lineárních rovnic pro neznámé w, w 1, w, řešení: w = 1 6, w 1 =, w = 1 6 Jednoduchý vzorec: S j = g j (1/) d = 1 6 g j() + g j(1/) + 1 6 g j(1) = H 6 (f(a j) + 4 f(a j + H/) + f(a j+1 )) Složený vzorec: S = j<k S j = H 6 = H 6 kde a 1/ = a + H/ (pozor na meze sum!) ( k 1 f(a ) + f(a k ) + f(a j ) + 4 j=1 k 1 j= ( k 1 f(a) + f(b) + f(a + j H) + 4 j=1 ) f(a j + H/) k 1 j= ) f(a 1/ + j H), S = h (f(x ) + 4 f(x 1 ) + f(x ) + 4 f(x ) + + 4 f(x k 1 ) + f(x k )), kde x i = a + i h jsou uzlové body (pro funkci f, nikoli g j ) a h = H/ je vzdálenos mezi sousedními uzlovými body Poče inervalů délky h musí bý sudý! 15 Obecné Newonovy-Coesovy vzorce oevřené (obdélníková meoda) uzavřené (lichoběžníková a Simpsonova meoda) polooevřené (meoda levého odhadu) 4
Odhad chyby numerické inegrace Zjednodušení: pro lichoběžníkovou meodu Předpokládejme, že g j má na inervalu, 1 spojiou druhou derivaci Funkci g j nahrazujeme lineárním polynomem ϕ j ; chyba inerpolace v bodě u je T j I j = g j (u) ϕ j (u) ϕ j (u) du max v,1 g j (v) max v,1 g j (v) (u ) (u 1), g j (u) du ϕ j (u) g j (u) du (u u ) du = max v,1 g j (v) = 1 1 max v,1 g j (v) = 1 1 H max f () a j,a j+1 ( 1 1 ) Vyjádříme pomocí M max a,b f (), T j I j 1 1 H M, složený vzorec T I k 1 H M, po náhradě konsanního součinu k H = b a 1 Řád meod inegrace T I (b a) M 1 Definice Nechť funkce A vyjadřuje výsledek inegrační meody v závislosi na délce kroku, I je správný výsledek Pokud exisuje ln A(H) I lim, H ln H nazývá se řád meody H Poznámka V logarimických souřadnicích má řád meody význam směrnice asympoy v Poznámka Časo se řád meody inegrace zavádí jako exponen u H v nejnižším obecně nenulovém členu Taylorova rozvoje chyby meody podle H v okolí bodu Věa Nechť funkce A vyjadřuje výsledek inegrační meody v závislosi na délce kroku, I je správný výsledek Nechť p je exponen u H v nejnižším nenulovém členu Taylorova rozvoje chyby meody podle H v okolí bodu Pokud má A spojiou p-ou derivaci v, pak p je řád meody ve smyslu Definice 1 Důkaz Taylorův rozvoj se zbykem v Lagrangeově varu lze psá A(H) = I + Hp p! A (p) (ξ(h)), kde ξ(h), H, akže lim ξ(h) = H A(p) () 5
H p ln A ln A(H) I (p) (ξ(h)) p! lim = lim = H ln H H ln H p ln H ln p! + ln A (p) (ξ(h)) = lim = H ln H ln p! + ln A (p) (ξ(h)) = p + lim H ln H Čiael posledního zlomku konverguje k ln p! + ln A (p) (), jmenovael k, celý zlomek k meoda horní odhad chyby řád levého odhadu 1 H 1 lichoběžníková 1 H obdélníková 4 H Simpsonova 4 88 H 4 4 = 18 h 4 4 Simpsonova meoda dává chybu nikoli řeího, ale čvrého řádu Je-li f, a edy i g j, polynom supně nejvýše, pak chyba inerpolace kvadraickým polynomem je úměrná Na hodnoě inegrálu se o neprojeví, neboť Příklad 1: W (u) = (u ) (u 1/) (u 1) W (u) du = e d s přesnosí ε = 1 6 Sanove posačující poče kroků pro jednolivé meody Pro k = me M p horní odhad H poče kroků 1 L e = 86 6 86 = 116 1 6 1 7 1 1 T 6 = 17 1 1155 4 1 R 6 = 45 1 817 4 S 1 = 1 exp( ) d Gaussova meoda inegrace 88 1 6 1 L = 91146, R = 881118, T = 884, S = 8881, = 88 81 9 Na inervalu 1, 1 volíme za uzlové body kořeny z,, z s 1 1, 1 zv Legendreových polynomů Lineární ransformací u = z + 1, z = u 1 dosaneme uzlové body u,, u s 1, 1 Uzlové body a jejich váhy w,, w s 1 jsou abelovány nebo raději počíány algorimem Volíme pouze jejich poče s a ím i řád meody 6
s uzlové body váhy 1 ± 1 = ±5775 1 ± 5 +4 4 ± 7 ± 5 ± ± 4 7 7+4 7 16 7 4 7 16 = ±774597 5 9 8 9 = ±86116 47855 = ±9981 65145 = ±9618 697 = ±58469 47869 568889 jednoduchý vzorec: G s,j = i<s w i g j (u i ) = H i<s w i f(a j + H u i ) složený vzorec: G s = G s,j = H w i f(a j + H u i ) = H ( ) w i f(d i + j H), j<k j<k i<s i<s j<k kde d i = a + H u i a, a 1 Horní odhad chyby kde G s I (b a) (s!)4 M s (s + 1) ((s)!) Hs, M s max v a,b f (s) (v) Chyba meody je řádu s, díky volbě s uzlových bodů a s vah, j s paramerů V Newonových-Coesových vzorcích jsme volbou s vah (při daných uzlových bodech) dosali meody řádu s nebo s + 1 poče uzlových bodů horní odhad chyby řád 1 4 H 4 4 H 4 4 6 16 H6 6 4 8 1 778 11 H8 8 5 1 54 876 467 H1 1 Příklad 1 (pokračování): s přesnosí ε = 1 6 e d A M p horní odhad H p kroků 1 L e = 86 6 86 = 116 1 6 1 7 1 1 T 6 = 17 1 1155 4 1 R 6 = 45 1 817 4 88 1 S 1 6 1 = 1 4 4 1 G 1 6 1 = 115 18 8 G 4 168 = 9 1 778 11 1 6 168 7
4 Richardsonova exrapolace Úloha: Správný výsledek nějakého výpoču je A() = lim A(H) Předpokládáme, že A má v okolí bodu H Taylorův rozvoj A(H) = A() + Hp p! A(p) () + Hr r! A(r) () +, kde p (řád meody) známe a r > p Z hodno funkce A v konečně mnoha nenulových bodech máme odhadnou A() Řešení: Zanedbáme členy řádů vyšších než p a aproximujeme A polynomem ϕ(h) = s + c H p, s, c R Ke sanovení s, c zvolíme uzlové body H, H/q, kde q 1: ϕ(h) = s + c H p = A(H), ( ) ( ) H ϕ q = s + c Hp H q p = A q To je regulární sousava dvou lineárních rovnic pro dvě neznámé s, c, z nichž nás zajímá pouze s = ϕ(): ( ) (q p 1) s = q p A A(H), s = ( q p A ) H q H q A(H) q p 1 Odhad s hodnoy A() je zaížen pouze chybami vyšších řádů než p (zde řádu r) Časo q =, pak s = p A ( ) H A(H) p 1 5 Richardsonova exrapolace při inegraci Richardsonovou exrapolací dosaneme nový odhad Výraz B(H) = qp A( H q ) A(H) q p 1 A( H q ) A(H) q p 1 můžeme rovněž považova za odhad chyby výsledku A( H q ) Speciálně pro q = (meoda polovičního kroku): B(H) = p A( H ) A(H) p 1 = A( H q ) + A( H q ) A(H) q p 1 = I A( H q ) = A( H ) + A( H ) A(H) p 1 I A( H ) = A( H ) A(H) p 1 Pro lichoběžníkovou meodu lze doporuči q = 8
Polovina nových uzlových bodů (pro krok H/) se kryje se sarými (pro krok H); dosaneme odhad T ( H ) + T ( H ) T (H) = R(H) + T (H) shodný se Simpsonovou meodou Richardsonovou exrapolací lze zpřesni i Simpsonovu meodu, dosaneme odhad 6 řádu S( H ) + S( H ) S(H) 15 Richardsonovou exrapolací pro obdélníkovou meodu s polovičním krokem dosaneme odhad, kerý se však nehodí: R( H ) + R( H ) R(H), 9
Vhodnější je řeinový krok, q =, R( H ) + R( H ) R(H) 8 6 Rombergova meoda Vychází z více odhadů získaných lichoběžníkovou meodou pro kroky H, H/, H/4, Taylorův rozvoj chyby lichoběžníkové meody má nenulové pouze členy sudého řádu Proo se každou Richardsonovou exrapolací zvýší řád o dvě 1
řád 4 6 8 k T ( H k ) S( H k ) k T (H) = T, k T ( H ) = T 1, T 1,1 4 k T ( H 4 ) = T, T,1 T, 8 k T ( H 8 ) = T, T,1 T, T, Obecně ve sloupci j + 1: T i,j = T i,j 1 + T i,j 1 T i 1,j 1 4 j 1 Za výsledek bereme T i,i, chyba je řádu i a odhadujeme ji zhruba výrazem T i,i 1 T i 1,i 1 nebo T i,i T i 1,i 1 Příklad 1 (pokračování): Výsledky Rombergovy meody pro dělení: řád 4 6 8 k T ( H k ) S( H k ) 4 8861 8 8817 88655 16 8817 888 88819 885 8881 88818 88818 S planými ciframi 8881 se shodují výsledky vyznačené kurzívou Příklad : Výsledky Rombergovy meody pro řád 4 6 8 1 k T ( H k ) S( H k ) 1 1578 944 4 1 1781 147 9778 8 1 1781 1 1781 11868 11915 16 1 1789 1 1789 1 1789 1 17795 1 1779 S planými ciframi 1 178 se shodují výsledky vyznačené kurzívou π 7 Prakické sanovení poču inervalů z horního odhadu chyby meoda dvojího (nejčasěji polovičního) kroku Příklad 1 (pokračování): e d s počáeční volbou 4 inervalů sin 4 d, s počáeční volbou 1 inervalu dělení: s přesnosí ε = 1 6 Simpsonova meoda s krokem a 1: Odhad chyby medoou polovičního kroku je S() S(1) S(1) S() 15 e d = 899444, = 881814 11 = 4578,
požadovaná chyba je zhruba 458 menší, což vyžaduje zvýši poče kroků v poměru alespoň 4 458 = 77 Pro 4 a 8 menší krok, j pro 8 a 16 inervalů dělení: Odhad chyby posledního výsledku je S( 8 ) = 88896576, S( 16 ) = 88818646 S( 16 ) S( 8 ) = 6 1 8 15 (Již víme, že posačuje inervalů dělení) Richardsonova exrapolace: S( 16 ) + S( 16 ) S( 8 ) = 88819784, 15 Přesnější výsledek je 88819764168 Příklad : sin d s přesnosí ε = 1 8 Zkusíme 5-bodovou Gaussovu meodu (1 řádu) s krokem 1 a 1 : Odhad chyby medoou polovičního kroku je G 5 (1) = 61166517, G 5 ( 1 ) = 675967 G 5 ( 1 ) G 5(1) 1 1 = 4 1 7, požadovaná chyba je zhruba 4 menší, což vyžaduje zvýši poče kroků v poměru alespoň 1 4 = 15 Měl by edy sači menší krok, j 4 inervaly dělení: Odhad chyby posledního výsledku je G 5 ( 1 ) = 675967 G 5 ( 1 4 ) = 661567 G 5 ( 1 4 ) G 5( 1 ) 1 1 = 14 1 7, edy jen asi řikrá menší, ač se měl zmenši v poměru 1 = 14 Přesnější výsledek je 6566446766 8 Řešení obížnějších úloh úpravou zadání 81 Inegrace přes nekonečný inerval Příklad 4: e d s přesnosí ε = 1 6 I nekonečný obor inegrace lze (nelineární) subsiucí převés na konečný, 1, zde např = 1/u: e 1 u u du 1
Můžeme využí známé určié inegrály, např e d = e d }{{} π/ e d, Můžeme se omezi na konečný inerval a zbyek zanedba V našem případě lze použí odhad (se subsiucí x = u) x e d = e x e x u u du e x Pro x 85 je eno výraz menší než ε, akže sačí vypočía e x u du = e x x s přesnosí ε 85 e d 8 Omezení inervalu se může hodi, i když obor inegrace je konečný: Příklad 5: e d Simpsonovou meodou s 1 kroky: 4-bodovou Gaussovou meodou se 1 kroky: 481, 14, Dopusíme se chyby menší než ε = 5 1 7, snížíme-li horní mez na 85 Pak sačí Simpsonova meoda s kroky 414549 Přesnější výsledek je 8 Pomalu konvergenní inegrály Přičení známého určiého inegrálu Příklad (pokračování): 41455469 může zásadně změni obížnos numerického výpoču: sin d Inegrand má v okolí nuly neomezenou derivaci V okolí nuly je sin, sin neomezená, ale známe d = Rozdíl sin Derivace je sice nadále má derivace omezené a jeho inegrace nečiní zvlášní poíže Výpoče 5-bodovou Gaussovu meodu (1 řádu) se dvěma a čyřmi inervaly dělení dává ( sin ) d = G 5 ( 1 ) = 4618175, G 5 ( 1 4 ) = 46164858 1
Odhad chyby meodou polovičního kroku: Přesnější výsledek je Výsledek původního zadání je (přesněji 6566446766) G 5 ( 1 4 ) G 5( 1 ) 1 1 sin d = = 17 1 11 46161994465 d + = 4616486 = 6566181 ( sin ) d Subsiuce funkcí, kerá má v odpovídajícím bodě c nulové derivace dosaečně mnoha řádů, např = c+u s, kde exponen s volíme raději vyšší než nižší Příklad (pokračování): sin d Subsiucí = u dosaneme sin d = sin u du 5-bodová Gaussova meoda (1 řádu) s jedním a dvěma inervaly dělení: G 5 (1) = 6566796, odhad chyby meodou polovičního kroku G 5 ( 1 ) = 6566496, G 5 ( 1 ) G 5(1) 1 1 = 17 1 11 Chěli bychom, aby se inegrand v okolí problémového bodu blížil konsaně; mohli jsme použí éž subsiuci = u s dobrým výsledkem Příklad 6: 1 sin d s přesnosí 1 8 Omezení na konečný obor nepomůže, neboť např 999997 Hledaný inegrál není absoluně konvergenní Pořebujeme kde ovšem inegrál 1 sin d = = sin d = 19 sin π d = sin 1 sin d d π 6566188 = 67775557, sin d byl rovněž problémový; využili jsme řešení příkladu Přesnější výsledek je 67775874611 14