M596 Vybrané partie z aplikované matematiky seminář QR- -ROZKLAD Petr Zemánek, Brno 6 petrzemanek@mailmunicz
Obsah Trocha historie Motivace QR-rozklad 4 4 Konstrukce QR-rozkladu 5 4 QR-rozklad pomocí Gram-Schmidtova algoritmu 5 4 Householderova matice zrcadlení 7 4 QR-rozklad pomocí Householderovy matice 44 Givensova matice rovinné rotace 5 45 QR-rozklad pomocí Givensovy matice 9 46 Srovnání algoritmů 5 Aplikace QR-rozkladu 5 Řešení systémů rovnic pomocí QR-rozkladu 5 QR-rozklad a Moore-Penroseova zobecněná inverse 5 QR-rozklad a vlastní čísla matice A QR-algoritmus 4 Seznam použité literatury 6
Trocha historie RUTISHAUSER, H: Solution of Eigenvalue Problems with the LR-transformation Nat Bur Standards Appl Math Ser, No 49, str 47-8, 958 FRANCIS, JGF: The QR Transformation: a Unitary Analogue to the LR Transformation I The Computer Journal, 4, str 65-7, 96/96 KUBLANOVSKAYA, VN: On Some Algorithms for the Solution of the Complete Eigenvalue Problem USSR Comput Math and Math Phys,, str 67-657, 96 FRANCIS, JGF: The QR Transformation: a Unitary Analogue to the LR Transformation II The Computer Journal, 4, str -45, 96/96 PARLETT, B: The Development and Use of Methods of LR Type SIAM Review, Vol 6(), str 75-95, 964 PARLETT, B: Convergence of the QR Algorithm Numerische Mathematik, 7, str 87-9, 965 TOP DONGARRA, J and SULLIVAN, F: The top ten algorithms Computing in Science and Engineering, : Algoritmus Metropolis pro Monte Carlo Simplexová metoda pro lineární programování Iterace Krylovových podprostorů Dekompenzační přístup k maticovým výpočtům Choleského metoda, QR-rozklad, LU- -rozklad s pivotem, spektrální rozklad, Schurův rozklad, singulární rozklad Optimalizační kompilátor Fortranu QR-algoritmus pro výpočet vlastních hodnot Quick sort FFT rychlá Fourierova transformace Integer relation detection FMM rychlá multipólová metoda
Motivace Řešení rovnic pomocí Gaussovy eliminace se dá zapsat jako rozklad na součin dvou matic LU, kde L je dolní trojúhleníková matice a U je ve schodovitém tvaru, tzn nulové řádky jsou až) na konci a každý nenulový řádek začíná větším počtem nul než ten předchozí, např ( 4 spec pro regulární matice je U horní trojúhelníková, přičemž L lze chápat jako součin (řádkových) elementárních matic I (i, j) což popisuje právě kroky v Gaussově eliminaci Podmíněnost soustavy (matice): c(a) = A A Řekneme, že matice A je dobře podmíněná, pokud c(a), a že je špatně podmíněná, pokud c(a) Ovšem při Gaussově eliminaci platí pro podmíněnost c(a) c(l)c(u), takže se celková podmíněnost ještě zhorší (výjimku tvoří pozitivně definitní matice, kde A = L a c (A) = c (L)) Tomuto se můžeme vyhnout, pokud matici A rozložíme na součin ortogonální a horní trojúhelníkové matice, tedy na tzv QR-rozklad Potom při řešení soustavy rovnic Ax = QRx = b Rx = Q T b x = R Q T b Nebot ortogonální transformace zachovává velikost euklidovské normy, bude Q = a c (Q) =, takže A = R a c (A) = c (R) Tedy nezhoršuje se podmíněnost dvou přechodných soustav Rx = y a Qy = b ani nedochází k růstu prvků
QR-rozklad Definice Dvojici matic Q a R nazveme QR-rozkladem matice A, pokud platí, že A = QR, přičemž Q je ortogonální matice a R je horní trojúhelníková matice Věta O existenci QR-rozkladu K libovolné reálné matici A R m n, kde m n, existuje ortogonální matice Q R m m a horní trojúhelníková matice R R m n tak, že platí A = QR Věta O jednoznačnosti QR-rozkladu Jsou-li sloupce matice A R m n, m n, lineárně nezávislé, potom v QR-rozkladu jsou matice R a prvních n sloupců matice Q určeny až na znaménko jednoznačně Důkaz: QR-rozklad existuje vždy, a jak později uvidíme, lze jej získat různými algoritmy To ovšem nic nemění na tom, že pokud má matice A lineárně nezávislé sloupce, pak až na znaménka existuje právě jeden QR-rozklad Mějme dva takové QR-rozklady matice A, tj necht A = Q R = Q R Nebot platí dostaneme Dále také platí, že Q R = Q R, R R = Q Q = Q T Q (R R ) = (Q T Q ) = Q (Q T ) = Q T Q = (Q T Q ) T = (R R ) T, tedy matice R R je ortogonální a diagonální Taková je však pouze matice E Takže R R = E, což znamená, že R = R, tedy i Q = Q 4
4 Konstrukce QR-rozkladu 4 QR-rozklad pomocí Gram-Schmidtova algoritmu Věta Gram-Schmidtův QR-rozklad K libovolné reálné matici A R m n, kde m n, existuje ortogonální matice Q R m m a horní trojúhelníková matice R R m n s nezápornými prvky na diagonále tak, že platí A = QR V případě lineárně nezávislých sloupců matice A jsou prvky na diagonále kladné Základní myšlenka důkazu: Máme-li matici A R m n, pak aplikací zobecněného Gram- -Schmidtova ortogonalizačního procesu na sloupce matice A (ty mohou být lineárně závislé i nezávislé) a doplněním těchto vektorů na bázi v R m získáme sloupce matice Q Uvažujme matici A = (a a n ) složenou ze sloupcových vektorů Pak u = a, e = u u, u = a proj e a, e = u u, u = a proj e a proj e a, e = u u, k u k = a k proj ej a k, e k = u k u k, j= kde proj u v = <v, u> <v, v> u Po úpravě obdržíme vzorce pro vektory a i a = e u, a = proj e a + e u, a = proj e a + proj e a + e u, k a k = proj ej a k + e k u k j= Označme Q = (e e n ) Nyní máme < e, a > < e, a > < e, a > < e, a n > < e, a > < e, a > < e, a n > R = Q T A = < e, a > < e, a n >, < e n, a n > nebot QQ T = E a < e j, a j >= u j, < e j, a k >= pro j > k 5
5 4 Příklad Proved me QR-rozklad matice A = 6 67 68 Gram-Schmidtovým procesem 4 4 4 dostaneme 69 58 U = (u u u ) = 6 58 6 4 65 Matici Q potom získáme jako Q = ( u u u u ) u = u 6/7 69/75 58/75 /7 58/75 6/75 /7 6/5 /5 Pak A = QQ T A = QR, takže 4 4 R = Q T A = 75 7 5 Algoritmus? Mějme matici A Položme pro k =,, n spočítejme: r = a, q = a r, r jk = < q j, a k > pro j =,, k, k z k = a k r jk q j, j= r kn = < z k, z n > q k = z k r kk Metodu lze také upravit tak, že zaměníme pořadí oprací Tedy položme Pak pro k =,, n spočtěme r kk = a (k ) k, A A q k = a(k ) k, r kk r ki = q T k a (k ) i pro i = k +,, n, A (k) = A (k ) q k r T k Z formálního hlediska jde o změnu pořadí operací, ovšem z numerického hlediska obdržíme kvalitativně různé výsledky 6
4 Householderova matice zrcadlení Definice Matice tvaru H(u) : = E uut u T u = E uut u se nazývá Householderova matice (někdy též elementární zrcadlení (odraz), Householderova transformace) Vlastnosti: označení matice zrcadlení se používá proto, že aplikujeme-li matici H(u) pro nějaké u na vektor x R n, pak je vektor H(u)x souměrný s vektorem x podle nadroviny ortogonální k vektoru v; u(u T x) u T x u x P u(u T x) u T u H x = (I uut )x = x u(ut x) u T u u T u Obrázek : Householderova transformace geometrický význam matice E bývá považována za speciální případ Householderovy transformace pro u = je H() = E; Hx = x pro každé x R n, tj zrcadlení tedy nemění délku vektoru; Hy = y pro každé y P = {v R n v T u = } H má jednoduchou vlastní hodnotu - a (n )-násobnou vlastní hodnotu ; Důkaz: Nebot y P = {v R n v T u = } má n lineárně nezávislých vektorů y,, y n a Hy i = y i pro i =,,, n Takže je (n )-násobná vlastní hodnota H také zrcadlí u na u, tj Hu = u Takže - je vlastní hodnota matice H, která musí být jednoduchá, nebot H má pouze n vlastních hodnot 7
z věty o spektrálním rozkladu plyne Matice H je ortogonální a symetrická; Důkaz: Symetrie plyne z Nebot platí H (u) = det(h) = ( ) = ; ( uu H T (u) = E T T ) T uu T = E u T u u = H(u) ) ) (E (E uut uut = E 4 uut u T u u T u u + uu T 4uuT = E, u 4 je matice H(u) ortogonální Historická poznámka Poslední tvrzení, které má velmi široký význam především v aplikacích, dokázal v článku Unitary Triangularization of a Nonsymmetric Matrix z roku 958 Alston S Householder (94-99), americký matematik, který se zabýval numerickou analýzou Věta 4 Pro každé dva vektory y, z R n takové, že y z a y = z, platí y = H(y z)z Jinými slovy, každé dva různé vektory o stejné normě lze převést jeden na druhý Householderovou transformací Důkaz: Platí H(y z)z = (E (y z)(y z)t y z = z + y + z y T z y z ) z = z yt z z y z (y z) = (y z) = z + y z (y z) = y y z Důsledek Jsou-li y, z dva vektory o stejné normě, potom existuje ortogonální matice Q taková, že y = Qz Důkaz: Pro y z stačí vzít Q = H(y z), jinak Q = E Věta 5 Pro každé x R n je { H(x + sgn(x ) x e ) pro x x, H = E pro x = x ortogonální matice s vlastností Hx = x e Neboli, aplikujeme-li vhodnou matici H na vektor x, dostaneme vektor, který má všechny složky až na první nulové 8
Důkaz: Je-li x = x, potom z x = x + + x n plyne, že x = = x n = Tedy x = x e = = x e = Ex = Hx Je-li x x, potom x + sgn(x ) x e, takže vektory y = sgn(x ) x e a z = x jsou různé a platí pro ně y = x = z, a odsud podle Věty 4 je y = sgn(x ) x e = H(y z)z = H( x sgn(x ) x e )x Poznámka Pro vektor určující Householderovu matici lze volit bud + x e nebo x e Z důvodu minimalizace numerických chyb volíme stejné znaménko jako u první složky vektoru x Věta 6 Pro každé x takové, že x =, je { H(x + sgn(x ) e ) pro x e, H = E pro x = e ortogonální matice, jejímž prvním sloupcem je vektor x Důkaz: Pro x = e je zřejmý Necht tedy x e Protože x = = e, je podle Věty 5 x = H(x + sgn(x ) e ) = He = H, což je tvrzením věty Díky těmto větám tedy umíme najít vektor u tak, že daný nenulový vektor x se transformuje na vektor, který má nenulovou pouze první složku Příklad Lze x = (,, 7) T H(u) (α,, ) T? Protože x = 6, položíme u = x x e = ( 6,, 7) T a u = 6(8+ 6 ) Dále uu T = 6 ( 55 + 6 6 + 6 6 7 6 6,, 7) = + 6 6 4 4 7 7, 6 4 49 takže H(u) = Snadno lze ověřit, že 6 6 6 7 + 6 (8 + 6 6 5 + 6 4 6 ) 7 + 6 4 5 + 6 H(u)x = ( 6,, ) T 9
4 QR-rozklad pomocí Householderovy matice Věta 7 Householderův QR-rozklad Každou matici A R m n lze pomocí s = min{n, m } Householderových matic rozložit na součin QR, a to tak, že platí ( R ) m > n, H s H H A = Q T A = (R, ) m < n, R m = n Mějme reálnou matici A a a n a a n A = a m a mn Krok : Zkonstruujme Householderovu matici H tak, aby H A měla v prvním sloupci pouze samé s výjimkou pozice (, ), tj aby H A = K tomu stačí získat vektor u n (dle předchozího) tak, že pro platí H H = E u nu T n u T nu n a a a m = Označme A () : = H A Ta je tvaru a A () = Krok : Zkonstruujme Householderovu matici H tak, že H A () má ve druhém sloupci pod pozicí (, ) při zachování požadavku prvního kroku, tj A () : = H A () =
Matici H získáme takto: Nejdříve zkonstruujeme Householderovu matici o rozměru (m ) (n ) takovou, že a definujme Tím získáme matici A () = H A () Analogicky pokračujeme dále Ĥ : = E n u n u T n u T n u n Ĥ a a a m =, H : = Ĥ Pro k s Krok k-tý: Obecně vytváříme Householderovu matici Ĥ k : = E n k+ u n k+u T n k+ u T n k+ u n k+ o rozměru (m k + ) (n k + ) takovou, že a kk Ĥ k = a mk Definujeme čili můžeme spočítat A (k) = H k A (k ) ( ) Ek H k : =, Ĥ k Tímto způsobem po s krocích obdržíme matici A (s), která bude v horním trojúhelníkovém tvaru a bude právě maticí R Protože A (k) = H k A (k ) k =,, s, máme Položme R = A (s) = H s A (s ) = H s H s A (s ) = = H s H s H H A Q T = H s H s H H
Máme naši hledanou ortogonální matici (nebot každá z H i je ortogonální) Celkem R = Q T A, tj A = QR (Uvědomme si, že Q = H T H T H T s = H H H s ) Příklad Uvažme matici Krok : Konstrukce H A = H = Potom tedy dle Příkladu spočteme u = + =, takže H = E u u T u T u = = Určeme A () = H A = + + Krok : Zkonstruujeme ( ) ( ), 7 Ĥ = =,, 7 ( ) ( ) ( ), 7, 48 u =, 47 =,, 7, 7 ( ), 69, 9856 Ĥ =,, 9856, 69 tzn H =, 69, 9856,, 9856, 69
a spočítáme, 44,, 884 A () = H A () = H H A =, 47, 6 = R, 5774 Pro Q nyní platí, 865, 5774 Q = H H =, 77, 48, 5774, 77, 48, 5774 Celkem tedy A = =, 865, 5774, 44,, 884 =, 77, 48, 5774, 47, 6 = QR, 77, 48, 5774, 5774 Příklad 4 Uvažme nyní obdélníkovou matici A =,, Platí s = min{, } Krok : Konstrukce H u =, + +, =, H = E u u T, =, u T u A () = H A =,, Krok : Zkonstruujeme Ĥ ( ), u = ( ) (, ), +, Ĥ = ( ), 77, 77,, 77, 77, ( ), 44 = 4,,
a H =, 77, 77,, 77, 77 A () = H A () =,,, Q = H H =,, 77, 77, 77, 77 R = ( ), Celkem tedy,, A =, =,, 77, 77, = QR,, 77, 77 Poznámka Pokud matice A nemá zaručenu plnou hodnost, je vhodné upravit výpočet tak, abychom případné nulové (resp malé ) diagonální prvky r kk dostali až na závěr výpočtu Můžeme modifikovat QR-rozklad výběrem největšího sloupce v normě tzv QR-rozklad s pivotem Znamená to, že QR-rozklad matice AP = QR, kde P = P P P s a P k je permutační matice výměny k-tého a j -tého sloupce v k-tém kroku metody (v případě, že řešíme soustavu rovnic, je třeba učinit příslušné permutace i složek vektoru řešení) V této modifikaci bude pro matici R platit j rkk r ij, j = k +,, n, i=k tedy také r > > r nn Nulové, resp téměř lineárně závislé sloupce se takto přesunou na konec matice a snadno se budou moci v případě potřeby oddělit Později uvidíme výhody této modifikace Stejné výsledky obdržíme i v modifikovaném Gram-Schmidtově postupu s výběrem pivota, pokud ještě před k-tým krokem najdeme index i tak, že a i = max a (k ) i a vyměníme i -tý a k-tý sloupec matice A (k ) 4
44 Givensova matice rovinné rotace Definice Matice tvaru c s G(i, j, c, s) : = = s c = E + (c )(e i e T i + e j e T j ) + s(e i e T i e j e T j ), kde c + s =, se nazývá Givensova matice Historická poznámka Matice nese jméno amerického matematika Wallace Givense (9-99), který se zabýval především numerickou analýzou Můžeme volit c = cos Θ a s = sin Θ pro nějaké Θ Pak značíme Givensovu matici jako G(i, j, Θ) Geometricky můžeme matici G(i, j, Θ) chápat jako rotaci (otočení) R n kolem počátku o úhel Θ v rovině (e i, e j ) To je také důvod, proč se matice nazývá i Givensova matice rotace nebo Givensova matice rovinné rotace v (e i, e j ) rovině e j Θ u = ( ) cos α sin α v = ( ) cos(α Θ) = sin(α Θ) ( cos Θ sin Θ sin Θ cos Θ ) u α e i Obrázek : Givensova transformace geometrický význam Givensova matice je ortogonální, nebot z c + s = plyne G T (i, j, Θ)G(i, j, Θ) = G(i, j, Θ)G T (i, j, Θ) = E Vzhledem k tvaru matice G platí, že pokud jí vynásobíme nějaký vektor x x x =, 5 x n
tak se změní pouze i-tá a j-tá komponenta vektoru x, ostatní se nezmění Pokud máme vektor x = ( x x ), pak lze snadno ověřit, že při volbě c = x, s = x + x x x + x () (pak totiž platí x sin Θ + x cos Θ = ) bude pro ( ) c s G(,, Θ) = s c platit G(,, Θ) ( x x ) = ( ), tedy vynulujeme druhou složku vektoru x Chceme-li vynulovat první složku vektoru x, položíme x x c =, s = x + x x + x Příklad 5 Necht x = 4 5 ( ) 4 Položme (dle vztahu ()) c = a s = 4 Transformací Givensovou maticí dostaneme 5 5 ( ) ( ) ( ) 4 G(,, Θ)x = 5 5 = 4 Při násobení vektoru x T zprava obdržíme Při volbě c = 4 5 a s = 5 dostaneme a Nulování na specifických pozicích 5 x T G T (,, Θ) = ( ) G(,, Θ)x = ( ) x T G T (,, Θ) = ( ) Givensova rotace je zvláště užitečná, pokud chceme vytvořit nulu na určité pozici ve vektoru Necht x x x x = i x k x n 6
a požadujme pouze nulu na pozici x k Můžeme sestrojit rotaci G(i, k, Θ) (i < k) tak, že G(i, k, Θ) x bude mít nulu na k-té pozici Konstrukce: Nejdříve sestavíme Givensovu matici G(i, k, Θ) = ( s c s c ), tak aby ( ) ( ) ( ) c s xi = s c x k Tvar matice G(i, k, Θ) získáme tak, že na pozice (i, i) a (k, k) vložíme c, na pozici (i, k) vložíme s a na pozici (k, i) vložíme s, zbytek doplníme na identickou matici Příklad 6 Bud x = Sestavme Givensovu matici tak, aby vytvořila nulu na třetí pozici, tj k = Zvolme i = Krok : ( ) ( ) ( ) c s =, s c kde c =, s = Krok : Pak G(,, Θ) = G(,, Θ)x = = Nulování všech prvků ve vektoru pod pozicí (, ) Mějme n-vektor x Jestliže požadujeme nulu na všech pozicích v x s výjimkou první, musíme sestrojit G(,, Θ), x () = G(,, Θ)x, x () = G(,, Θ)x (), x () = G(, 4, Θ)x (), x (n) = G(, n, Θ)x (n ) Pak pro matici P : = G(, n, Θ) G(,, Θ)G(,, Θ) 7
platí, že Px je násobek vektoru e Protože každá rotace je orotgonální, je ortogonální i matice P Příklad 7 Bud Nyní x = G(,, Θ) = x () = G(,, Θ)x =, G(,, Θ) = 6 6 6 6 Dále Tedy a 6 G(,, Θ)x () = P = G(,, Θ)G(,, Θ) = 6 Px = 6 6 6 6 6 6 Vytváření nul v maticích Myšlenku nulování určitého prvku ve vektoru lze triviálně převést na vytváření nul na specifických pozicích matice Pokud chceme vytvořit nulu na pozici (j, i), j > i, můžeme to udělat tak, že zkonstruujeme Givensovu matici G(i, j, Θ) působící pouze na i-tý a j-tý řádek tak, že G(i, j, Θ)A bude mít nulu na pozici (j, i) Příklad 8 V matici A = 4 4 5 6 8
vytvořme nulu na pozici (, ) s pomocí matice G(,, Θ) Krok : Najdeme c a s tak, aby platilo ( ) ( ) ( ) ( ) c s aii c s = = s c s c a ji ( ) Takže c =, s = Krok : Sestavení G(,, Θ) Je G(,, Θ) =, pak 5 5 G(,, Θ)A = 4 5 6 45 QR-rozklad pomocí Givensovy matice Opět chceme setrojit matice Q, Q,, Q s tentokrát však pomocí Givensových matic tak, aby A () = Q A měla nuly pod prvkem (, ) v prvním sloupci, matice A () = Q A () měla nuly pod (, ) ve druhém sloupci, atd Každou z matic Q i lze sestrojit jako součin Givensových matic ten je možné sestrojit takto: Q : = G(, m, Θ)G(, m, Θ) G(,, Θ)G(,, Θ) Q : = G(, m, Θ)G(, m, Θ) G(,, Θ) Bud s = min{m, n} Pak R = A (s) = Q s A (s ) = = Q s Q s Q Q A = Q T A Nyní máme A = QR, kde Q T = Q s Q Q To lze zformulovat do následující věty Věta 8 Givensův QR-rozklad Bud A matice m n a necht s = min{m, n} Existuje s ortogonálních matic Q,, Q s definovaných jako že pro platí Q i : = G(i, m, Θ)G(i, m, Θ) G(i, i +, Θ), Q = Q T Q T Q T s A = QR, kde R je matice m n s nulami pod hlavní diagonálou 9
Znázorněme si schématicky Givensovu metodu redukce matice A R na horní trojúhelníkový tvar (symbol značí prvky, které se transformací nezměnily, a ± značí prvky, které se změnily): ± ± ± G(,, Θ) G(,, Θ) A = ± ± ± ± ± G(,, Θ) G(,, Θ) ± ± = R ± ± ± Příklad 9 Necht Krok : Najděme c a s tak, aby A = ( ) ( ) c s a = s c a ( ) Nebot a = a a =, musí být c = a s =, tedy G(,, Θ) = Pak dostneme à = G(,, Θ)A = = Nyní najděme c a s tak, aby ( c s s c ) (ã ã ) = Nebot ã = a ã =, bude c = a s =, tedy ( ) G(,, Θ) = Celkem A () = G(,, Θ)à = =
Krok : Určeme c a s tak, aby ( c s s c ) ( a () a () ) = ( ) Nebot a () = a a () =, bude c = a s =, tedy G(,, Θ)A () = Což je tentýž výsledek jako v Příkladě 46 Srovnání algoritmů = = R Při výpočtu QR-rozkladu pomocí Householderovy matice je počet provedených operací roven číslu n ( n ) K explicitnímu vyjádření matice Q je navíc potřeba (m n mn + n ) operací, tedy celkem m n mn + n Zatímco pro QR-rozklad pomocí Givensovy matice je tento počet dvojnásobný, tj n ( n ) Ovšem pokud v metodě s Givensovou maticí nahradíme matici rotace ( s c s c ) a matice odrazu ( s c c s ) maticemi ( ) ( a a a a ) a s ortogonálními sloupci, pak se nám podaří snížit počet operací na úroveň metody využívající Householderovy matice jedná se o tzv matice rychlé Givensovy transformace Householderova matice má však tu nevýhodu, že v matici, kterou ji násobíme, nám změní všechny prvky (zatímco Givensova matice jen i-tý a k-tý řádek), takže nám například může z řídké matice vytvořit matici plnou V modifikované metodě s Gram-Schmidtovým algoritmem je počet operací mn
5 Aplikace QR-rozkladu 5 Řešení systémů rovnic pomocí QR-rozkladu Při řešení soustavy Ax = b pomocí Gaussovy eliminace (tj pomocí LU-rozkladu) je nutné provést mn n operací Tedy méně než při QR-rozkladu Ovšem na rozdíl od LU-rozkladu 6 existuje QR-rozklad vždy, je jednoznačný, numericky stabilnější a nezvyšuje podmíněnost soustavy Mějme tedy soustavu Ax = b s regulární n n maticí A a její rozklad, tj necht A = QR Pak můžeme soustavu přepsat tedy QR = b, Rx = Q T b = b, kde R je horní trojúhelníková matice, a její řešení lze nalézt pomocí zpětné substituce Příklad Necht Z Příkladu víme, že a H = Vypočítejme b Dostáváme a tedy A =, b = 6, 44,, 884 R =, 47, 6,, 577, 77, 77 =, 77, 5, 5, 77, 5, 5 H =, 69, 9856, 9856, 69 y = b = 6, 6, 64 y = H y =, 858,, 945 6, 64 b = y = H y =, 8577, 5774
Vektor b lze spočítat bez explicitního vyjádření matice Q proto je výhodnější použití QR- -rozkladu pomocí Householderových matic Vyřešme Rx = b což dává řešení, 44,, 884 6, 64, 47, 6 =, 8577,, 577, 5774 x = 5 QR-rozklad a Moore-Penroseova zobecněná inverse Definice 4 Matici A R n m nazveme pseudoinversní maticí k matici A R m n, jestliže pro ni platí A AA = A, AA A = A, (A A) T = A A, (AA ) T = AA Přičemž lze dokázat, že matice A je určena jednoznačně Věta 9 Má-li matice A lineárně nezávislé sloupce, je matice A T A regulární a platí A = (A T A) A T Důkaz: I Předpokládejme, že A T A není regulární Pak existuje nenulový vektor y tak, že A T Ay = = Potom však = y T A T Ay =< Ay, Ay >, tedy Ay =, což je spor s tím, že sloupce matice A jsou lineárně nezávislé II Stačí ověřit, že matice (A T A) A T splňuje podmínky definice pseudoinversní matice Pro matici s lineárně nezávislými sloupci lze použít QR-rozklad i na výpočet pseudoinversní matice Věta Necht matice A má lineárně nezávislé sloupce a necht A = QR je její QR-rozklad Potom pro pseudoinversní matici A platí A = R Q T Důkaz: Necht A = QR Podle předchozí věty platí, že A = (A T A) A T, takže A = (R T Q T QR) R T Q T = R (R T ) R T Q T = R Q T
5 QR-rozklad a vlastní čísla matice A QR-algoritmus Základní QR-algoritmus: Mějme matici A Sestrojme její QR-rozklad, tj A = A = Q R, určeme A : = R Q Nyní sestrojme QR-rozklad matice A, tj A = Q R, a spočtěme Takto pokračujme analogicky dále Jistě platí A = R Q A k+ = R k Q k = Q T k A k Q k = Q T k R k Q k Q k = = Q T k Q T k A k Q k Q k = = (Q Q Q k ) T A(Q Q Q k ) Tedy matice A, A, jsou kongruentní (tj A B A = P T BP) Navíc díky ortogonálnosti matic Q, Q, jsou matice A, A, také podobné (tj A B (též A B) A = P BP) Tyto matice mají díky podobnosti stejná vlastní čísla jako matice A Posloupnost těchto matic konverguje za určitých předpokladů k horní trojúhelníkové (resp horní blokově trojúhelníkové) matici, která má vlastní čísla na diagonále (resp diagonální bloky mají vlastní čísla se stejnou absolutní hodnotou) seřazena podle velikosti počínaje největším vlastním čísel Poddiagonální prvky (resp poddiagonální bloky ) konvergují k nule Ovšem důkazy konvergence existují jen pro některé speciální typy matic Například má-li matice A kladná vlastní čísla, pak Q k konverguje k jednotkové matici a posloupnost matic A k k horní trojúhelníkové matici, přičemž diagonální prvky této matice jsou vlastní čísla matice A Příklad Určeme vlastní čísla matice A = 5 9 Lze snadno ověřit, že vlastní čísla matice A jsou λ =, λ = a λ = Výsledky získané QR-algoritmem: 5 k a (k) a (k) a (k), -,6666667,6666667 5,7874 -,6,478949,948678 -,9477,9984996 5,596 -,646,468,999547 -,99957,9999984 5,4 -,98,9999999 4
Ke zrychlení konvergence lze využít tzv posunutí a počítat nikoli rozklad matice A k = Q k R k, nýbrž matice A k σ k E = Q k Rk Původní spektrum matice A se tímto posune o σ k (je výhodné volit jej jako nějakou aproximaci vlastního čísla; matice A k σ k E má vlastní čísla λ j σ k, jsou-li λ j vlastní čísla matice A k ) Zaznamenáváme-li velikosti posunutí σ k, snadno ze znalosti spektra matice A k najdeme spektrum matice A Protože ještě (v metodě bez posunutí) je A k = (Q Q Q k ) T A(Q Q Q k ), A = (Q Q Q k ) T A k (Q Q Q k ) Vlastní vektory y matice A dostaneme z vlastních vektorů matice A k podle vzorce y = Q Q Q k z Týž vzorec (s maticemi Q j ) zůstává v platnosti i pro metodu s posunutími, protože při posunutí se vlastní vektory nemění Volí-li se posunutí speciálně, dostáváme v některých důležitých případech i kubickou konvergenci (tzn zhruba řečeno, počet platných míst se v každém kroku přibližně ztrojnásobí) Poznámka Nejvýhodnější se jeví upravit nejdříve matici A do tzv Hessenbergova tvaru (tj a ij = pro j < i, i, j =,, n) pomocí Gaussovy eliminace a pak na tuto upravenou matici použít QR-rozklad Konvergence je potom rychlejší (obzvláště použijeme- -li metodu posunu, kde za σ k volíme tzv Rayleighův podíl et k H e k, kde H je právě matice A e T k e k v Hessenbergově tvaru) Navíc platí, že je-li matice A v Hessenbergově tvaru, pak každá z matic H k je také v Hessenbergově tvaru, a to i při metodě posunutí 5
Seznam použité literatury [] Miroslav Fiedler: Numerické metody lineární algebry SNTL Praha, 978 Str -, 4-49 [] Biswa Nath Datta: Numerical linear algebra and applications Brooks and Cole Publishing Company, Pacific Grove, California, 995 Str -8, 5-7, 6, 7 [] Anthony Rahlston: Základy numerické matematiky Academia Praha, 978 Str 55-564, 576-577 [4] Kubíček Milan, Dubcová Miroslava, Janovská Drahoslava: Numerické metody a algoritmy VŠCHT Praha, 5 Str 67-7 6