• Nem Talált Eredményt

A sajátértékeket egyenként közelít® eljárások

In document Numerikus módszerek (Pldal 116-123)

Ellen®rz® kérdések

4. Sajátérték-feladatok numerikus megoldásamegoldása

4.2. A sajátértékeket egyenként közelít® eljárások

A numerikus matematikában a sajátérték-meghatározási módszereket két nagy csoportra szokás osztani. A sajátértékeket egyenként közelít® eljárásokra ill. a sajátértékeket egyszerre közelít®kre.

Az els® típusba tartozó módszerek mindig csak egy-egy megfelel® sajátértéket közelítenek, míg a második típusba tartozók olyan eljárást adnak, mellyel egyszerre az összes sajátértékre kapunk közelítést. Ebben a fejezetben a sajátértékeket egyenként közelít® módszereket tárgyaljuk.

A sajátértékeket egyenként közelít® eljárások egy olyan vektorsorozatot állítanak el®, amely egy meghatározott sajátvektorhoz tart. A sajátvektort ekkor ezen sorozat egy határértékhez elegend®en közeli elemével közelíthetjük. Miel®tt rátérünk arra, hogy hogyan lehet egy adott sajátvektorhoz tartozó sorozatot el®állítani, nézzük meg, hogy hogyan mondhatunk megfelel®

becslést a sajátértékre, ha ismerjük a sajátvektor egy becslését? Az els® gondolatunk az lehet, hogy ha van egy v közelítésünk a sajátvektorra, akkor az Aˆ vˆ ≈λˆv becslés soraiból kaphatunk közelítést a sajátértékre. Vizsgáljuk meg ezt a módszert egy példa segítségével!

4.2.1. példa. Legyen A a 3 × 3-as Hilbert-mátrix, és tegyük fel, hogy vˆT = [0.82694986,0.45995562,0.32341112]egyik sajátvektorának közelítését adja. Adjunk becslést az adott sajátvektorhoz tartozó sajátértékre. Mivel

4.2. A sajátértékeket egyenként közelít® eljárások 113

a fenti közelítés mindhárom sorából kaphatunk közelítést a sajátértékre. Ezek rendre λ1 = 1.40846675, λ2 = 1.40806247, λ3 = 1.40787084, vagy vehetjük ezek átlagát, ami λ4 = 1.40813335 értéket ad. Ez utóbbi érték 1.85576699.10−4-nel tér csak el a pontos sa-játértékt®l (λ= 1.40831893).

Adhatunk-e az el®z® példában nyert értéknél jobb közelítést a sajátértékre? Pl. az Avˆ ≈λˆv egyenl®séget balrólvˆT-tal szorozva, majdλ-t kifejezve kapjuk, hogyλ≈vˆTAˆv/(ˆvTvˆ). Vizsgáljuk meg ezt a közelítést az el®z® példán.

4.2.2. példa. A fenti példában adott sajátvektor-közelítéssel kiszámítva aλ≈vˆTAvˆ/(ˆvTˆv) hányadost λ = 1.40831889 adódik. Ennek a pontos sajátértékt®l való eltérése csak 3.87698300.10−8, amely sokkal kisebb, mint az el®z® példában nyert közelít® érték.

Látható tehát, hogy ez a második közelítés sokkal pontosabb, mint az els®. Ennek okát az alábbi tétel világítja meg.

4.2.3. tétel.

Legyen adva az 06=x∈Rn vektor és az A∈Rn×n mátrix. Ekkor minα∈R

kAx−αxk22=kAx−R(x)xk22, ahol

R(x) =xTAx xTx .

Bizonyítás. A bal oldalon egyα-tól függ® egyváltozós függvény áll. Számítsuk ki ennek értékét!

kAx−αxk22= (xTAT −αxT)(Ax−αx) =xTATAx−2αxTAx+α2xTx

2xTx−2αxTAx+xTATAx. Mivel xTx>0, ha x6=0, ezért a függvény a minimumát az

αmin=xTAx

xTx =R(x) esetben veszi fel.

4.2.4. deníció.

