Gaussova kvadratura

Porovnání dvoubodové Gaussovy kvadratury s lichoběžníkovou metodou.
Porovnání dvoubodové Gaussovy kvadratury s lichoběžníkovou metodou. Modrá křivka je graf funkce jejíž určitý integrál na intervalu se má vypočítat.
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 y(–1) + y(1) = –10, 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ů xi a vah wi pro i = 1, ..., n dává pro polynomy do stupně 2n − 1 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ě 2n − 1. 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 f(x) lze na intervalu dobře aproximovat polynomem stupně nejvýše 2n − 1.

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 g(x) 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 xi 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

Grafy Legendrových polynomů (do stupně n = 5)

Pro nejjednodušší případ numerické integrace uvedený výše je funkce f(x) aproximována polynomy na intervalu a přidružené ortogonální polynomy jsou Legendreovy polynomy označované Pn(x). Zde je n-tý polynom normalizovaný tak, aby Pn(1) = 1, i-tý Gaussův uzel xi je i-tým kořenem polynomu Pn a váhy jsou dané vzorcem[3]

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ů, nBody, xiVáhy, wi
102
2±0.57735...1
300.888889...
±0.774597...0.555556...
4±0.339981...0.652145...
±0.861136...0.347855...
500.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 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 ω a povolíme jiné integrační intervaly než . Obecně tedy počítáme

pro určité a, b a ω. Pro a = −1, b = 1 a ω(x) = 1 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ω(x)Ortogonální polynomyA & SPro více informací, viz ...
1Legendreovy polynomy25.4.29Gaussova–Legendreova kvadratura
(−1, 1)Jacobiho polynomy25.4.33 (β = 0)Gaussova–Jacobiho kvadratura
(−1, 1)Č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 polynomy25.4.45Gaussova–Laguerre kvadratura
Zobecněné Laguerrovy polynomyGaussova–Laguerre kvadratura
Hermitovy polynomy25.4.46Gaussova–Hermitova kvadratura

Základní věta

Nechť pn je netriviální polynom stupně n, takový, že

Všimněte si, že toto bude splněno pro všechny ortogonální polynomy výše, protože každý polynom pn je zkonstruován tak, aby byl ortogonální k ostatním polynomům pj pro j<n, a xk je v rozsahu této množiny.

Pokud vybereme n uzlů xi tak, aby to byly kořeny polynomu pn, pak existuje n vah wi, pro které je integrál vypočítaný Gaussovou kvadraturou přesný pro všechny polynomy h(x) stupně nejvýše 2n − 1. Všechny tyto uzly xi budou navíc ležet v otevřeném intervalu (a, b)[4].

Pro důkaz první části tohoto tvrzení budeme předpokládat, že h(x) je jakýkoli polynom stupně nejvýše 2n − 1. Pokud jej vydělíme ortogonálním polynomem pn dostaneme

kde q(x) je podíl stupně nejvýše n − 1 (protože součet jeho stupně a stupně dělitele pn musí být roven stupni h(x)), a r(x) je zbytek také stupně nejvýše n − 1 (protože stupeň zbytku je vždy menší než stupeň dělitele). Protože pn je podle předpokladu ortogonální ke všem jednočlenům stupně menšího než n, musí být ortogonální také s podílem q(x). Proto

Protože zbytek r(x) má stupeň nejvýše n − 1, můžeme jej přesně interpolovat pomocí Lagrangeovy interpolace li(x) s n interpolačními body, kde

tedy

Jeho integrál pak bude roven

kde váha wi přiřazená uzlu xi je definována, aby vyrovnala vážený integrál li(x) (další vzorce pro váhy jsou uvedeny níže). Protože však všechny xi jsou kořeny polynomu pn, podle vzorce pro dělení uvedeného výše platí

pro všechna i. Tím dostáváme

Tím jsme dokázali, že pro jakýkoli polynom h(x) stupně nejvýše 2n − 1 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ů pn. 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 xi z intervalu které jsou liché násobnosti, násobí pn 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 ω(x) je vždy nezáporná. Protože však pn je ortogonální ke všem polynomům stupně nejvýše n-1, bude stupeň součinu

alespoň n. Proto pnn různých reálných kořenů v intervalu

Obecný vzorec pro váhy

Váhy je možné vyjádřit vzorcem

 

 

 

 

(1)

kde je koeficient u v . Pro důkaz je třeba si všimnout, že při použití Lagrangeovy interpolace můžeme r(x) vyjádřit pomocí jako

protože r(x) má stupeň menší než n a je proto určen hodnotami, kterých nabývá v n různých bodech. Když znásobíme obě strany ω(x) a zintegrujeme je na intervalu dostaneme

Váhy wi 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 x 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

 

 

 

 

(2)

Jmenovatel v integrandu můžeme zapsat

což dává

pokud , protože

je polynom stupně k − 1, který je tedy ortogonální k . Pokud tedy q(x) 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ě n − 1, máme

kde s(x) je polynom stupně . Protože s(x) 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 (2) se váhy získají vydělením tohoto výrazu výrazem , což dává výraz v rovnici (1).

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 (1) lze nahradit .

