Arnoldiho a Lanczosova metoda 1
Částečný problém vlastních čísel Ne vždy je potřeba (a někdy to není ani technicky možné) nalézt celé spektrum dané matice (velké řídké matice). Úloze, ve které chceme aproximovat pouze malou část spektra, budeme říkat částečný problém vlastních čísel. Dvě základní metody, Arnoldiho metoda obecné matice Lanczosova metoda hermitovské matice. Stačí, když jsme schopni realizovat násobení matice vektorem. 2
Metody Krylovových podprostorů Dána čtvercová regulární A R n n, startovací vektor v. Velké řídké matice jedinou operací, kterou jsme schopni s A provést, je násobení Av, A nemusí být dána explicitně. Využití této operace: budování posloupnosti podprostorů K k (A, v) span{v, Av, A 2 v,..., A k 1 v}, Krylovovy podprostory. Problém (řešení soustavy či problém vlastních čísel) projektujeme na tyto podprostory a tím získáme postupné aproximace řešení. 4
Metody Krylovových podprostorů Příklad - systém lineárních rovnic Ax = b, hledáme aproximaci x k x k K k (A, b). Aby x k jednoznačné nutné předepsat k podmínek. Definujme k-té reziduum vztahem r k b Ax k, x k K k (A, b) r k b + AK k (A, b). Pokud r k = 0 x k je přesné řešení. Logický požadavek: r k co nejmenší v rámci daných omezení ortogonální projekce b na AK k (A, b), r k AK k (A, b). 5
Metody Krylovových podprostorů Systém lineárních rovnic Pokud pak je x k určeno jednoznačně. dim(k k (A, b)) = k, b projektujeme do stále většího a většího podprostoru a norma rezidua se zmenšuje. Roste-li dimenze K k (A, b), dostáváme pro k = n Potom je AK n (A, b) = R n, r n R n r n = 0 x n = x. 6
Metody Krylovových podprostorů Příklad - problém vlastních čísel Ay = λy Vlastní vektor a příslušné vlastní číslo (vlastní pár) budeme aproximovat dvojicí (y j, µ j ) tak, aby y j K k (A, v), Ay j µ j y j K k (A, v), v je daný startovací vektor. Pokud dim K k (A, v) = k a je-li A diagonalizovatelná, potom existuje právě k párů (y j, µ j ) splňující tuto podmínku získáme aproximace k vlastních čísel a vektorů. Roste-li dimenze Krylovových podprostorů, získáme pro k = n všechny vlastní vektory a vlastní čísla matice A. 7
Dimenze Krylovových podprostorů K k (A, v) span{v, Av, A 2 v,..., A k 1 v} Maximální dimenzi, jež mohou Krylovovy podprostory generované maticí A a vektorem v dosáhnout, budeme nazývat stupněm v vzhledem k A, d(a, v) min{k; dim K k (A, v) = dim K k+1 (A, v)}. d(a, v) je dimenze nejmenšího Krylovova podprostoru K k (A, v) invariantního vzhledem k násobení maticí A x K k (A, v) Ax K k (A, v). d(a, v) je omezeno stupněm minimálního polynomu. 8
Báze Krylovových prostorů Abychom mohli s Krylovovými prostory pracovat potřebujeme rozumnou bázi. Báze v, Av,..., A k 1 v není vhodná k výpočtům (špatná podmíněnost), viz mocninná metoda. Pro efektivní a numericky stabilní práci je nutné umět počítat dobře podmíněnou bázi (ideálně ortogonální). Chceme bázové vektory v 1,..., v k podprostoru K k (A, v), které vyhovují podmínkám v i+1 K i+1 (A, v) \ K i (A, v), span{v 1,..., v i } = K i (A, v) Bez újmy na obecnosti v i = 1, 1 i k. 9
Arnoldiho algoritmus Základní myšlenka Nechť v 1,..., v k splňují v i+1 K i+1 (A, v) \ K i (A, v), span{v 1,..., v i } = K i (A, v), i = 1,..., k 1, a nechť k < d(a, v). Potom Idea projekce, Av k K k+1 (A, v) \ K k (A, v). w = Av k k i=1 h i,k v i, v k+1 = w w, kde h i,k jsou vhodně zvolené koeficienty. v 1,..., v k, v k+1 splňují opět danou podmínku. 11
Podrobněji Krok 1: v 1 v v. Krok 2: urči w tak, aby w v 1 a normuj Krok k + 1: w = Av 1 h 1,1 v 1, h 1,1 = Av 1, v 1 h 2,1 = w, v 2 = w h 2,1, Av 1 = h 1,1 v 1 + h 2,1 v 2. k w = Av k h i,k v i, h i,k = Av k, v i, i=1 h k+1,k = w, v k+1 = w. h k+1,k Av k = h 1,k v 1 + h 2,k v 2 + + h k,k v k + h k+1,k v k+1. 12
Arnoldiho algoritmus Algebraicka formulace tj. Av 1 = h 1,1 v 1 + h 2,1 v 2, Av 2 = h 1,2 v 1 + h 2,2 v 2 + h 3,2 v 3,. Av k = h 1,k v 1 + + h k,k v k + h k+1,k v k+1 A V k = V k H k + h k+1,k v k+1 e T k, V k [v 1,..., v k ], H k = h 1,1 h 1,2... h 1,k h 2,1 h 2,2... h 2,k......... h k,k 1 h k,k. 13
Arnoldiho algoritmus Algorimus počítající ortogonální bázi Krylovova prostoru, který jsme právě odvodili nazveme Arnoldiho algoritmem. 1: input A, v 2: v 1 = v v 3: for k = 1, 2,... do 4: w = Av k 5: for i = 1 : k do 6: h i,k = w, v i 7: w = w h i,k v i 8: end for 9: h k+1,k = w 10: v k+1 = w h k+1,k 11: end for A V k = V k H k + h k+1,k v k+1 e T k. 14
Ukončení Arnoldiho algoritmu K ukončení Arnoldiho algoritmu dochází tehdy, je-li h k+1,k = 0, tj. w = 0 a platí k Av k = h i,k v i. i=1 Jinak řečeno, Av k K k (A, v) a platí K k (A, v) = span{v 1,..., v k } a tudíž je k = d(a, v). = span{v 1,..., v k, Av k } = K k+1 (A, v) Arnoldiho algoritmus najde ortogonální bázi celého invariantního prostoru K d (A, v). 15
Arnoldiho algoritmus počítá po sloupcích QR rozklad Arnoldi Gram-Schmidt. Lze na Arnoldiho algoritmus nahlížet jako na QR rozkladu nějaké matice? Matici [Av 1,..., Av k ] rozšíříme o první sloupec v 1, platí [v 1, Av 1,..., Av k ] = V k+1 1 h 1,1 h 1,2... h 1,k h 2,1 h 2,2... h 2,k......... h k,k 1 h k,k h k+1,k Arnoldiho algoritmus počítá postupně po sloupcích QR rozklad matice [v 1, Av 1,..., Av k ], která na počátku výpočtu není známa. Tato matice vzniká postupně po sloupcích.. 16
Arnoldiho algoritmus a vlastní čísla matice A Vektory počítané Arnoldiho algoritmem splňují AV k = V k H k + h k+1,k v k+1 e T k a pro k = d(a, v) je h d+1,d = 0, AV d = V d H d. Nechť platí H d y = µ y, y 0, potom A V d y = V }{{} d H d y = µ V d y. }{{} x x Množina vlastních čísel H d je podmnožinou vlastních čísel A, vlastní vektory A lze spočíst z vlastních vektorů H d. A regulární H d regulární. 18
Arnoldiho algoritmus a aproximace vlastních čísel matice A Pro k < d je h k,k+1 0. Vlastní čísla a vektory H k poskytují pouze aproximace vlastních čísel A. Přenásobením vztahu y (vlastní vektor H k ) dostáváme AV k y = V k H k y + h k+1,k v k+1 e T k y = µv k y + h k+1,k v k+1 e T k y. Jinak řečeno, vektor x V k y splňuje Ax µx = h k+1,k v k+1 e T k y tj. reziduum Ax µx je násobkem v k+1, Ax µx = h k+1,k e T k y. 19
Arnoldiho metoda Arnoldiho metoda na výpočet aproximací vlastních čísel využívá Arnoldiho algoritmus k výpočtu matice H k. Poté spočte vlastní čísla a vlastní vektory y matice H k, V k y je pak aproximace vlastního vektoru A. Pro obecnou nesymetrickou matici je problematické říci cokoliv o blízkosti spočtené aproximace vlastního čísla µ k nejbližšímu vlastnímu číslu matice A, víme jen Ax µx = h k+1,k e T k y. Vlastní čísla H k Ritzova čísla, vektory V k y Ritzovy vektory. 20
Arnoldiho algoritmus aplikovaný na symetrickou matici Arnoldiho algoritmus na symetrickou regulární A, AV k = V k H k + h k+1,k v k+1 e T k. Přenásobme maticí Vk T, ortogonalita sloupců, symetrie, V T k AV k = H k, H k = V T k AV k = V T k A T V k = (V T k AV k ) T = H T k. H k je symetrická, horní Hessenbergova tridiagonální, α 1 β 2 β 2 α 2 β 3. H k =........ T k....... β k β k α k 22
Lanczosův algoritmus Platí Rozepišme po sloupcích, AV k = V k T k + β k+1 v k+1 e T k. β j+1 v j+1 = Av j α j v j β j v j 1, j = 1,..., k. Ortogonální bázi Krylovova prostoru lze pro symetrickou matici A počítat tříčlennou rekurencí. β j+1 je normalizační koeficient (vždy kladný), α j určíme z podmínky v j+1 v j, platí α j = Av j, v j. Ortogonalita k ostatním vektorům báze je automaticky splněna díky symetrii matice A. 23
Lanczosův algoritmus input A, v v 0 := 0 v 1 := v/ v β 1 := 0 for k = 1, 2,... do w := Av k β k v k 1 α k := v k w w := w α k v k β k+1 := w v k+1 := w/β k+1 end for 24
Lanczosova metoda na výpočet aproximací vlastních čísel Lanczosova metoda = Arnoldiho metoda pro symetrickou A. Nechť k < d a nechť (µ, y) je vlastní pár T k, T k y = µy, x V k y. Protože volíme y tak, aby y = 1, je i x = 1. Z AV k = V k T k + β k+1 v k+1 e T k plyne a pro normu rezidua platí Ax = µx + β k+1 v k+1 e T k y Ax µx = β k+1 e T k y. Díky symetrii matice A lze tento vztah dále analyzovat. 26
Analýza Lanczosovy metody Blízkost aproximace A je symetrická A = UΛU T, kde U je ortogonální a Λ je diagonální reálná, Ax µx = UΛU T x µx = Λ U T x µ U T x. Označme w U T x, platí Jinak řečeno, Ax µx = (Λ µi)w min λ j µ w λ j = min λ j µ x. λ j min λ j µ λ j Ax µx x = β k+1 e T k y x. 27
Analýza Lanczosovy metody Přesná versus konečná aritmetika Pomocí čísla β k+1 e T k y lze kontrolovat kvalitu příslušné aproximace µ. Při odvození odhadu jsme použili vlastnost 1 = y = y T Vk T V ky = x, neplatí obecně při počítání v konečné aritmetice, ztráta ortogonality mezi sloupci V k může způsobit y x. Christopher C. Paige netriviální analýza, ukázal že min λ j λ j µ β k+1 e T k y platí i pro vypočtené hodnoty v konečné aritmetice (až na možnou malou nepřesnost u), navzdory ztrátě ortogonality a velikosti x. 28
Jacobiho matice v Lanczosově algoritmu Matici T k = α 1 β 2 β 2 α 2 β 3............... β k, kde α i R, i = 1,..., k a β i > 0, i = 2,..., k nazveme Jacobiho maticí. Tyto matice se v průběhu minulého století staly středem zájmu díky tomu, že se vyskytují v obecné teorii ortogonálních polynomů a Gaussovy kvadratury. Výskyt Jacobiho matic v Lanczosově algoritmu naznačuje možný blízký vztah mezi tímto algoritmem a zmíněnou teorií. β k α k 29
Některé vlastnosti Jacobiho matic Vlastní čísla Jacobiho matic se ostře prokládají. Všechna leží pro k < d v otevřeném intervalu (λ 1, λ n ). Pro k < d jsou vlastní čísla T k různá od vlastních čísel A. 30
Cvičení 7.5 Uvažujme charakteristické polynomy Jacobiho matic J k, χ 0 (λ) 1, χ k (λ) = det(λi J k ), k = 1, 2,.... Ukažte, že platí χ 0 = 1, χ 1 = λ α 1, χ k (λ) = (λ α k )χ k 1 (λ) β 2 kχ k 2 (λ), k = 2, 3,.... 7.7 Ukažte pomocí předchozí rekurence, že dvě po sobě jdoucí Jacobiho matice nemohou mít stejná vlastní čísla. 7.8 Dokažte následující vztah mezi v k generovanými Lanczosovým algoritmem s počátečním vektorem v a charakteristickými polynomy χ k (λ) odpovídajících Jacobiho matic: kde χ 0 = 1. v k = 1 β 1 β 2... β k χ k 1 (A)v, k = 1, 2,..., 32
Cvičení Nechť y je vlastní vektor matice T k, k < d. Ukažte, že jeho poslední složka je nenulová, tj. platí e T k y 0. Důsledek: Pro k < d je Ax µx = β k+1 e T k y 0. tj. µ není vlastním číslem matice A. 33