Legyen 06=x∈Rn és A∈Rn×n. Ekkor az

R(x) =xTAx xTx

számot az x vektorhoz tartozó Rayleigh-hányadosnak hívjuk.

A tétel szerint tehát 2-es normában egy vektor Rayleigh-hányados-szorosa lesz legközelebb x számszorosai közül az Ax vektorhoz.

4.2.5. megjegyzés. Szimmetrikus mátrixok esetén a Rayleigh-hányados mindig a legkisebb és a legnagyobb sajátérték között helyezkedik el, azaz

λmin≤R(x)≤λmax, továbbá

λmax= max

06=x∈RnR(x), λmin= min

06=x∈RnR(x).

Ez utóbbi állítás az ún. CourantFischer-tétel.

Az el®z®ek alapján tehát, ha van egy közelítésünk a sajátvektorra, akkor a Rayleigh-hányados segítségével kaphatunk jó becslést a sajátvektorhoz tartozó sajátértékre. Ha x normája 1, akkor a Rayleigh-hányados azR(x) =xTAx alakra egyszer¶södik.

4.2.1. A hatványmódszer

A hatványmódszer alapötlete a következ®. Legyen A ∈ Rn×n egy adott mátrix, és tegyük fel, hogy a mátrixnak van egy egyszeresen domináns λ1 sajátértéke, azaz egy olyan λ1 sajátérték, mellyel a többi (λ2, . . . , λn) sajátértékre igaz a

1|>|λ2| ≥. . .|λn|

egyenl®tlenség. Ebben az esetben nyilvánλ1∈R, továbbá a hozzá tartozó v1sajátvektor valósnak választható. Tegyük fel, hogy az A mátrix normális. Ekkor a mátrixnak van ortonormált sajátvek-torrendszere. Legyen ez v1, . . . ,vn. Legyen x∈Rnolyan, hogy az x=α1v12v2+· · ·+αnvn

el®állításbanα1=vT1x6= 0(α1∈R). Ekkor

Akx=α1λk1v12λk2v2+· · ·+αnλknvn

k1

α1v12 λ2

λ1

k v2

| {z }

→0

+· · ·+αn λn

λ1

k vn

| {z }

→0

 .

A jelölt tagokknövelésével nullához tartanak, ami azt jelenti, hogy az Akx vektorknövelésével egyre inkább a v1 sajátvektor által meghatározott sajátirányba fog mutatni. Ha a domináns sajátérték nem±1, akkor az így nyert vektorok hossza vagy nullához, vagy végtelenhez fog tartani, így alul- vagy felülcsordulás léphet fel amikor számítógépen hajtjuk végre az iterációt. Emiatt az egyes lépések után a keletkez® vektort célszer¶ normálni. Így jutunk el a hatványmódszerhez, melynek algoritmusa a következ®.

Hatványmódszer, A normális, y(0) olyan kezd®vektor, melyre vT1y(0)6= 0,ky(0)k2= 1 fork:= 1 :kmax do

x(k):=Ay(k−1) y(k):=x(k)/kx(k)k2

ν(k):= (y(k))TAy(k) end for

A ν(k) értékek a Rayleigh-hányadossal számított sajátérték közelítések. Ezen értékeket, azon túl, hogy közelítik a v1vektorhoz tartozó sajátértéket, felhasználhatjuk a leállási feltétel megadá-sára is. Pl. ha értéke már egy adott toleranciaszintnél kevesebbet változik, akkor leállíthatjuk az

4.2. A sajátértékeket egyenként közelít® eljárások 115

iterációt. A hatványmódszer (angolul power method) nyilvánvalóan onnét kapta a nevét, hogy az y(0)vektort az A mátrix egyre nagyobb hatványaival szorozzuk meg az eljárás során. A következ®

tétel azt mutatja, hogy a fenti algoritmus valóban a várt eredményt szolgáltatja.

4.2.6. tétel.

Bizonyítás. A tétel els® állítása teljes indukcióval egyszer¶en igazolható.

A harmadik állításhoz a Parseval-egyenl®séget fogjuk használni, mely szerint ha x=α1v1+. . .+αnvn,

