Numeriká integrae (kvadratura) Úvod V jedné dimenzi jde o numeriký výpočet integrálu I = b a f(x) dx Tato úloha je ekvivalentní řešení počátečního problému pro obyčejnou difereniální rovnii (ODE) di dx = f(x) s podmínkou I(a) = 0 kdy se hledá I(b). Metody řešení ODE obsahují adaptivní volbu kroku a proto převedení na úlohu ODE je vhodné u funkí, které mají proměnné měřítko (např. integrae spektra s úzkými spektrálními čarami) Metody numeriké integrae: Integrae aproximované funke (kubiký spline, Čebyševův polynom) Klasiké kvadraturní vzore + případně Rombergova integrae Gaussovy kvadratury Integrae ve víe dimenzíh je samostatnou kapitolou. Ukážeme si následujíí přístupy: rozklad na opakované integrae v jedné proměnné integrál pomoí metody Monte Carlo
2 Klasiké kvadraturní vzore Uvažujeme ekvidistantní body x i f(x i ) = f i. = + (i )h, kde i =,..., N, a Základní formule přesný integrál pro polynomy do určitého stupně. uzavřené (obsahují krajní body) otevřené extrapolační používají body i + 2 Složené formule 2. Uzavřené Newton Cotesovy vzore Lihoběžníkové pravidlo Vzore x 2 2 f + 2] 2 f + O ( h 3 f ) je přesný pro polynomy do prvního stupně včetně. Chybu vzore můžeme odvodit pomoí rozkladu do Taylorovy řady x 2 f(x) dx = h f( ) + f ( ) x + f ( ) x2 2 +... d x = 0 = h 2 f + ( f + f ( )h + ) 2 2 f ( )h 2 +... ] + }{{} f 2 + f ( ) Simpsonovo pravidlo h3 6 h3 4 } {{ } 2 f ( )h 3 = h 2 (f + f 2 ) + O ( h 3 f ) Je to tříbodový vzore konstruovaný pro polynom druhého stupně, ale je přesný i pro integrai polynomu třetího stupně x 3 3 f + 4 3 f 2 + 3] 3 f + O ( h 5 f (4)) 2
Simpsonovo 3/8 pravidlo Je to čtyřbodový vzore, přesný pro integrai polynomu třetího stupně x 4 3 8 f + 9 8 f 2 + 9 8 f 3 + 3 4] 8 f + O ( h 5 f (4)) 2.2 Jiné typy jednoduhýh vzorů Otevřené Newton-Cotesovy formule Otevřené formule se nedají vhodně skládat vedle sebe nejde z nih sestavovat rozšířené formule. Například x 6 Extrapolační formule 55 24 f 2 + 5 24 f 3 + 5 24 f 4 + 55 ] 24 f 5 + O ( h 5 f (4)). Extrapolační formule se někdy hodí na okrajíh. Počítají integrál s pomoí bodů ležííh mimo interval. Jako příklad uvedeme x 2 f 2 + O ( h 2 f x 2 3 2 f 2 3] 2 f + O ( h 3 f ). Integrae s polovičními body ) Příkladem (často užívaným) je obdélníkové pravidlo. Dá se dobře skládat a složený vzore se používá při nemožnosti výpočtu funke v některém z okrajovýh bodů. x2 f 3 + O ( f h 3). 2 3
2.3 Složené vzore K výpočtu integrálu přes zadaný interval není vhodné při rovnoměrné síti použít jeden mnohabodový vzore, přesný pro polynomy až do vysokého stupně. Lepší je rozdělit interval do mnoha krátkýh podintervalů a ve použít vzore relativně nízkého řádu. Součtu těhto integrálů se říká složený vzore. Složené lihoběžníkové pravidlo 2 f + f 2 + f 3 +... + f N + ] 2 f N + O Složené Simpsonovo pravidlo (b a)3 f N 2 + O 3 f + 4 3 f 2 + 2 3 f 3 + 4 3 f 4 +... + + 2 3 f N 2 + 4 3 f N + 3 f N ] ( N 4 ) Ve střídání koefiientů není žádné magie, je to spíše nevýhodou. Rozšířené Simpsonovo pravidlo ale lépe aproximuje okraje než lihoběžníkové pravidlo. Vzore 4. řádu přesnosti k konstantními koefiienty uprostřed intervalu lze získat následovně. Alternativa 2 Simpsonova + 2 ( začátek 3 8 Simpsonova + Simpsonovo)] Složené obdélníkové pravidlo 7 48 f + 59 48 f 2 + 43 48 f 3 + 49 48 f 4 + f 5 +... + + 49 48 f 43 N 3 48 f N 2 + 59 48 f N + 7 ] ( ) 48 f N + O N 4 ( ) f 3/2 + f 5/2 +... + f N /2 + O(h 2 ) 4
2.4 Praktiká implementae složeného lihoběžníkového pravidla. vol n r r r b b r b r b r r 2. vol n 3. vol n 4. vol n Podintervaly při jednotlivýh voláníh lihoběžníkového pravidla Postup přidávání bodů - hodnoty proměnnýh NV, NS, N a ND: volání NV počet subintervalů NS počet bodů N počet přidanýh bodů ND 2 0 2 2 3 3 4 5 2 4 8 9 4 Pro začátek integrae NV =, je algoritmus Int := (b - a) / 2 * (f(a) + f(b)); ND := ; Pro volání NV = k > je algoritmus HD := (b - a) / ND; SUM := 0; x := a + 0.5 * HD; for j := to ND do begin SUM := SUM + f(x); x := x + HD end; Int := 0.5 * (Int + (b - a) * SUM / ND); ND := 2 * ND; Postupné zpřesňování při jednotlivýh voláníh odpovídá půlení podintervalů. Přitom se využije předhozíh bodů. 5
Odhad hyby získáme porovnáním výsledků pro h a 2h. I h = I + a h 2 + b h 4 + O(h 6 ) I 2h = I + 4 a h 2 + 6 b h 4 + O(h 6 ), kde konstanty a, b sie neznáme, ale jsou shodné v obou vztazíh. Chybu výpočtu s krokem h lze tedy odhadnout ε (I h ) a h 2 I 2h I h 3 Odhad hyby pro rozšířené lihoběžníkové pravidlo. Chyba je funkí jen sudýh monin /N. Chyba je dána okrajem = h 2 f + f 2 + f 3 +... + f N + ] 2 f N B 2h 2 (f N f 2! )... B 2kh 2k (2k)! ( f (2k ) N f (2k ) )... V předhozím vztahu jsou B k Bernoulliova čísla, pro která platí B 0 =, B 2 = /6, B 4 = /30, B 6 = /42, B 8 = /30, B 0 = 5/66 a B 2 = 69/2730. Rozvoj nemusí konvergovat, jde o asymptotiký rozvoj. Chyby rozvoje můžeme odhadnout shora dvojnásobkem absolutní hodnoty nejnižšího zanedbaného členu. Zpřesnění výsledku I = 4 3 I h 3 I 2h + O(h 4 ) Výsledek je zpřesněn ze dvou následujííh výsledků integrační proedury. Tento výsledek je identiký se složeným Simpsonovým pravidlem. 6
3 Rombergova integrae Výsledek numeriké integrae lze hápat jako funki veličiny h 2. Správná hodnota integrálu je vlastně hodnota funke pro h = 0. Tu ovšem nemůžeme spočítat přímo. Můžeme ji ovšem získat přibližně pomoí extrapolae výsledků spočítanýh pro různá h 2. Provedeme polynomiální extrapolai na h 2 = 0. Složené lihoběžníkové pravidlo mělo přesnost 2.řádu, při použití 2 výsledků jsem získal přesnost 4. řádu, ze 3 výsledků přesnost 6. řádu atd. Ze 7 výsledků lze získat přesnost 4. řádu, tedy velmi vysoký stupeň přesnosti. Větší počet bodů není vhodný použít vzhledem k vlastnostem polynomiální extrapolae (interpolae). Rombergova metoda často podstatně sníží počet bodů, ve kterýh musíme počítat funki při zadané přesnosti integrae. 4 Integrály se singularitami. Na okraji má f(x) konečnou limitu, ale nelze tam f(x) přímo počítat ( sin x x v bodě x = 0). 2. Integrál má okraj v bodeh + nebo. 3. Integrabilní singularita na okraji. 4. Integrabilní singularita ve známém bodě uprostřed. 5. Integrabilní singularita v neznámém bodě uprostřed. obyčejnou difereniální rovnii (ODE). Řešíme vždy jako Pozn. Neexistujíí nebo nekonečný integrál neřešíme, protože je to nekorektní úloha. 7
. případ - funki nelze počítat na okraji Použijeme složené obdélníkové pravidlo ] f 3 + f 5 +... + f 2 2 n + 2 + B 2kh 2k (2k)! ( 2 2k+ ) ( f (2k ) N f (2k ) ) +... Při půlení podintervalů nelze využít předhozí body. Proto užijeme h/3, pak je implementae obdobná jako u lihoběžníkového pravidla. I zde můžeme použít Rombergovu metodu, která provádí extrapolai integrálu na h 2 = 0. Integrál s nekonečnými mezemi Integrál transformujeme na integrál s konečnými mezemi a pro ten užijeme složené obdélníkové pravidlo. Například po substitui t = /x dostaneme b a f(x) dx = a b ( ) t f 2 t dt, Tuto substitui lze použít pokud interval integrae neobsahuje 0, jinak integrál rozděĺıme na víe integrálů. Často integrály rozděĺıme + a = d a + + d funke v absolutní hodnotě klesala. tak, aby od bodu d integrovaná Integrál s integrabilní singularitou Transformae záleží na harakteru funke. Pokud f(x) x a (x a) γ, kde 0 γ <, provádíme transformai t = (x a) γ. Potom platí b a f(x) dx = γ (b a) γ 0 t γ γ ( f t γ ) + a dt 8
5 Gaussovy kvadratury Cheme spočítat integrál s minimálním počtem vyčíslení funke f(x). Voĺıme optimální polohu bodů x i a váhy jednotlivýh bodů w i. Gaussova metoda s použitím N + bodů dává přesný výsledek pro polynomy řádu 2N +, čili dvojnásobek řádu (přesnosti) integrae s ekvidistantním dělením. Řád metody se tak zvýší z N na 2N +. Polohy a váhy bodů jsou známy i pro integrae s některými vahami W (x). Jde o integrál b a W (x)f(x) dx N i=0 W if(x i ), kde funke f(x) by měla být hladká, relativně pomalu proměnná. Z Hermiteovy interpolae vyplývá, že body x i musí být vybrány tak, aby polynom ω N (x) = N (x x i ) i=0 byl ortogonální ke polynomům stupně nejvýše N ve skalárním součinu daném integrálem s příslušnou vahou. Body x i jsou tedy kořeny příslušného ortogonálního polynomu řádu N. Často se používají tyto polynomy: (a, b) W (x) Druh polynomů Rekurenční vztah (, ) Legendrovy P i+ = 2i+ i+ xp i i i+ P i (, ) x 2 Čebyševovy T i+ = 2xT i T i (0, + ) x e x Laguerrovy ( = 0,,...) L i+ = 2i++ x i+ L i i+ i+ L i (, + ) e x2 Hermiteovy H i+ = 2xH i 2iH i Mluvíme pak o Gauss-Legendreově, Gauss-Čebyševově... integrai. Tabulky vah a x i najdeme v literatuře, například: Abramowitz, M. A., Stegun, I. A., Handbook of Mathematial Funtions. Příslušné proedury najdeme v numerikýh knihovnáh. 9
6 Víedimenzionální integrály. Počet bodů, kde počítáme funki roste v N dimenzíh s N-tou moninou. Pokud tedy máme v jedné dimenzi 30 bodů, ve třeh dimenzíh již počítáme funki v 30 3 = 27000 bodeh. 2. Hranie je (N ) dimenzionální nadploha. Přehod k jednodimenzionálním (D) integrálům může být obtížný. Pro hledání mezí je třeba řešit nelineární rovnie. Metody výpočtu víedimenzionálníh integrálů jsou. Snížení dimenze pomoí symetrie, např. u integrae sfériky symetriké funke přes kouli. 2. Posloupnost opakovanýh jednodimenzionálníh integraí Oblast, přes kterou integrujeme, musí mít jednoduhou hranii a funke musí být hladká. Metodě dáme přednost, pokud požadujeme vysokou přesnost. Pokud víme, kde má funke v dané oblasti ostrá maxima, je potřeba oblast rozdělit. Maxima musíme najít, jinak je výpočet integrálu beznadějný. 3. Metoda Monte Carlo Používá se, pokud má oblast složitou hranii. Výhodná je zejména pro impliitně zadanou integrační oblast (např. vztahem g( x) < 0). Integrand může osilovat a mít nespojitosti, ale ne úzká maxima. 0
6. Integrae metodou Monte Carlo Pokud funki f vypočteme v N náhodnýh bodeh v integrační oblasti, pak f( x) dv V f ± V (f 2 ) ( ) 2 f N kde V je objem integrační oblasti a f označuje aritmetiký průměr funkčníh hodnot. Přesnost integrálu metodou Monte Carlo je tedy N /2. V V' Integrae metodou Monte Carlo Při výpočtu integrálu metodou Monte Carlo uzavřeme integrační oblast V do o nejmenší oblasti se známým objemem V, ve které lze snadno generovat náhodné body. Zavedeme funki f( x) = 0 x V f( x) x V definovanou na oblasti V. Vygenerujeme N náhodnýh bodů ve V a integrál vypočteme ze vzore I V N N i= f( x i )