Důkaz, že váhy jsou kladné

Uvažujme následující polynom stupně :

kde, jak je uvedeno výše, xj 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ů xi a vah wi v Gaussově metodě numerické integrace. Nejoblíbenější jsou Golubův-Welschův algoritmus vyžadující O(n2) operací, Newtonova metoda pro řešení s pomocí trojčlenného rekurentního vztahu pro vyhodnocování, která vyžaduje O(n2) operací, a asymptotické vzorce pro velká n, které vyžadují O(n) 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 n 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 r − 1. Na druhou stranu, je ortogonální ke každému polynomu stupně nejvýše r − 1. Proto máme a pro s < r − 1. 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ž r).

Golubův-Welschův algoritmus

Trojčlenný rekurentní vztah lze zapsat v maticovém tvaru , kde , je -tý vektor standardní báze, tj. , a J je tak zvaná Jacobiho matice:

Nulové body polynomů do stupně n, 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

J 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ě xj, 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.[5]

Odhady chyby

Pro integrand, který má 2n spojitých derivací, platí následující odhad chyby Gausovy metody numerické integrace:[6]

pro nějaké ξ z intervalu (a, b), kde pn je monický (tj. má úvodní koeficient roven 1) ortogonální polynom stupně n a kde

V důležitém speciálním případě, kdy ω(x) = 1, je odhad chyby:[7]

Tento odhad chyby může být v praxi problematický, protože odhad derivace řádu 2n může být obtížný, a skutečná chyba může být navíc mnohem menší než jakou dává tento odhad.[8] 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

Podrobnější informace naleznete v článku Gaussův–Kronrodův kvadraturní vzorec.

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 n + 1 bodů k n-bodovému pravidlu takovým způsobem, že výsledné pravidlo má řád 2n + 1 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[9] pojmenovaná po nizozemském matematikovi Rehuelu Lobattovi se podobá Gaussově kvadratuře s následujícími rozdíly:

  1. Integračními body jsou také koncové body integračního intervalu.
  2. Je přesná pro polynomy do stupně 2n – 3, kde n je počet integračních bodů[10].

Lobattova kvadratura funkce f(x) na intervalu :

X-ové souřadnice: xi 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ů, nBody, xiVáhy, wi

Adaptivní varianta tohoto algoritmu se dvěma vnitřními uzly[11] je implementována v GNU Octave a MATLAB jako quadl a integrate.[12][13]

Odkazy

Poznámky

  1. GAUSS, Carl Friedrich. Methodus nova integralium valores per approximationem inveniendi. Comm. Soc. Sci. Göttingen Math. 1815, roč. 3, s. 29–76. Dostupné online. (latinsky) 
  2. JACOBI, Carl Gustav Jacob. Ueber Gauß' neue Methode, die Werthe der Integrale näherungsweise zu finden. Journal für Reine und Angewandte Mathematik. 1826, roč. 1, s. 301–308,. Dostupné online. (německy) 
  3. Abramowitz a Stegun 1983, p. 887.
  4. Stoer a Bulirsch 2002, s. 172–175.
  5. Gil, Segura a Temme 2007.
  6. Stoer a Bulirsch 2002, Thm 3.6.24.
  7. Kahaner, Moler a Nash 1989, §5.2.
  8. Stoer a Bulirsch 2002.
  9. Abramowitz a Stegun 1983, p. 888.
  10. Quarteroni, Sacco a Saleri 2000.
  11. GANDER, Walter; GAUTSCHI, Walter. Adaptive Quadrature - Revisited. BIT Numerical Mathematics. 2000, roč. 40, čís. 1, s. 84–101. Dostupné online. DOI 10.1023/A:1022318402393. 
  12. Numerical integration - MATLAB integral [online]. Dostupné online. 
  13. Functions of One Variable (GNU Octave) [online]. [cit. 2018-09-28]. Dostupné online. 

Reference