ahol v1, . . . ,vn 2-es normában ortonormált vektorrendszer, akkor kxk2 = pPn

i=1i|2. Ez az egyenl®ség az alábbi módon igazolható.

xHx=

A második állítás igazolásához pedig induljunk ki a

ky(k))TA(γky(k))−vT1Av1→0 határértékb®l, mellyelk→ ∞esetén

ν(k)−λ1= (y(k))TAy(k)−λ1=|γk|2(y(k))TAy(k)−λ1= (γky(k))TA(γky(k))−vT1Av1→0.

Ezzel a tétel állításait igazoltuk.

4.2.7. megjegyzés. A tétel bizonyításából az is látható, hogy a generált vektorsorozatból hogyan lehet el®állítani a sajátvektorhoz tartó vektorsorozatot.

• Haλ1, α1>0, akkor y(k)→v1.

• Haλ1>0, α1<0, akkor−y(k)→v1.

• Haλ1<0, α1>0, akkor(−1)ky(k)→v1.

• Haλ1<0, α1<0, akkor(−1)k+1y(k)→v1.

4.2.8. megjegyzés. Legyen e(k) = y(k)−v1 a sajátvektor k-adik közelítésének hibája. Ekkor elegend®en nagyk értékekre ke(k+1)k2≈ |λ21|ke(k)k2, ami a lineáris konvergencián kívül azt is mutatja, hogy általában a|λ21|hányados határozza meg a konvergencia sebességét.

A hatványmódszer konvergenciáját az egyszer¶ség kedvéért csak normális mátrixok esetén igazoltuk, de az eljárás alkalmazható pl. diagonalizálható mátrixok esetén is. Természetesen az a feltétel, hogy λ1 egyszeresen domináns sajátérték legyen, nehezen ellen®rizhet® el®re, hiszen nem ismerjük a mátrix sajátértékeit (éppen ezek meghatározása a feladat). Mindenesetre az A mátrixnak lehetnek képzetes résszel rendelkez® sajátértékei is, melyek konjugáltja is sajátérték lesz, így nem sok esély van arra, hogy egyszeresen domináns sajátértéke legyen a mátrixnak.

Ha viszont a mátrix szimmetrikus, akkor annak esélye, hogy a domináns sajátérték többszörös lesz, kicsi. Így a továbbiakban mindig feltesszük, hogy az a mátrix, melynek a sajátértékeit és sajátvektorait keressük, szimmetrikus.

4.2.9. példa. Határozzuk meg a tridiag(−1,2,−1)∈R20×20mátrix domináns sajátértékét és a hozzá tartozó sajátvektort a hatványmódszer segítségével! Mivel a mátrix szimmetrikus, így hacsak nem lesz két egyforma legnagyobb abszolút érték¶ sajátérték, akkor a hatványmódszer valóban megtalálja a domináns sajátértéket és a hozzá tartozó sajátvektort. Ha a powmeth.m programot alkalmazzuk a megoldáshoz az y(0) = [1/√

20, . . . ,1/√

20]T kezd®vektorral és 10−6 toleranciaszinttel, akkor a 83. lépés után áll le az iteráció. Ekkor a sajátértékbecslés 3.97765118.

4.2.10. megjegyzés. A hatványmódszer alkalmazásához eddig feltettük, hogy az y(0) kezd®-vektor olyan, hogy vT1y(0) 6= 0, azaz hogy a kezd®vektornak van az els® sajátvektor irányába es® komponense. Hogyan biztosítható ez, ha nem ismerjük a sajátvektorokat? Szerencsére a gya-korlatban a vT1y(0) 6= 0 feltétel nem játszik komoly szerepet, hiszen ha az els® lépésben nem is teljesül a feltétel, a kerekítési hibák miatt az iteráció során lesz az iterációs vektornak v1 irányú komponense, és azzal már elindul az iteráció.

4.2.2. Inverz iteráció

