Gauss-kvadratúra

A Wikipédiából, a szabad enciklopédiából

A numerikus analízisben használt kvadratúra fogalma egy adott függvény integráljának a közelítése, általában az integrálási tartományból választott függvényértékek súlyozott átlagával. A Carl Friedrich Gaussról elnevezett Gauss-kvadratúra olyan kvadratúra, amely pontos értéket ad 2n − 1 vagy alacsonyabb fokú polinomok esetén az xi pontok és wi súlyok megfelelő megválasztása esetén (i = 1,...,n).

Az integrálási tartományt általában [−1, 1]-nek véve, a kvadratúra

A fenti Gauss-kvadratúra csak akkor szolgáltat pontos értékeket, ha az f(x) függvény polinommal jól közelíthető a [-1,1] intervallumban.

Általában használt súlyok például: (Gauss-Csebisev) és (Gauss-Hermite).

Gauss-kvadratúrák és ortogonális polinomok[szerkesztés]

A Gauss-kvadratúrák lényege, hogy mi magunk válasszuk meg nem csak a súlyokat, hanem az abszcisszákat is, ahol a függvényt meg szeretném közelíteni. A Gauss-kvadratúrák foka kétszer magasabb lesz mint a Newton-Cotes formulák foka, ugyanannyi függvényértékelés esetén. Azonban magasabb fok nem mindig jelent nagyobb pontosságot is. Nagyobb fok akkor jelent nagyobb pontosságot amikor az integrálandó függvény sima és jól meg lehet közelíteni egy polinommal. A Gauss kvadratúrák előnye, hogy adott W(x) és N egész szám esetén találunk egy rend wj súlyt és xj abszcisszát úgy, hogy a megközelítés

(1)

,egzakt ha f(x) polinomiális.

például

Ebben az esetben

Ez a partikuláris megválasztása súlyfüggvénynek a Gauss-Csebisev integrálás. Az integrálandó kifejezést úgy is fel lehet írni, hogy a súlyfüggvény W(x) nem látható egyértelműen: Legyen g(x)=W(x)f(x) és vj=wj / w(xj) és akkor (1)-es így alakul:

(2)

Amikor a súlyokat és az abszcisszákat keressük egy adott W(x) függvény esetén jól meg kell gondolnunk, hogy az (1)-es a vagy a (2)-es képletet szeretnénk alkalmazni.

A Gauss-kvadratúrák elmélete visszanyúlik egészen Gaussig 1814-re, aki folytonos törteket használt, hogy kifejlessze a témát. 1826-ban Jacobi újraértékelte Gauss eredményeit az ortogonális polinomok segítségével. Az ortogonális polinomok bevezetéséhez lerögzítünk egy (a,b) intervallumot, és bevezetjük egy f és g függvény skaláris szorzatát egy súlyfüggvényen W-n:

A skaláris szorzat egy szám és nem x-nek egy függvénye. Két függvény ortogonális ha a skaláris szorzatuk nulla. Egy függvény normalizált ha az önmagával való skaláris szorzata egységnyi. Egy olyan polinomrendszert, amely mind ortogonális és egyenként normalizált polinomokat tartalmaz ortonormált polinomrendszernek nevezzük.

Ortogonális polinomok generálása[szerkesztés]

Inicializálunk majd generálunk:

, j=1,2,… (3)

,ahol

(4)
b0-át vehetjük 0 nak

A (3)-as képletben definiált polinomok főpolinomok, vagyis a főegyütthatója [p1(x)-nek az x^j] egységnyi. Ha elosztunk minden pj(x) polinomot skalárral akkor egy ortonormális polinomrendszert kapunk. Kimutatható, hogy minden pj polinomnak pontosan j különböző gyöke van az (a,b) intervallumban. Továbbá kimutatható, hogy pj(x) polinom gyökei közreékelődnek a pj-1(x) polinom j-1 gyöke közé úgy, hogy két szomszédos pj-1(x) gyök között van egy pj(x) gyök. Ez akkor nagyon fontos amikor meg akarjuk találni a polinom összes gyökét. Az összes gyököt azért szeretnénk megtalálni mert az N pontos Gauss kvadratúra formula abszcisszái pontosan a PN(x) polinom gyökei. Természetesen ugyanazon intervallum és súlyfüggvény esetén. Miután ismerjük x1,…,xN abszcisszákat meg kell keresnünk a wj súlyfüggvényt j=1,2,…,N esetén. Az egyik módszer a súlyok kiszámolására:

=

Megoldva az egyenletrendszert megkapjuk a wj-ket. Ezen wj-k megfelelők az első N ortogonális polinom esetén. Ki lehet mutatni, hogy az integrálja következő N-1 polinomnak is egzakt, tehát a kvadratúra egzakt minden olyan polinomra amelynek foka 2N-1 -nél kisebb. Egy másik módszer a súlyok kiszámítására:

(5),ahol

a az ortogonális polinom deriváltja.

Összefoglalva a Gauss kvadratúrák kiszámítása 2 különböző fázisból áll.

-a p0,…,pN ortogonális polinomok generálása, aj, bj együtthatók kiszámolása
-meghatározni a pN(X) gyökeit és kiszámolni a nekik megfelelő súlyokat
Klasszikus ortogonális polinomok esetében aj, bj együtthatók ismertek így az első lépés kihagyható. Viszont ha nem egy klasszikus súlyfüggvényünk van akkor az ortogonális polinomok felépítése nem olyan egyszerű.

A súlyok és az abszcisszák kiszámolása[szerkesztés]