V tomto článku byl použit překlad textu z článku Gaussian quadrature na anglické Wikipedii.

  • KABIR1, H.; MATIKOLAEI, S. A. H. H., 2017. Implementing an Accurate Generalized Gaussian Quadrature Solution to Find the Elastic Field in a Homogeneous Anisotropic Media. Journal of the Serbian Society for Computational Mechanics. Roč. 11, čís. 1, s. 11–19. Dostupné online. DOI 10.24874/jsscm.2017.11.01.02. 
  • ABRAMOWITZ, Milton; STEGUN, 1983 [June 1964]. Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. Svazek 55. Washington D.C.; New York: United States Department of Commerce, National Bureau of Standards; Dover Publications. (Applied Mathematics Series). ISBN 978-0-486-61272-0. 
  • ANDERSON, Donald G., 1965. Gaussian quadrature formulae for. Math. Comp.. Roč. 19, čís. 91, s. 477–481. DOI 10.1090/s0025-5718-1965-0178569-1. 
  • GOLUB, Gene H.; WELSCH, John H., 1969. Calculation of Gauss Quadrature Rules. Mathematics of Computation. Roč. 23, čís. 106, s. 221–230. DOI 10.1090/S0025-5718-69-99647-1. JSTOR 2004418. 
  • GAUTSCHI, Walter, 1968. Construction of Gauss–Christoffel Quadrature Formulas. Math. Comp.. Roč. 22, čís. 102, s. 251–270. DOI 10.1090/S0025-5718-1968-0228171-0. 
  • GAUTSCHI, Walter, 1970. On the construction of Gaussian quadrature rules from modified moments. Math. Comp.. Roč. 24, s. 245–260. DOI 10.1090/S0025-5718-1970-0285117-6. 
  • PIESSENS, R., 1971. Gaussian quadrature formulas for the numerical integration of Bromwich's integral and the inversion of the laplace transform. J. Eng. Math.. Roč. 5, čís. 1, s. 1–9. DOI 10.1007/BF01535429. Bibcode 1971JEnMa...5....1P. 
  • DANLOY, Bernard, 1973. Numerical construction of Gaussian quadrature formulas forand. Math. Comp.. Roč. 27, čís. 124, s. 861–869. DOI 10.1090/S0025-5718-1973-0331730-X. 
  • KAHANER, David; MOLER, Cleve; NASH, Stephen, 1989. Numerical Methods and Software. [s.l.]: Prentice-Hall. Dostupné online. ISBN 978-0-13-627258-8. 
  • SAGAR, Robin P., 1991. A Gaussian quadrature for the calculation of generalized Fermi-Dirac integrals. Comput. Phys. Commun.. Roč. 66, čís. 2–3, s. 271–275. DOI 10.1016/0010-4655(91)90076-W. Bibcode 1991CoPhC..66..271S. 
  • YAKIMIW, E., 1996. Accurate computation of weights in classical Gauss-Christoffel quadrature rules. J. Comput. Phys.. Roč. 129, čís. 2, s. 406–430. DOI 10.1006/jcph.1996.0258. Bibcode 1996JCoPh.129..406Y. 
  • LAURIE, Dirk P., 1999. Accurate recovery of recursion coefficients from Gaussian quadrature formulas. J. Comput. Appl. Math.. Roč. 112, čís. 1–2, s. 165–180. DOI 10.1016/S0377-0427(99)00228-9. 
  • LAURIE, Dirk P., 2001. Computation of Gauss-type quadrature formulas. J. Comput. Appl. Math.. Roč. 127, čís. 1–2, s. 201–217. DOI 10.1016/S0377-0427(00)00506-9. Bibcode 2001JCoAM.127..201L. 
  • RIENER, Cordian; SCHWEIGHOFER, Markus, 2018. Optimization approaches to quadrature: New characterizations of Gaussian quadrature on the line and quadrature with few nodes on plane algebraic curves, on the plane and in higher dimensions. Journal of Complexity. Roč. 45, s. 22–54. DOI 10.1016/j.jco.2017.10.002. arXiv 1607.08404. 
  • STOER, Josef; BULIRSCH, Roland, 2002. Introduction to Numerical Analysis. 2. vyd. [s.l.]: Springer. Dostupné online. ISBN 978-0-387-95452-3. .
  • TEMME, Nico M., 2010. NIST Handbook of Mathematical Functions. Příprava vydání in Olver, Frank W. J.; Lozier, Daniel M.; Boisvert, Ronald F.; Clark, Charles W.. [s.l.]: Cambridge University Press. ISBN 978-0-521-19225-5. 
  • PRESS, WH; TEUKOLSKY, SA; VETTERLING, WT; FLANNERY, BP, 2007. Numerical Recipes: The Art of Scientific Computing. 2. vyd. New York: Cambridge University Press. ISBN 978-0-521-88068-8. Kapitola Section 4.6. Gaussian Quadratures and Orthogonal Polynomials. 
  • GIL, Amparo; SEGURA, Javier; TEMME, Nico M., 2007. Numerical Methods for Special Functions. [s.l.]: SIAM. ISBN 978-0-89871-634-4. Kapitola §5.3: Gauss quadrature. 
  • QUARTERONI, Alfio; SACCO, Riccardo; SALERI, Fausto. Numerical Mathematics. New York: Springer-Verlag, 2000. ISBN 0-387-98959-5. S. 422, 425. 
  • GAUTSCHI, Walter. A Software Repository for Gaussian Quadratures and Christoffel Functions. [s.l.]: SIAM, 2000. ISBN 978-1-611976-34-2. 
  • LAUDADIO, Teresa; MASTRONARDI, Nicola; VAN DOOREN, Paul, 2023. Computing Gaussian quadrature rules with high relative accuracy. Numerical Algorithms. Roč. 92, s. 767–793. 

Související články

Literatura

  • SEGETHOVÁ, J. Základy numerické matematiky. Praha: MFF UK, 2002. 

Externí odkazy

Média použitá na této stránce

Legendrepolynomials6.svg
Autor: Geek3, Licence: CC BY-SA 3.0
Plot of the first six legendre polynomials.
Comparison Gaussquad trapezoidal.svg
Autor: Paolostar, Licence: CC BY-SA 4.0
Comparison between 2-point Gaussian quadrature and trapezoidal quadrature. The blue line is the polynomial , whose integral in [−1, 1] is 2/3.