Az el®z® fejezetben láttuk, hogy hogyan határozható meg a hatványmódszerrel az egyszeresen do-mináns sajátérték és a hozzá tartozó sajátvektor. Ebben a fejezetben azt vizsgáljuk meg, hogy más sajátértékek hogyan határozhatók meg a hatványmódszer kis átalakításával. Legyen A∈Rn×n egy nemszinguláris szimmetrikus mátrix λi sajátértékekkel és vi ortonormált sajátvektorokkal (i= 1, . . . , n). Haµ6=λi (i = 1, . . . , n), akkor az A−µE mátrix invertálható, és(A−µE)−1 sajátvektorai megegyeznek A sajátvektoraival, sajátértékei pedig (λi −µ)−1. Ha µ elegend®-en közel van valamelyik λj sajátértékhez, akkor a domináns sajátérték (λj −µ)−1 lesz, és az

4.2. A sajátértékeket egyenként közelít® eljárások 117

(A−µE)−1mátrixszal végrehajtva a hatványmódszert,λj és vj meghatározható. Az algoritmus tehát a következ®.

Inverz iteráció, A szimmetrikus, ky(0)k22= 1 fork:= 1 :kmax do

(A−µE)x(k)=y(k−1) megoldása x(k)-ra y(k):=x(k)/kx(k)k2

ν(k):= (y(k))TAy(k) end for

Az eljárást nyilvánvalóan azért hívjuk inverz iterációnak, mert az A mátrix helyett az A−µE mátrix inverzével hajtjuk végre a hatványmódszert. Haµ= 0, akkor a nullához legközelebbi, azaz a legkisebb abszolút érték¶ sajátértéket találja meg a módszer.

Természetesen az inverz iteráció sokkal nagyobb m¶veletigény¶, mint a hatványmódszer, hi-szen az el®bbinél minden iterációs lépésben meg kell oldanunk egy-egy lineáris egyenletrendszert.

A m¶veletszám csökkentésére jól alkalmazható az LU-felbontás. Mivel minden iterációs lépés egyenletrendszerében az A−µE mátrix az együtthatómátrix, így ennek LU-felbontását az els®

lépésben2n3/3 +O(n2)op m¶velettel kiszámítva a többi lépésben már csak2n2op m¶veletre van szükség.

Fontos észrevétel, hogy míg a Rayleigh-hányados segítségével sajátvektor közelítéséb®l saját-értéket tudtunk közelíteni, addig, ha adott egy becslés egy sajátértékre, akkor a hozzá tartozó sajátvektort az inverz iteráció segítségével tudjuk meghatározni (természetesen ekkor a sajátér-tékbecslés is pontosodik).

4.2.3. Rayleigh-hányados iteráció

Az inverz iteráció eljárását módosíthatjuk az alábbi módon. Ha végrehajtjuk az inverz iteráció egy lépését egy sajátérték-közelítésb®l kiindulva, akkor kapunk egy becslést a sajátvektorra, melyb®l Rayleigh-hányados segítségével mondhatunk egy újabb sajátértékbecslést. Az inverz iteráció kö-vetkez® lépésében már az új sajátértékbecslést használhatjuk. Ezt az eljárást Rayleigh-hányados iterációnak nevezzük. Az algoritmusa a következ®.

Rayleigh-hányados iteráció, A szimm.,ky(0)k22= 1 fork:= 1 :kmax do

R(y(k−1))kiszámítása

(A−R(y(k−1))E)x(k)=y(k−1)megoldása x(k)-ra y(k):=x(k)/kx(k)k2

end for

Az algoritmus során minden lépésben egy új lineáris egyenletrendszert kell megoldanunk.

Cserébe gyorsabb konvergenciát nyerünk, nevezetesen a konvergencia harmadrend¶ lesz. Érde-mes megjegyezni, hogy az iterációban attól függ, hogy melyik sajátértéket és sajátvektort találja meg a módszer, hogy milyen kezd®vektorról indítjuk azt. A módszer általában a kezd®vektor által meghatározott Rayleigh-hányadoshoz legközelebbi sajátértékhez és a hozzá tartozó saját-vektorhoz konvergál. Ha egy adott µ értékhez legközelebbi sajátértékre van szükségünk, akkor érdemes el®ször az inverz iterációt alkalmazni, majd amikor már elég közel kerültünk a keresett sajátértékhez, akkor áttérhetünk a Rayleigh-hányados iterációra.