Ez a művelet változhat könnyűtől egészen nehézig annak függvényében, hogy mennyit tudunk súlyfüggvényekről és a hozzuk rendelt polinomokról. Klasszikus esetben, tanulmányozott ortogonális polinomok esetében gyakorlatilag minden ismert még a polinomok zérus helyei is jól meg vannak közelítve. Ezt használjuk mint kezdeti megközelítést, lehetővé téve, hogy a Newton módszer gyorsan konvergáljon. A Newton módszer megköveteli a P'N(x) derivált ismeretét, amit a PN PN-1 függvényében fejezünk ki.
A következőkben itt vannak azok a súlyfüggvények, intervallumok, rekurencia képletek/relációk amelyek generálják a leggyakrabban használt ortogonális polinomokat és a nekik megfelelő Gauss kvadratúra formulákat

Gauss-Legendre:
Gauss-Chebyshev:
Gauss-Laguerre:
Gauss-Hermite:
(5)

Most egyedi módszereket adunk arra, hogy hogyan számoljuk az abszcisszákat és súlyokat ezekben az esetekben. Először a leggyakoribb abszcisszák és súlyok halmaza, a Gauss-Legendre.

A módszer az (x1,x2) integrálási határt átviszi (-1,1)-be és xj-ket és wj-ket nyújt a Gauss formuláknak.

A következő 3 módszer kezdetben megközelíti a gyököket. Az első a Gauss-Laguerre abszcisszák és súlyok, amelyeket a következő integrálási formulával használunk:

A következő módszer a Gauss-Hermite abszcisszák és súlyok esetén használható. Ha ezen függvények standard normalizálását használjuk, ahogy az meg van adva az (5)-ös képletben, nagy N-ek esetén a számolás túlcsordul a különböző faktorok megjelenése miatt. Ezt elkerülhetjük ha egy ortogonális polinomrendszert használunk
. A rekurencia a következő lesz:

A súly képlete így alakul

a derivált képlete pedig

.

És végül az integrálandó formula

Ismerve a rekurenciákat[szerkesztés]

A továbbiakban azt az esetet tárgyaljuk, amikor nem tudunk jó megközelítést adni az ortogonális polinomok zérus helyeire,de ismerjük az aj, bj együtthatókat amik generálják őket. Amint láttuk az előbbiekben a pN(x) gyökei az N pontos Gauss kvadratúra abszcisszái. A leghasznosabb összefüggés a súlyok kiszámolására az (5)-ös. A p'N deriváltat ki lehet számolni a (3)-as képlet lederiválásával. A (3)-as összefüggés viszont csak monikus polinomok esetében igaz, más normalizálások esetén bejön még egy plusz faktor , ahol az együtthatója a pN polinomban.
Kivéve azokat a speciális eseteket amelyeket már letárgyaltunk, a Newton módszer nem a legjobb gyökkeresési módszer. Sokkal gyorsabb ha a Galub-Welsch algoritmust használjuk, amely Wilf eredményeire épül. Az algoritmus szerint ha a (3)-as összefüggésben az xpj tagokat bal oldalra visszük és a p{j+1}-es tagokat a jobb oldalra akkor a rekurencia reláció felírható mátrix alakban:

+

vagy

x p = T p + pN eN-1
(6)

Itt a T tridiagonális mátrix, p a p0,p1,…,pN-1 oszlop vektor és eN-1 egy egységvektor egy 1-sel az (N-1) pozícióban és zérusok minden más pozícióban. A T mátrix szimmetrizálható egy diagonális hasonlósági transzformációval D:

J = D T =

A J mátrixot Jacobi-mátrixnak nevezzük. A (6)-ból láthatjuk, hogy ekvivalens azzal, hogy xj sajátértéke a T -nek. Amíg a sajátértékeket egy hasonlósági transzformáció szolgáltatja addig xj sajátértéke a J szimmetrikus tridiagonális mátrixnak. Továbbá Wilf rámutatott arra, hogy ha vj megfelelő sajétvektora az xj sajátértéknek v v=1 és akkor

ahol

ahol vj,1 a v első komponense.

Ortogonális polinomok nem klasszikus súlyokkal[szerkesztés]

A Stieltjes eljárás kiszámolja az a0-át és p1(x)-et a (3)(4)-ből
Ismerve p0 és p1-et ki tudjuk számolni a1-et és b1-et a (4)-ből. Most ki kell számolnunk a skaláris szorzatot! polinomiális x-ben, számolom a skaláris szorzatot de csak ha ismerem az első 2N momentumát a súlyfüggvénynek :

Ezt nem használjuk mert nagyon pontatlan.
Suck és Donován rájöttek, hogy a numerikus stabilitás nagyon megjavul, ha az alapú polinomrendszert helyett használjunk egy ismert ortogonális polinomrendszert a -et
-A változtatott momentum

, j=0,1,…,2N-1

ahol kielégíti analóg módon a (3)(4)-et

ahol természetesen ismertek.
Majd Wheeler adott egy hatékony algoritmust :

Inicializálunk:

Majd k=1,2,..,N-1 számoljuk:

,l=k,k+1..,2N-1

A Wheeler-algoritmus megköveteli, hogy a megváltoztatott momentum legyen pontosan kiszámítva. Az algoritmus nagyon hatásos véges (a,b) intervallum esetén, végtelen intervallum esetén az algoritmus nem távolítja el a hibák nagy részét. Ebben az esetben Gautschi azt javasolja, hogy csökkentsük le az intervallumot egy véges intervallumra változócsere segítségével.

Lásd még[szerkesztés]

Források[szerkesztés]

  • Gisbert Stoyan - Takó Galina: Numerikus módszerek / Gisbert Stoyan ; Takó Galina. 2. átdolg. kiad. Budapest : Typotex Elektronikus Kiadó Kft., 2002. 439 p. : ill. ISBN 963-9326-20-8

Külső hivatkozások[szerkesztés]