Gaussova kvadratura

Lichoběžníková metoda aproximuje funkci oranžovou čárkovanou úsečkou „Trap“, která spojuje funkční hodnoty na okrajích intervalu. Z obrázku je patrné, že tato aproximace není dobrá, takže chyba spočítané hodnoty integrálu je velká (lichoběžníková metoda dává hodnotu Šablona:Math, zatímco správná hodnota je 2/3). Aby se lichoběžníkovou metodou dosáhlo přesnějšího výsledku, bylo by nutné rozdělit integrační interval na mnoho podintervalů, funkci nahradit v každém podintervalu lineární funkcí a počítat mnoho funkčních hodnot funkce
Naproti tomu Gaussova metoda vybírá vhodnější body integrace, takže jediná lineární funkce (znázorněná černou čárkovanou úsečkou „Gauss 2“) aproximuje funkci mnohem lépe. Výsledek integrace dvoubodovou Gaussovou metodou je Tato hodnota je dokonce přesný výsledek, protože zelená oblast má stejnou plochu jako součet ploch červených oblastí. Důvodem je, že integrovaná funkce je ve skutečnosti polynom stupně 3, který je dvoubodovou Gaussovou kvadraturou aproximován přesně.
Numerické metody integrace jsou v numerické matematice metody výpočtu přibližných hodnot určitých integrálů funkcí. Při numerickém výpočtu určitého integrálu nějaké funkce se obvykle používá vážený součet hodnot této funkce v určitých bodech integračního intervalu – viz články Numerická integrace a Kvadratura (matematika).
Gaussova kvadratura, přesněji n-bodová Gaussova metoda numerické integrace, pojmenovaná po Carlu Friedrichu Gaussovi[1] je metoda numerické integrace, která díky vhodné volbě uzlů Šablona:Mvar a vah Šablona:Mvar pro Šablona:Math dává pro polynomy do stupně Šablona:Math přesné výsledky. Moderní formulaci, v níž se používají ortogonální polynomy vyvinul Carl Gustav Jacob Jacobi v roce 1826.[2] Nejobvyklejším integračním intervalem pro tuto metodu je , na kterém se pro výpočet určitého integrálu používá vzorec
který poskytuje přesné výsledky pro polynomy do stupně Šablona:Math. Tato numerická metoda se nazývá Gaussova-Legendreova metoda numerické integrace. Metoda numerické integrace bude přesnou aproximací integrálu uvedeného výše pouze v případě, když funkci Šablona:Math lze na intervalu dobře aproximovat polynomem stupně nejvýše Šablona:Math.
Gaussova-Legendreova metoda numerické integrace se zpravidla nepoužívá pro integraci funkcí se singularitami v koncových bodech. V takovém případě se snažíme integrand zapsat jako
kde Šablona:Math je funkce, kterou lze dobře aproximovat polynomem nízkého stupně. Pak použití alternativních uzlů a vah obvykle dává přesnější metody numerické integrace, které jsou známy jako Gaussova-Jacobiho kvadraturní pravidla:
Jako váhy se často používají hodnoty (Čebyševova–Gaussova kvadratura) a . Můžeme také chtít integrovat na intervalech neomezených z jedné (Gaussova-Laguerrova kvadratura) nebo obou stran (Gaussova–Hermitova kvadratura).
Lze ukázat (viz Press, et al. nebo Stoer a Bulirsch), že kvadraturní uzly Šablona:Mvar jsou kořeny polynomu patřícího do třídy ortogonálních polynomů (třída ortogonální vůči váženému vnitřnímu součinu). To je klíčové pozorování pro výpočet uzlů a vah pro Gaussovu kvadraturu.
Gaussova–Legendreova kvadratura

