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=α1v1+α2v2+· · ·+αnvn
el®állításbanα1=vT1x6= 0(α1∈R). Ekkor
Akx=α1λk1v1+α2λk2v2+· · ·+αnλknvn
=λk1
α1v1+α2 λ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=1|αi|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≈ |λ2/λ1|ke(k)k2, ami a lineáris konvergencián kívül azt is mutatja, hogy általában a|λ2/λ1|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λ1v1=λ1Hv1=λ1e1=λ1e1. 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) =HAv2=λ2(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.