4.2.11. megjegyzés. A Rayleigh-hányados iterációban minél közelebb vagyunk a keresett sa-játértékhez, annál közelebb van az A−R(y(k−1))E mátrix egy szinguláris mátrixhoz. Ha tehát az iterációs mátrixunk szingulárissá válik a számítógépes eljárás során, az azt jelzi, hogy nagyon közel vagyunk a keresett sajátértéket. Ez használható tehát leállási feltételként.

4.2.4. Deációs eljárások

Tegyük fel, hogy egy A∈Rn×nvalós szimmetrikus mátrixnak minden sajátértéke abszolút érték-ben különböz®:|λ1|>|λ2|> . . . >|λn|. Ha már meghatároztuk a mátrix szigorúan dominánsλ1

sajátértékét és a hozzá tartozó v1sajátvektort (pl. a hatványmódszer segítségével), akkor néhány egyszer¶ eljárással el®állíthatunk egy olyan mátrixot, melynek λ2 lesz a domináns sajátértéke, így azt a hatványmódszerrel meg tudjuk határozni most már az új mátrixra alkalmazva azt. Ez az eljárás addig folytatható, amíg a kell® számú sajátértéket meg nem határoztuk. Ezt az eljárást deációnak2 nevezzük. Háromfajta deációs eljárást mutatunk most be.

Householder-deáció

Tegyük fel, hogy már meghatároztuk az A∈ Rn×n mátrix szigorúan domináns λ1 sajátértékét és a hozzá tartozó euklideszi normában normált v1 sajátvektort. Határozzuk meg ezután azt a HHouseholder-tükrözési mátrixot, mellyel Hv1=e1. Ekkor

HAHe1=HAHHv1=HAv1=Hλ1v11Hv11e11e1. AHAHmátrix tehát a

HAH=

"

λ1 bT 0 A2

#

alakot ölti. Mivel hasonlósági transzformációt hajtottunk végre, így A2sajátértékeiλ1kivételével megegyeznek az A mátrix sajátértékeivel. Így tehát ha |λ2| > |λ3|, akkor az A2 mátrixszal végrehajtva a hatványmódszert, megkaphatjukλ2 közelít® értékét. Legyen ezλ˜2.

A sajátvektor meghatározását az A−˜λ2E mátrixra vonatkozó inverz iterációval végezhetjük el. Ekkor közelít®leg megkapjuk a v2 sajátvektort, és aλ2-re adott becslés is pontosodik.

Ha most meg tudnánk mondani az A2mátrixλ2-höz tartozó sajátvektorát is, akkor hasonlóan folytathatnánk a többi sajátpár meghatározását, mint ahogyλ1és v1segítségével meghatároztuk aλ2,v2sajátpárt. Az A2mátrixλ2-höz tartozó sajátvektora könnyen meghatározható. Mivel

HAH(Hv2) =HAv22(Hv2),

ígyHv2 sajátvektora aHAH mátrixnak λ2 sajátértékkel. Azaz(Hv2)(2 :n) sajátvektora A2 -nek, szinténλ2 (szigorúan domináns) sajátértékkel.

Rangdeáció

Tegyük fel ismét, hogy meghatároztuk az A∈Rn×n mátrix szigorúan dominánsλ1 sajátértékét és a hozzá tartozó normált (euklideszi normában) v1 sajátvektort. Tekintsük az A−λ1v1vT1

mátrixot. Ennek sajátértékei megegyeznek A sajátértékeivel azzal a különbséggel, hogyλ1helyett nulla szerepel. A sajátvektorok ugyanazok. Így haλ2szigorúan domináns a maradék sajátértékek között, akkor az A−λ1v1vT1 mátrixszal végrehajtva a hatványmódszert, megkaphatjuk a λ2

sajátértéket és a v2 sajátvektort.

2A deáció szó jelentése leapasztás vagy leeresztés.

In document Numerikus módszerek (Pldal 116-123)