Pro nejjednodušší případ numerické integrace uvedený výše je funkce Šablona:Math aproximována polynomy na intervalu a přidružené ortogonální polynomy jsou Legendreovy polynomy označované Šablona:Math. Zde je Šablona:Mvar-tý polynom normalizovaný tak, aby Šablona:Math, Šablona:Mvar-tý Gaussův uzel Šablona:Mvar je Šablona:Mvar-tým kořenem polynomu Šablona:Mvar a váhy jsou dané vzorcemŠablona:Sfn
Integrační body a váhy pro Gaussovu–Legendreovu kvadraturu několika nižších řádů na intervalu jsou uvedeny v následující tabulce:
| Počet bodů, n | Body, Šablona:Mvar | Váhy, Šablona:Mvar | ||
|---|---|---|---|---|
| 1 | 0 | 2 | ||
| 2 | ±0.57735... | 1 | ||
| 3 | 0 | 0.888889... | ||
| ±0.774597... | 0.555556... | |||
| 4 | ±0.339981... | 0.652145... | ||
| ±0.861136... | 0.347855... | |||
| 5 | 0 | 0.568889... | ||
| ±0.538469... | 0.478629... | |||
| ±0.90618... | 0.236927... | |||
Jiné integrační intervaly
Pro výpočet integrálu na obecném intervalu je třeba před použitím Gaussovy metody numerické integrace úlohu převést na integrál na intervalu pomocí vzorce
kde
Použití -bodového Gaussova kvadraturního pravidla pak dává následující aproximaci:
Příklad dvoubodového Gaussova kvadraturního pravidla
Použijeme dvoubodovou Gaussovu metodu numerické integrace pro výpočet vzdálenosti, kterou uletí raketa v čase až s použitím vzorce
Změníme meze integračního intervalu, abychom mohli použít váhy a x-ové souřadnice uvedené v Tabulce 1. Také najdeme absolutní hodnotu relativní skutečné chyby. Přesný výsledek je 11061,34 metrů
Řešení:
provedeme změnu mezí integračního intervalu z na :
Použijeme váhy a hodnoty argumentu z Tabulky 1 pro dvoubodové pravidlo:
Načež můžeme použít Gaussův vzorec pro numerickou integraci
dostáváme
Pokud přesný výsledek je 11061,34 m, absolutní hodnota relativní skutečné chyby, je
Zobecnění
Problém integrace lze vyjádřit poněkud obecnějším způsobem tak, že do integrandu vneseme kladnou váhovou funkci Šablona:Mvar a povolíme jiné integrační intervaly než . Obecně tedy počítáme
pro určité Šablona:Mvar, Šablona:Mvar a Šablona:Mvar. Pro Šablona:Math, Šablona:Math a Šablona:Math jde o stejný problém, jaký je popsán výše. Jiné volby vedou k jiným integračním pravidlům, z nichž některá jsou tabelována níže. Čísla rovnic ve sloupci „A & S“ jsou podle Abramowitz a Stegun
| Interval | Šablona:Math | Ortogonální polynomy | A & S | Pro více informací, viz ... |
|---|---|---|---|---|
| Šablona:Math | Legendreovy polynomy | 25.4.29 | Gaussova–Legendreova kvadratura | |
| Šablona:Math | Jacobiho polynomy | 25.4.33 (Šablona:Math) | Gaussova–Jacobiho kvadratura | |
| Šablona:Math | Čebyševovy polynomy (prvního druhu) | 25.4.38 | Čebyševova–Gaussova kvadratura | |
| Čebyševovy polynomy (druhého druhu) | 25.4.40 | Čebyševova–Gaussova kvadratura | ||
| Laguerrovy polynomy | 25.4.45 | Gaussova–Laguerre kvadratura | ||
| Zobecněné Laguerrovy polynomy | Gaussova–Laguerre kvadratura | |||
| Hermitovy polynomy | 25.4.46 | Gaussova–Hermitova kvadratura |
Základní věta
Nechť Šablona:Mvar je netriviální polynom stupně Šablona:Mvar, takový, že
Všimněte si, že toto bude splněno pro všechny ortogonální polynomy výše, protože každý polynom Šablona:Mvar je zkonstruován tak, aby byl ortogonální k ostatním polynomům Šablona:Mvar pro Šablona:Math, a Šablona:Math je v rozsahu této množiny.
Pokud vybereme Šablona:Mvar uzlů Šablona:Mvar tak, aby to byly kořeny polynomu Šablona:Mvar, pak existuje Šablona:Mvar vah Šablona:Mvar, pro které je integrál vypočítaný Gaussovou kvadraturou přesný pro všechny polynomy Šablona:Math stupně nejvýše Šablona:Math. Všechny tyto uzly Šablona:Mvar budou navíc ležet v otevřeném intervalu Šablona:MathŠablona:Sfn.
Pro důkaz první části tohoto tvrzení budeme předpokládat, že Šablona:Math je jakýkoli polynom stupně nejvýše Šablona:Math. Pokud jej vydělíme ortogonálním polynomem Šablona:Mvar dostaneme
kde Šablona:Math je podíl stupně nejvýše Šablona:Math (protože součet jeho stupně a stupně dělitele Šablona:Mvar musí být roven stupni Šablona:Math), a Šablona:Math je zbytek také stupně nejvýše Šablona:Math (protože stupeň zbytku je vždy menší než stupeň dělitele). Protože Šablona:Mvar je podle předpokladu ortogonální ke všem jednočlenům stupně menšího než Šablona:Mvar, musí být ortogonální také s podílem Šablona:Math. Proto
Protože zbytek Šablona:Math má stupeň nejvýše Šablona:Math, můžeme jej přesně interpolovat pomocí Lagrangeovy interpolace Šablona:Math s Šablona:Mvar interpolačními body, kde
tedy
Jeho integrál pak bude roven
kde váha Šablona:Math přiřazená uzlu Šablona:Math je definována, aby vyrovnala vážený integrál Šablona:Math (další vzorce pro váhy jsou uvedeny níže). Protože však všechny Šablona:Mvar jsou kořeny polynomu Šablona:Mvar, podle vzorce pro dělení uvedeného výše platí
pro všechna Šablona:Mvar. Tím dostáváme
Tím jsme dokázali, že pro jakýkoli polynom Šablona:Math stupně nejvýše Šablona:Math je integrál přesně roven hodnotě spočítané Gaussovou kvadraturou.
Pro důkaz druhé části tvrzení použijeme polynom ve tvaru součinu kořenových činitelů Šablona:Math. Komplexně sdružené kořeny tvoří kvadratické členy, které jsou na celé reálné ose buď kladné nebo záporné. Členy odpovídající kořenům ležícím mimo interval nemění na tomto intervalu znaménko. A členy odpovídající kořenům Šablona:Mvar z intervalu které jsou liché násobnosti, násobí Šablona:Math jedním dalším členem, který tvoří nový polynom
Tento polynom nemůže na intervalu měnit znaménko, protože všechny jeho kořeny mají sudou násobnost. Proto integrál
protože váhová funkce Šablona:Math je vždy nezáporná. Protože však Šablona:Math je ortogonální ke všem polynomům stupně nejvýše Šablona:Math, bude stupeň součinu
alespoň Šablona:Mvar. Proto Šablona:Math má Šablona:Mvar různých reálných kořenů v intervalu
Obecný vzorec pro váhy
Váhy je možné vyjádřit vzorcem
kde je koeficient u v . Pro důkaz je třeba si všimnout, že při použití Lagrangeovy interpolace můžeme Šablona:Math vyjádřit pomocí jako
protože Šablona:Math má stupeň menší než Šablona:Mvar a je proto určen hodnotami, kterých nabývá v Šablona:Mvar různých bodech. Když znásobíme obě strany Šablona:Math a zintegrujeme je na intervalu dostaneme
Váhy Šablona:Mvar jsou tedy dány vzorcem
Tento integrální výraz pro lze vyjádřit pomocí ortogonálních polynomů a takto: Můžeme psát
kde je koeficient u v . Pokud se Šablona:Mvar limitně blíží dostaneme pomocí L'Hôpitalova pravidla
Můžeme tedy napsat výraz pro váhy s použitím integrálu ve tvaru
Jmenovatel v integrandu můžeme zapsat
což dává
pokud , protože
je polynom stupně Šablona:Math, který je tedy ortogonální k . Pokud tedy Šablona:Math je polynom nejvýše n-tého stupně, můžeme napsat
Integrál na pravé straně můžeme pro vyhodnotit takto: Protože je polynom stupně Šablona:Math, máme
kde Šablona:Math je polynom stupně . Protože Šablona:Math je ortogonální s platí
Pak můžeme psát
Člen v závorkách je polynom stupně , který je proto ortogonální s . Integrál tedy můžeme vyjádřit jako
Podle rovnice (Šablona:Odkaz na vzorec) se váhy získají vydělením tohoto výrazu výrazem , což dává výraz v rovnici (Šablona:Odkaz na vzorec).
Váhy mohou být také vyjádřeny pomocí ortogonálních polynomů a . V trojčlenném rekurentním vztahu bude mít člen s nulovou hodnotu, takže v (Šablona:Odkaz na vzorec) lze nahradit .
Důkaz, že váhy jsou kladné
Uvažujme následující polynom stupně :
kde, jak je uvedeno výše, Šablona:Mvar jsou kořeny polynomu . Je zřejmé, že . Protože stupeň je menší než , platí Gaussův vzorec pro numerickou integraci obsahující váhy a uzly získané z . Protože , pokud j není rovno i, máme
Protože jak tak jsou nezáporné funkce. Odtud plyne, že .
Numerická integrace Gaussovou metodou
Existuje mnoho algoritmů pro výpočet uzlů Šablona:Mvar a vah Šablona:Mvar v Gaussově metodě numerické integrace. Nejoblíbenější jsou Golubův-Welschův algoritmus vyžadující Šablona:Math operací, Newtonova metoda pro řešení s pomocí trojčlenného rekurentního vztahu pro vyhodnocování, která vyžaduje Šablona:Math operací, a asymptotické vzorce pro velká n, které vyžadují Šablona:Math operací.
Rekurentní vztah
Ortogonální polynomy , pro které platí, že pro kde je skalární součin, stupeň a koeficient u nejvyššího členu je jedna (tj. jde o monické ortogonální polynomy) vyhovují rekurentnímu vztah
a skalární součin definovaný vzorcem
pro , kde Šablona:Mvar je nejvyšší stupeň, který může jít k nekonečnu, a kde . Především polynomy, definované rekurentním vztahem začínajícím , mají úvodní koeficient jedna a jsou správného stupně. Je-li dán počáteční bod , lze ortogonalitu dokázat indukcí. Pro máme
Pokud jsou ortogonální, pak také , protože ve výrazu
jsou všechny skalární součiny nulové kromě prvního a toho, kde je stejný ortogonální polynom. Proto
Pokud však pro skalární součin platí (což je v případě Gaussovy kvadratury splněno), rekurentní vztah lze zjednodušit na vztah obsahující tři členy: Pro je polynom stupně nejvýše Šablona:Math. Na druhou stranu, je ortogonální ke každému polynomu stupně nejvýše Šablona:Math. Proto máme a pro Šablona:Math. Rekurentní vztah se pak zjednoduší na
nebo
(s konvencí ), kde
(poslední vztah platí, protože , protože se liší od ve stupni menším než Šablona:Mvar).
Golubův-Welschův algoritmus
Trojčlenný rekurentní vztah lze zapsat v maticovém tvaru , kde , je -tý vektor standardní báze, tj. , a Šablona:Mvar je tak zvaná Jacobiho matice:
Nulové body polynomů do stupně Šablona:Mvar, které se používají jako uzly pro Gaussovu kvadraturu, lze nalézt výpočtem vlastních hodnot této třídiagonální matice. Tento postup je znám jako Golubův–Welschův algoritmus.
Pro výpočet vah a uzlů je vhodnější uvažovat symetrickou třídiagonální matici s prvky
Šablona:Math a jsou podobné matice a proto mají stejná vlastní čísla (uzly). Váhy lze vypočítat z odpovídajících vlastních vektorů: Pokud je normalizovaný vlastní vektor (tj. vlastní vektor s Eukleidovskou normou rovné jedné) příslušný k vlastní hodnotě Šablona:Mvar, lze odpovídající váhu vypočítat z první složky tohoto vlastního vektoru, jmenovitě:
kde je integrál váhové funkce
Další detaily lze nalézt v monografii Numerical Methods for Special Function.Šablona:Sfn
Odhady chyby
Pro integrand, který má Šablona:Math spojitých derivací, platí následující odhad chyby Gausovy metody numerické integrace:Šablona:Sfn
pro nějaké Šablona:Mvar z intervalu Šablona:Math, kde Šablona:Mvar je monický (tj. má úvodní koeficient roven Šablona:Math) ortogonální polynom stupně Šablona:Mvar a kde
V důležitém speciálním případě, kdy Šablona:Math, je odhad chyby:Šablona:Sfn
Tento odhad chyby může být v praxi problematický, protože odhad derivace řádu Šablona:Math může být obtížný, a skutečná chyba může být navíc mnohem menší než jakou dává tento odhad.Šablona:Sfn Alternativním přístupem může být použití dvou Gaussových metod numerické integrace s různými parametry, a odhadnutí chyby jako rozdílu obou výsledků. K tomuto účelu může být užitečná Gaussova–Kronrodova metoda numerické integrace.
Gaussova–Kronrodova pravidla
Pokud bychom zjemnili rozdělení intervalu , Gaussovy body vyhodnocování na nových podintervalech se nebudou shodovat s předchozími body (až bodu nula pro liché n), a integrand by se tedy musel vyčíslovat v každém bodě. Gaussova–Kronrodova pravidla jsou rozšířením Gaussovy metody numerické integrace generované přidáním Šablona:Math bodů k Šablona:Mvar-bodovému pravidlu takovým způsobem, že výsledné pravidlo má řád Šablona:Math a umožňuje vypočítat odhady vyšších řádů s použitím funkčních hodnot z odhadů nižších řádů. Rozdíl mezi hodnotami získanými Gaussovou metodou numerické integrace a jejím Kronrodovým rozšířením se často používá pro odhad chyby aproximace.
Gaussova–Lobattova pravidla
Metoda známá také jako Lobattova kvadraturaŠablona:Sfn pojmenovaná po nizozemském matematikovi Rehuelu Lobattovi se podobá Gaussově kvadratuře s následujícími rozdíly:
- Integračními body jsou také koncové body integračního intervalu.
- Je přesná pro polynomy do stupně Šablona:Math, kde Šablona:Mvar je počet integračních bodůŠablona:Sfn.
Lobattova kvadratura funkce Šablona:Math na intervalu :
X-ové souřadnice: Šablona:Mvar je -tý kořen , zde označuje standardní Legendreův polynom m-tého stupeň a apostrof označuje derivaci.
Váhy:
Zbytek:
Integrační body a váhy pro několik nižších řádů jsou:
| Počet bodů, n | Body, Šablona:Mvar | Váhy, Šablona:Mvar |
|---|---|---|
Adaptivní varianta tohoto algoritmu se dvěma vnitřními uzly[3] je implementována v GNU Octave a MATLAB jako quadl a integrate.[4][5]
Odkazy
Poznámky
Reference
- Šablona:Citace periodika
- Šablona:Citace monografie
- Šablona:Citace periodika
- Šablona:Citace periodika
- Šablona:Citace periodika
- Šablona:Citace periodika
- Šablona:Citace periodika
- Šablona:Citace periodika
- Šablona:Citace monografie
- Šablona:Citace periodika
- Šablona:Citace periodika
- Šablona:Citace periodika
- Šablona:Citace periodika
- Šablona:Citace periodika
- Šablona:Citace monografie.
- Šablona:Citace monografie
- Šablona:Citace monografie
- Šablona:Citace monografie
- Šablona:Citace monografie
- Šablona:Citace monografie
- Šablona:Citace periodika
Související články
Literatura
Externí odkazy
- Gauss quadrature formula Encyclopedia of Mathematics, EMS Press, 2001 [1994]
- ALGLIB obsahuje sadu algoritmů pro numerickou integration (v jazycích C# / C++ / Delphi / Visual Basic / atd.)
- GNU Scientific Library — obsahuje implementaci algoritmů QUADPACK pro programovací jazyk C (viz též GNU Scientific Library)
- From Lobatto Quadrature to the Euler constant e
- Gaussian Quadrature Rule of Integration – Notes, PPT, Matlab, Mathematica, Maple, Mathcad at Holistic Numerical Methods Institute
- Šablona:MathWorld
- Gaussian Quadrature autoři: Chris Maes a Anton Antonov, Wolfram Demonstrations Project.
- Tabulované váhy a uzly zdrojovým kódem pro systém Mathematica, high přesností (16 a 256 desítkových míst) Legendreova-Gaussovy kvadraturní váhy a uzly, pro n=2 through n=64, zdrojovým kódem pro systém Mathematica.
- Mathematica source code distributed under the GNU LGPL pro generování uzlů vah pro libovolné váhové funkce W(x), integrační intervaly a přesnosti.
- Gaussova kvadratura v Boost.Math, pro libovolnou přesnost a řád aproximace
- Gaussova-Kronrodova kvadratura v Boost.Math
- Uzly a váhy pro Gaussovu kvadraturu Šablona:Wayback