Pokročilé numerické metody I Numerický výpočet vlastních čísel Jiří Zelinka Jiří Zelinka Vlastní čísla 1 / 34 Vlastní čísla Základní pojmy, vlastnosti a vztahy A je komplexní čtvercová matice typu n × n. vlastní číslo, vlastní vektor matice, λ(A) – spektrum invariantní podprostor (invariant) matice A je reducibilní (rozložitelná) matice, pokud existuje permutační matice P, že PAPT = T11 T12 0 T22 , kde T11 a T22 jsou čtvercové, jinak se nazývá ireducibilní. Matice v Hessenbergově tvaru se nazývá redukovaná, pokud některý její prvek pod hlavní diagonálou je nulový, v opačném případě se nazývá neredukovaná. Redukovaná matice je reducibilní, tedy ireducibilní je neredukovaná. Jiří Zelinka Vlastní čísla 2 / 34 Věta 1 Ireducibilní matice v horním Hessenbergově tvaru má všechna vlastní čísla geometrické násobnosti 1. Lemma Jestliže AX = XB (X: n × p, B: p × p), pak R(X) je invariantem A a pro By = λy (vlastní číslo a vektor B) platí A(Xy) = λ(Xy). Odtud plyne, že pokud má X nezávislé sloupce, je λ(B) ⊆ λ(A). Naopak, pokud je V invariantem A, dim(V ) = p, pak existují matice X a B, že AX = XB. Důkaz První část vyjde přímým výpočtem. Pro důkaz druhé části stačí vzít matici X, jejíž sloupce tvoří bází prostoru V . Jiří Zelinka Vlastní čísla 3 / 34 Lemma Nechť AX = XB (X: n × p, B: p × p), r(X) = p. Pak existuje unitární matice Q, že Q∗ AQ = T = T11 T12 0 T22 , kde λ(T11) = λ(A) ∩ λ(B) = λ(B). Důkaz je založen na QR rozkladu matice X: X = Q R1 0 pro regulární matici R1. Zbytek vyjde přímým výpočtem. Věta 2 (Schurův rozklad) Buď A komplexní čtvercová matice řádu n. Pak existuje unitární matice Q, že Q∗ AQ = T = D + N, kde D = diag(λ1, . . . , λn) a N je striktně horní trojúhelníková. Navíc lze Q zvolit tak, aby vlastní čísla byla v určeném pořadí. Jiří Zelinka Vlastní čísla 4 / 34 Důkaz indukcí Pro n = 1 je tvrzení zřejmé. Pro obecné n, dané vlastní číslo λ1 a příslušný vlastní vektor v1 využijeme předchozí lemma (X = v1, B = λ1). Tedy existuje unitární matice Q1, že Q∗ 1 AQ1 = λ1 u∗ 0 A2 . Použijeme indukční předpoklad na A2 a přímým výpočtem vyjde tvrzení. Poznámky Sloupce Q qi se někdy nazývají Schurovy vektory. Z rovnosti AQ = QT = Q(D + N) plyne Aqk = λkqk + k−1 i=1 nikqi pro k = 1 . . . , n, takže prostory Sk = L(q1, . . . , qk) jsou invarianty. Dále qk je vlastní vektor A, pokud k-tý sloupec N je nulový. Jiří Zelinka Vlastní čísla 5 / 34 Pokud je matice N nulová, je T diagonální a dá se ukázat (viz následující důsledek) že platí A∗ A = AA∗ , pak se A nazývá normální. Důsledek Matice A je normální právě tehdy, když existuje unitární matice Q, že Q∗ AQ = D = diag(λ1, . . . , λn) Důkaz Z uvedené diagonalizace dostaneme normalitu přímým výpočtem. Z normality A vyjde jednoduše normalita matice T. Porovnáním členů u T∗ T a TT∗ vyjde, že T musí být diagonální. Například porovnáním prvku na prvním řádku a v prvním sloupci vyjde, že první řádek T je nulový (s výjimkou diagonálního prvku). Podobně postupujeme dále. Jiří Zelinka Vlastní čísla 6 / 34 Pro reálnou matici A se snažíme pracovat v reálném oboru i v případě komplexních vlastních čísel. Platí následující obdoba Schurovy věty: Věta 3 (Reálný Schurův rozklad) Buď A reálná čtvercová matice řádu n. Pak existuje ortogonální matice Q, že QT AQ = T =      T11 T12 · · · T1m 0 T22 · · · T2m ... ... ... ... 0 0 · · · Tmm      , kde T je blokově horní trojúhelníková matice a bloky na hlavní diagonále jsou řádu 1 obsahující reálná vlastní čísla matice A, nebo řádu 2, jejichž vlastní čísla jsou komplexně sdružená vlastní čísla matice A. Jiří Zelinka Vlastní čísla 7 / 34 Důkaz je veden podobně jako pro komplexní případ, ale v lemmatu, z něhož důkaz vychází, je potřeba najít reálnou matici X se dvěma sloupci, která odpovídá dvojici komplexně sdružených vlastních čísel, tedy i příslušným vlastním vektorům. Nechť λ1, λ2 jsou vlastní čísla, ¯λ1 = λ2. Pro příslušné vlastní vektory platí ¯v1 = v2. Položme w1 = v1 + v2, w2 = i(v1 − v2), X = [w1, w2] = [v1, v2] 1 i 1 −i = [v1, v2]Y . Pak AX = A[w1, w2] = A[v1, v2]Y = [λ1v1, λ2v2]Y = = [v1, v2] λ1 0 0 λ2 Y = [w1, w2]Y −1 λ1 0 0 λ2 Y . Takže AX = XB pro B = Y −1 λ1 0 0 λ2 Y = Re(λ1) −Im(λ1) Im(λ1) Re(λ1) . Jiří Zelinka Vlastní čísla 8 / 34 Poloha vlastních čísel Věta 4 (Geršgorinova věta) Nechť A = (ai,j ) je čtvercová matice, a nechť Ri označuje uzavřený kruh se středem v ai,i a poloměrem j̸=i |ai,j |. Pak všechna vlastní čísla matice A leží v množině R = n i=1 Ri . Poznámka Kruhy Ri s nazývají Geršgorinovy kruhy. Věta 5 Sjednocení libovolných k Geršgorinových kruhů, které mají prázdný průnik se zbylými n − k kruhy, obsahuje přesně k vlastních čísel včetně násobností. Jiří Zelinka Vlastní čísla 9 / 34 Mocninná metoda Definice (Dominantní vlastní číslo) Vlastní číslo λ matice A se nazývá dominantní, jestliže pro každé jiné vlastní číslo µ platí |λ| > |µ|. Příslušný vlastní vektor se nazývá dominantní vlastní vektor. Poznámka Pro reálnou matici musí být dominantní vlastní číslo reálné. Věta 6 (mocninná metoda) Buď λ1 dominantní vlastní číslo matice A a v1 příslušný dominantní vlastní vektor. Dále nechť u je libovolný vektor, který má nenulovou složku ve směru vektoru v. Pak lim k→∞ 1 λk 1 Ak u = cv1 pro nenulovou konstantu c. Jiří Zelinka Vlastní čísla 10 / 34 Důkaz Pokud lze A diagonalizovat, tvoří vlastní vektory v1, v2, . . . , vn (sloupce V ) bázi celého prostoru. Vektor u vyjádříme v této bázi a tvrzení vyjde přímým výpočtem. V obecném případě využijeme Jordanův kanonický tvar: A = VJV −1 , Ak = VJk V −1 pro J = λ1 oT o J2 , Jk = λk 1 oT o Jk 2 . Matice Jk 2 je blokově diagonální s k-tými mocninami příslušných Jordanových bloků na diagonále. Jiří Zelinka Vlastní čísla 11 / 34 Pro Ji =      λi 1 0 oT 0 λi 1 oT ... ... ... 0 · · · 0 λi      je Jk i =            λk i k 1 λk−1 i k 2 λk−2 i k 3 λk−3 i · · · 0 λk i k 1 λk−1 i k 2 λk−2 i · · · ... ... ... ... ... ... 0 · · · · · · 0 λk i            , odkud plyne, že lim k→∞ 1 λk 1 Jk 2 = 0. Jiří Zelinka Vlastní čísla 12 / 34 Matici V zapišme blokově jako (v1, V2). Vektor u vyjádříme v bázi tvořené sloupci V : u = Vx. Pak lim k→∞ 1 λk 1 Ak u = lim k→∞ 1 λk 1 VJk V −1 Vx = V lim k→∞ 1 λk 1 Jk x = = (v1, V2) 1 oT o 0n−1 x = x1v1. Důsledek Pokud je λ2 vlastní číslo s druhou největší absolutní hodnotou, závisí rychlost konvergence na poměru |λ2/λ1| v tom smyslu, že chyba se blíží k nule zhruba jako mocniny tohoto výrazu. Jiří Zelinka Vlastní čísla 13 / 34 Algoritmy mocninné metody Pomocí normy ∥ · ∥∞ Zvolme x0 (např. (1, . . . , 1)T ), pro k = 1, 2, . . . položíme 1 ˜xk = Axk−1 2 λ (k) 1 = ˜xki , kde |˜xki | = ∥˜xk∥∞ (prvek, jehož absolutní hodnota je maximální) 3 xk = ± ˜xk ∥˜xk ∥∞ (prvek v absolutní hodotě maximální je 1). Algoritmus končíme zpravidla, pokud |λ (k) 1 − λ (k−1) 1 | je dostatečné malá. Pomocí normy ∥ · ∥2 Zvolme x0 = u, pro k = 1, 2, . . . položíme 1 ˜xk = Axk−1 2 xk = ˜xk/∥˜xk∥2 3 λ (k) 1 = x∗ k Axk, Končíme, pokud |λ (k) 1 − λ (k−1) 1 | je dostatečné malá. Jiří Zelinka Vlastní čísla 14 / 34 Mocninná metoda s posunem c – vhodná konstanta 1 ˜xk = (A − cI)xk−1 2 λk = ˜xki + c, kde |˜xki | = ∥˜xk∥∞ (prvek, jehož absolutní hodnota je maximální) 3 xk = ˜xk ∥˜xk ∥∞ (prvek v absolutní hodotě maximální je ±1). Využití: urychlení konvergence, změna dominance. Jiří Zelinka Vlastní čísla 15 / 34 Metoda Rayleighových podílů Věta 7 Buď λ1 dominantní vlastní číslo a v1 dominantní vlastní vektor, u je libovolný vektor, který není kolmý k v1, x0 má nenulovou složku ve směru vektoru v1 a xk+1 = Axk. Pak platí lim k→∞ (xk+1, u) (xk, u) = λ1. Důkaz je založen na rovnosti (xk+1,u) (xk ,u) = λ1 1 λk+1 1 xk+1,u 1 λk 1 xk ,u . Důsledek lim k→∞ (xk+1, xk) (xk, xk) = λ1. Poznámka Výrazy (xk+1,xk ) (xk ,xk ) se nazývají Rayleighovy podíly. Platí (xk+1, xk) = x∗ k Axk, viz též 2. algoritmus mocninné metody. Jiří Zelinka Vlastní čísla 16 / 34 Algoritmus metody Rayleighových podílů Položme x0 = u, zpravidla x0 = (1, . . . , 1)T . Pak pro k = 1, 2, . . . položíme 1 xk = Axk−1 ∥xk−1∥ 2 λ (k) 1 = (xk ,xk−1) (xk−1,xk−1) Algoritmus končíme zpravidla, pokud |λ (k) 1 − λ (k−1) 1 | je dostatečné malá. Jiří Zelinka Vlastní čísla 17 / 34 Redukce dimenze matice Věta 8 Nechť λ1, . . . , λn jsou vlastní čísla matice A, násobnost λ1 je 1 a v1 je příslušný vlastní vektor. Dále nechť x je vektor, pro který platí (x, v1) = 1. Pak matice B = A − λ1v1x∗ má vlastní čísla 0, λ2, . . . , λn a v1 je vlastní vektor příslušný 0. Důkaz Předpoklad (x, v1) = 1 se dá zapsat ve tvaru v∗ 1 x = x∗ v1 = 1. Odtud jednoduchým výpočtem dostaneme Bv1 = o = 0v1, takže v1 je vlastní vektor matice B pro vlastní číslo 0. Pro důkaz, že ostatní vlastní čísla matic A a B jsou stejná využijeme Jordanův kanonický tvar: A = VJV −1 ⇒ J = V −1 AV pro J = λ1 oT o J2 . Jiří Zelinka Vlastní čísla 18 / 34 Matici V zapišme blokově jako (v1, V2). Jelikož V −1 V je jednotková matice, platí V −1 v1 = e1. Pak V −1 BV = V −1 AV − λ1V −1 v1x∗ V = J − λ1e1(x∗ v1, x∗ V2) = = J − λ1e1(1, x∗ V2) = J − λ1 1 x∗ V2 o 0 = = 0 −λ1x∗ V2 o J2 Výsledná matice je podobná matici B (není v Jordanově kanonickém tvaru), má s ní tedy stejná vlastní čísla, ta jsou ale až na λ1 stejná jako pro matici A, protože pravý dolní blok J2 je u obou matic stejný. Jiří Zelinka Vlastní čísla 19 / 34 Věta 9 Buď B a x matice a vektor z předchozí věty. Buďte v1, u2, . . . , un vlastní vektory matice B. Pak pro i = 2, . . . , n jsou vi = (λi − λ1)ui + λ1(x∗ ui )v1 vl. vektory A příslušné λi . Důkaz Tvrzení dokážeme přímým výpočtem. Pro vlastní vektor ui matice B spočítáme nejprve Aui = (B + λ1v1x∗ )ui = Bui + λ1v1x∗ ui = λi ui + λ1(x∗ ui )v1. Pak A[(λi − λ1)ui + λ1(x∗ ui )v1] = = (λi − λ1)[λi ui + λ1(x∗ ui )v1] + λ1(x∗ ui )Av1 = = λi (λi − λ1)ui + λi λ1(x∗ ui )v1 − λ2 1(x∗ ui )v1+ +λ2 1(x∗ ui )v1 = = λi [(λi − λ1)ui + λ1(x∗ ui )v1]. Tím je důkaz u konce. Problém k zamyšlení: jak vyjádřit vlastní čísla matice B z vlastních čísel matice A. Jiří Zelinka Vlastní čísla 20 / 34 Wielandtova redukce Věta 10 Buď v1k a (ak,1, . . . , ak,n) k-tý prvek vektoru v1, resp. k-tý řádek matice A. Vektor x = 1 λ1v1k (ak,1, . . . , ak,n)∗ splňuje předpoklady věty o redukci dimenze, t.j. (v1, x) = 1. Důsledek Při aplikaci Wielandtovy redukce má matice B nulový k-tý řádek, takže můžeme zmenšit její dimenzi vypuštěním k-tého řádku i sloupce. Jiří Zelinka Vlastní čísla 21 / 34 QR algoritmus Věta 11 Nechť A = (ai,j ) je čtvercová matice, položme A0 = A. Dále nechť A0 = Q0R0 je QR rozklad matice A, položme A1 = R0Q0 a obecně pro Ak = QkRk položme Ak+1 = RkQk. Pak všechny matice Ak jsou podobné matici A. Pokud je A v Hessenbergově tvaru, platí totéž i pro Ak. Důkaz Podobnost dostaneme přímým výpočtem. Druhá část plyne z toho, že pro matici Ak v Hess. tvaru je matice Q v QR rozkladu také v Hess. tvaru (viz Givensova rotace). Jiří Zelinka Vlastní čísla 22 / 34 Poznámka Uvedený postup se nazývá QR algoritmus. Věta 12 Nechť A je regulární matice, která má všechna vlastní čísla v absolutní hodnotě různá a nehchť A = Y −1 diag(λ1, · · · λn)Y je její diagonalizace. Dále nechť existuje LU rozklad matice Y . Potom QR algoritmus konverguje k horní trojúhelníkové matici s vlastními čísly λ1, · · · λn na diagonále. Poznámka Pokud reálná matice splňuje předpoklady předchozí věty, pak má jen reálná vlastní čísla. Věta 13 Nechť A je regulární matice v Hessenbergově tvaru, která má všechna vlastní čísla v absolutní hodnotě různá. Pak QR algoritmus konverguje k horní trojúhelníkové matici s vlastními čísly matice A na diagonále. Jiří Zelinka Vlastní čísla 23 / 34 QR algoritmus s posunutím Posunutím se změní vlastní čísla, což může mít vliv na konvergenci. Algoritmus: A0 – matice v Hessenbergově tvaru. Uděláme QR rozklad matice A0 − µ0I: A0 − µ0I = Q0R0, pak položme A1 = R0Q0 + µ0I a obecně pro Ak − µkI = QkRk položme Ak+1 = RkQk + µkI. Věta 14 Všechny matice Ak jsou podobné matici A: Ak+1 = Q∗ k AkQk. Jiří Zelinka Vlastní čísla 24 / 34 Věta 15 Nechť A je neredukovaná matice řádu n v Hessenbergově tvaru. Pak pro matici R určenou QR rozkladem A = QR platí ri,i ̸= 0 pro i < n Důkaz plyne ihned z Givensovy rotace. Důsledek 1 Za předpokladů předchozí věty a pro singulární matici A platí rn,n = 0. Důsledek 2 Pokud za předpokladů předchozí věty je λ vlastní číslo matice A, A − λI = QR, B = RQ + λI (viz QR algoritmus s posunutím), je poslední řádek matice B ve tvaru (0, . . . , 0, λ). Jiří Zelinka Vlastní čísla 25 / 34 Rayleighovo posunutí: µk = ak nn Poznámka Pokud nastane v QR algoritmu situace z předchozího důsledku, můžeme snížit řád matice vypuštěním posledního řádku a sloupce – tzv. deflace. Totéž můžeme provést, pokud v předposledním sloupci na posledním řádku je v absolutní hodnotě menší, než stanovená hranice, pod níž považujeme čísla za nulová. Podobně lze rozdělit matici na dvě menší submatice (tzv. oddělení (decoupling)), jestliže se malé číslo objeví někde jinde pod hlavní diagonálou, takže matici lze považovat za redukovanou. Jiří Zelinka Vlastní čísla 26 / 34 Wilkinsonovo posunutí Nechť Ak je matice z posloupnosti vytvořené QR algoritmem s posunutím, položme m = n − 1. Wilkinsonovo posunutí je dáno vlastním číslem λ submatice ˜A tvořené m-tým a n-tým řádkem a stejnými sloupci matice Ak, které je bližší ak nn. Pro přehlednější zápis počítejme s n = 2: ˜A = a11 a12 a21 a22 . Charakteristický polynom: ψ(λ) = a11 − λ a12 a21 a22 − λ = λ2 − (a11 + a22)λ + a11a22 − a12a21. D = (a11 + a22)2 − 4(a11a22 − a12a21) = (a11 − a22)2 + 4a12a21 = 4(δ2 + a12a21), δ = a11−a22 2 . Jiří Zelinka Vlastní čísla 27 / 34 λ1,2 = 1 2 a11 + a22 ± 2 √ δ2 + a12a21 = = a11+a22 2 ± √ δ2 + a12a21 = a22 + δ ± √ δ2 + a12a21. Bližší vlastní číslo k číslu a22 je to, u něhož vybereme znaménko opačné, než je u δ. λ1 = a22 + sign(δ)|δ| − sign(δ) √ δ2 + a12a21 = = a22 + sign(δ)(|δ| − √ δ2 + a12a21) = = a22 + sign(δ)|δ|2−(δ2+a12a21) |δ|+ √ δ2+a12a21 = a22 − sign(δ) a12a21 |δ|+ √ δ2+a12a21 . Jiří Zelinka Vlastní čísla 28 / 34 Wilkinsonovo posunutí pro komplexní vlastní čísla: λ1,2 ∈ C ∖ R ψ(λ) = λ2 − tr( ˜A)λ + det( ˜A), D = tr2 ( ˜A) − 4det( ˜A) λ1,2 ∈ C ∖ R pro D < 0, t.j. tr2 ( ˜A) < 4det( ˜A) λ1,2 = 1 2 tr( ˜A) ± i |D| , λ1 = ¯λ2 R(λ1,2) = 1 2 tr( ˜A) |λ1,2|2 = 1 4 tr2 ( ˜A) + |D| = 1 4 tr2 ( ˜A) + 4det( ˜A) − tr2 ( ˜A) = det( ˜A). Provedeme posunutí s λ1 a pak s λ2, tím se vyruší imaginární části vlastních čísel – tzv dvojité posunutí (double shift). Jiří Zelinka Vlastní čísla 29 / 34 Můžeme vycházet od A0: A0 − λ1I = Q0R0 A1 = R0Q0 + λ1I A1 − λ2I = Q1R1 A2 = R1Q1 + λ2I Z 2. a 3. rovnosti dostáváme R0Q0 + (λ1 − λ2)I = Q1R1 Q0[· · · ]R0 Q0R0Q0R0 + (λ1 − λ2)Q0R0 = Q0Q1R1R0 Q0R0(Q0R0 + (λ1 − λ2)I) = Q0Q1R1R0 (A0 − λ1I)(A0 − λ2I) = Q0Q1R1R0 Položme M = (A0 − λ1I)(A0 − λ2I) = A2 0 − 2R(λ1,2)A0 + |λ1,2|2 I. Matice M je reálná, M = A2 0 − tr( ˜A)A0 + det( ˜A)I, M = Q0Q1R1R0 = QR je její (reálný) QR rozklad. Jiří Zelinka Vlastní čísla 30 / 34 Dále víme: A1 = Q∗ 0 A0Q0, A2 = Q∗ 1 A1Q1 = Q∗ 1 Q∗ 0 A0Q0Q1 = Q∗ A0Q. Shrnutí: V matici Ak vybereme matici ˜A tvořenou posledními dvěma řádky a sloupci. Pokud tr2 ( ˜A) ≥ 4det( ˜A) provedeme normální Wilkinsonovo posunutí, v opačném případě vytvoříme pomocnou matici M = A2 k − tr( ˜A)Ak + det( ˜A)I, najdeme její QR rozklad M = QR a Ak+2 = Q∗ AkQ. Jiří Zelinka Vlastní čísla 31 / 34 Praktický QR algoritmus pro reálné matice Vycházíme z Hessenbergova tvaru. Používáme posunutí, nejlépe Wilkinsonovo. Používáme deflaci a oddělení s aplikací algoritmu na submatice, pokud dostaneme redukovanou matici. U matic 2 × 2 určíme vlastní čísla přímo. Pokud má tato matice reálné kořeny, algoritmus funguje i dál, pro komplexní kořeny by matice M pro dvojité posunutí měla vyjít nulová, ale může nastat cyklení z důvodů numerických chyb. Násobná vlastní čísla algoritmus určuje s velkými chybami. Neexistuje důkaz o konvergenci QR algoritmu (ani s posunutím) v obecném případě. Podobný algoritmus, který předcházel QR algoritmu, je založen na LU rozkladu. Jiří Zelinka Vlastní čísla 32 / 34 QR algoritmus pro symetrické matice Matice v Hessenbergově tvaru je třídiagonální. Pokud má matice vícenásobné vlastní číslo, její Hessenbergův tvar musí být redukovaný. QR algoritmus zachovává třídaigonalitu a symetrii. Posunutí také zachovává třídaigonalitu a symetrii. Dvojité posunutí není potřebné. QR algoritmus konverguje k diagonální matici. Poznámka Pro symetrické matice se používá také Jacobiova metoda, která využívá Givensovy rotace a výběr vedoucích prvků (pivotů). Jiří Zelinka Vlastní čísla 33 / 34 Numerický výpočet singulárního rozkladu reálné matice Buď A reálná matice, položme C = AT A. Pomocí QR algoritmu najdeme diagonalizaci C: V T 1 CV1 = diag(σ2 1, . . . , σ2 r , 0, . . . , 0). (Během algoritmu musíme průběžně uchovávat součin použitých ortogonálních matic – matici V1). Na matici AV1 aplikujeme QR rozklad s výběrem vedoucích sloupců, přičemž prvky na diagonále R vezmeme nezáporné: AV1P = UR, tedy UT AV1P = R. Přímým výpočtem se ověří, že RT R je diagonální, proto i matice R je diagonální. Pro Σ = R a V = V1P máme tedy UT AV = Σ, navíc diagonální prvky Σ tvoří nerostoucí posloupnost. Jiří Zelinka Vlastní čísla 34 / 34