Ortogonální transformace a QR rozklady Petr Tichý 9. října 2013 1
Úvod Unitární (ortogonální) transformace, Gram-Schmidtova ortogonalizace Příklad Schurovy věty unitární transformace nezvětšují chyby ve vstupních datech. Tato kapitola: základními dva typy unitárních transformací Givensovy rotace, Householderovy reflexe. Využití: (numericky stabilní) transformace matice na matici s předem zvolenou strukturou. Výpočet QR rozkladu široké použití. Gram-Schmidtova ortogonalizace, výpočetní náročnost, numerická stabilita. 2
Outline 1 Ortogonální projekce a ortogonální projektory 2 Givensovy rotace 3 Householderovy reflexe 4 QR rozklad 5 QR rozklad a Gram-Schmidtův ortogonalizační proces 6 Cena výpočtu QR rozkladu 7 Numerická stabilita QR rozkladu 8 Cvičení 3
Ortogonální projekce Libovolný x R n lze rozložit na součet ortogonálních vektorů x = x q + y tak, že x q leží v předem daném směru q a y, x q = 0. e j x x q q y e i 4
Ortogonální projekce vektoru x do směru q Dán q, q = 1. Hledáme rozklad vektoru x R n, x = x q + y takový, že x q leží v předem daném směru q a y q. 5
Ortogonální projekce vektoru x do směru q Dán q, q = 1. Hledáme rozklad vektoru x R n, x = x q + y takový, že x q leží v předem daném směru q a y q. Ukážeme, že x q = x, q q. x q nazveme ortogonální projekcí x do prostoru span{q}. 5
Ortogonální projekce vektoru x do směru q Dán q, q = 1. Hledáme rozklad vektoru x R n, x = x q + y takový, že x q leží v předem daném směru q a y q. Ukážeme, že x q = x, q q. x q nazveme ortogonální projekcí x do prostoru span{q}. Ekvivalentní zápis, x q = P q x, kde P q qq T. 5
Ortogonální projekce vektoru x do směru q Dán q, q = 1. Hledáme rozklad vektoru x R n, x = x q + y takový, že x q leží v předem daném směru q a y q. Ukážeme, že x q = x, q q. x q nazveme ortogonální projekcí x do prostoru span{q}. Ekvivalentní zápis, x q = P q x, kde P q qq T. P q je čtvercová symetrická matice řádu n, P q : x P q x span{q}, x P q x span{q}. Říkáme: P q projektuje x do prostoru generovaného bází {q}. 5
Ortogonální projekce vektoru do podprostoru Uvažujme ortonormální soubor vektorů {q 1,..., q m } R n, Q span{q 1,..., q m }, Q [q 1,..., q m ] R n m. 6
Ortogonální projekce vektoru do podprostoru Uvažujme ortonormální soubor vektorů {q 1,..., q m } R n, Q span{q 1,..., q m }, Q [q 1,..., q m ] R n m. Dán x R n, hledáme rozklad x na složky x = x Q + y, x Q Q, y Q. 6
Ortogonální projekce vektoru do podprostoru Uvažujme ortonormální soubor vektorů {q 1,..., q m } R n, Q span{q 1,..., q m }, Q [q 1,..., q m ] R n m. Dán x R n, hledáme rozklad x na složky x = x Q + y, x Q Q, y Q. x Q nazveme ortogonální projekcí x do Q. Platí x Q = P Q x, kde P Q QQ T. 6
Ortogonální projekce vektoru do podprostoru Uvažujme ortonormální soubor vektorů {q 1,..., q m } R n, Q span{q 1,..., q m }, Q [q 1,..., q m ] R n m. Dán x R n, hledáme rozklad x na složky x = x Q + y, x Q Q, y Q. x Q nazveme ortogonální projekcí x do Q. Platí x Q = P Q x, kde P Q QQ T. P Q je čtvercová symetrická matice hodnosti m, projektuje libovolný x do prostoru Q. 6
Ortogonální projektory Definice: Ortogonální projektor je lineární operátor P, který je symetrický a idempotentní (P T = P a P 2 = P). 7
Ortogonální projektory Definice: Ortogonální projektor je lineární operátor P, který je symetrický a idempotentní (P T = P a P 2 = P). Matice P Q je ortogonálním projektorem. 7
Ortogonální projektory Definice: Ortogonální projektor je lineární operátor P, který je symetrický a idempotentní (P T = P a P 2 = P). Matice P Q je ortogonálním projektorem. Vektor y = x x Q lze psát ve tvaru x x Q = Π Q x, kde Π Q I QQ T = I P Q. 7
Ortogonální projektory Definice: Ortogonální projektor je lineární operátor P, který je symetrický a idempotentní (P T = P a P 2 = P). Matice P Q je ortogonálním projektorem. Vektor y = x x Q lze psát ve tvaru x x Q = Π Q x, kde Π Q I QQ T = I P Q. Π Q je ortogonálním projektorem do prostoru Q. Π Q se nazývá projektor komplementární k projektoru P Q. 7
Outline 1 Ortogonální projekce a ortogonální projektory 2 Givensovy rotace 3 Householderovy reflexe 4 QR rozklad 5 QR rozklad a Gram-Schmidtův ortogonalizační proces 6 Cena výpočtu QR rozkladu 7 Numerická stabilita QR rozkladu 8 Cvičení 8
Givensovy rotace vr n Úloha vr 2 Chceme sestrojit matici G(ϕ) R 2 2, která realizuje pootočení libovolného vektoru x o úhel ϕ proti směru hodinových ručiček. Zapíšeme-li vektor x v bázi {e 1, e 2 }, x = [ ξ1 ξ 2 ] = ξ 1 [ 1 0 ] + ξ 2 [ 0 1 je možné vektor G(ϕ)x vyjádřit ve tvaru ] = ξ 1 e 1 + ξ 2 e 2, G(ϕ)x = ξ 1 (G(ϕ) e 1 ) + ξ 2 (G(ϕ) e 2 ). 9
Givensovy rotace vr n Úloha vr 2 Chceme sestrojit matici G(ϕ) R 2 2, která realizuje pootočení libovolného vektoru x o úhel ϕ proti směru hodinových ručiček. Zapíšeme-li vektor x v bázi {e 1, e 2 }, x = [ ξ1 ξ 2 ] = ξ 1 [ 1 0 ] + ξ 2 [ 0 1 je možné vektor G(ϕ)x vyjádřit ve tvaru ] = ξ 1 e 1 + ξ 2 e 2, G(ϕ)x = ξ 1 (G(ϕ) e 1 ) + ξ 2 (G(ϕ) e 2 ). Otáčí-li G(ϕ) bázové vektory e 1 a e 2 o úhel ϕ, otáčí i libovolný vektor x o úhel ϕ. 9
Rotace jednotkových vektorů o úhel ϕ 0 10
Matice Givensovy rotace vr 2 G(ϕ) [ 1 0 ] = [ cos ϕ sin ϕ ], G(ϕ) [ 0 1 ] = [ sin ϕ cos ϕ ], tj. [ cos ϕ sin ϕ G(ϕ) = sin ϕ cos ϕ ] Matice G(ϕ) se nazývá matice Givensovy rotace. 11
Matice Givensovy rotace vr 2 G(ϕ) [ 1 0 ] = [ cos ϕ sin ϕ ], G(ϕ) [ 0 1 ] = [ sin ϕ cos ϕ ], tj. [ cos ϕ sin ϕ G(ϕ) = sin ϕ cos ϕ ] Matice G(ϕ) se nazývá matice Givensovy rotace. Použití: Jsou-li v R 2 dány vektory x a y, x = y 0. Potom y lze získat pootočením x, y = G(ϕ)x. 11
Matice Givensovy rotace vr n Elementární Givensova rotace Rotaci v rovině dané dvojicí jednotkových vektorů {e i, e j }, i < j, o úhel ϕ ve směru od e i k e j lze realizovat pomocí 1 G i,j (ϕ) =... 1 cos ϕ 1 sin ϕ... 1 sin ϕ cos ϕ 1... 1. 12
Matice Givensovy rotace vr n Vlastnosti je ortonormální, det(g i,j (ϕ)) = 1 (cvičení). G i,j (ϕ)x modifikuje pouze i-tý a j-tý prvek vektoru x = [ξ 1,..., ξ n ] T, G i,j (ϕ) x = ξ 1. ξ i cos ϕ ξ j sin ϕ. ξ i sin ϕ + ξ j cos ϕ. ξ n i-tý řádek j-tý řádek. 13
Nulování prvků vektoru pomocí Givensových rotací Nulování vr 2 Požadujeme, aby platilo [ cos ϕ sin ϕ y = G(ϕ) x = sin ϕ cos ϕ ] [ ξ1 ξ 2 ] = [ ± ξ1 2 + ξ2 2 0 ]. 14
Nulování prvků vektoru pomocí Givensových rotací Nulování vr 2 Požadujeme, aby platilo [ cos ϕ sin ϕ y = G(ϕ) x = sin ϕ cos ϕ ] [ ξ1 ξ 2 ] = [ ± ξ1 2 + ξ2 2 0 ]. Ze vztahu dostaneme ξ 1 sin ϕ + ξ 2 cos ϕ = 0 sin ϕ = ξ 2 ξ 2 1 + ξ2 2, Ověření cos ϕ = ± ξ 1 ξ 2 1 + ξ2 2. 14
Nulování prvků vektoru pomocí Givensových rotací Nulování vr n Úloha: vynulovat n 1 složek vektoru x R n, x ± x e 1. 15
Nulování prvků vektoru pomocí Givensových rotací Nulování vr n Úloha: vynulovat n 1 složek vektoru x R n, x ± x e 1. Opakovaně aplikujeme elementární Givensovy rotace: x =.. 0... 0. 0 ± x 0. 0 = y. Nulujeme prvky na pozicích n, n 1,..., 2 (volíme např. roviny rotace span{e 1, e n },..., span{e 1, e 2 }) 15
Nulování prvků vektoru pomocí Givensových rotací Formalizace Označíme-li jednotlivé elementární Givensovy rotace jako G 1,2,..., G 1,n 1, G 1,n, potom y = Γx, kde Γ G 1,2... G 1,n 1 G 1,n. Matici Γ budeme nazývat složenou Givensovou rotací. 16
Nulování prvků vektoru pomocí Givensových rotací Formalizace Označíme-li jednotlivé elementární Givensovy rotace jako G 1,2,..., G 1,n 1, G 1,n, potom y = Γx, kde Γ G 1,2... G 1,n 1 G 1,n. Matici Γ budeme nazývat složenou Givensovou rotací. Prvky nemusíme nutně nulovat v pořadí, které jsme naznačili. 16
Nulování prvků vektoru pomocí Givensových rotací Formalizace Označíme-li jednotlivé elementární Givensovy rotace jako G 1,2,..., G 1,n 1, G 1,n, potom y = Γx, kde Γ G 1,2... G 1,n 1 G 1,n. Matici Γ budeme nazývat složenou Givensovou rotací. Prvky nemusíme nutně nulovat v pořadí, které jsme naznačili. Násobení elementárních (tedy i složených) Givensových rotací není obecně komutativní (cvičení). 16
Outline 1 Ortogonální projekce a ortogonální projektory 2 Givensovy rotace 3 Householderovy reflexe 4 QR rozklad 5 QR rozklad a Gram-Schmidtův ortogonalizační proces 6 Cena výpočtu QR rozkladu 7 Numerická stabilita QR rozkladu 8 Cvičení 17
Nulování prvků vektoru pomocí Householderových reflexí Nulování vr n Druhá základní unitární transformace je Householderova reflexe (zrcadlení, odraz). 18
Nulování prvků vektoru pomocí Householderových reflexí Nulování vr n Druhá základní unitární transformace je Householderova reflexe (zrcadlení, odraz). Úloha: Nechť je v R n dána nadrovina dimenze n 1, kterou popíšeme jejím normálovým vektorem q, q = 1, a nechť je dán vektor x R n. H(q) {z R n : z q}, 18
Nulování prvků vektoru pomocí Householderových reflexí Nulování vr n Druhá základní unitární transformace je Householderova reflexe (zrcadlení, odraz). Úloha: Nechť je v R n dána nadrovina dimenze n 1, kterou popíšeme jejím normálovým vektorem q, q = 1, a nechť je dán vektor x R n. H(q) {z R n : z q}, Cíl: nalézt zrcadlový obraz vektoru x podle nadroviny H(q) (nadrovinu H(q) nazveme nadrovinou zrcadlení). 18
Zrcadlení x q x 0 q x x q y = x 2x q x q = (qq T ) x, y = (x x q ) x q = x 2x q = (I 2qq T ) x. 19
Matice Householderovy reflexe Nechť q R n a q = 1. Pak matici H(q) = I 2qq T R n n nazýváme maticí Householderovy reflexe vzhledem k nadrovině H(q) definované normálovým vektorem q. 20
Matice Householderovy reflexe Nechť q R n a q = 1. Pak matici H(q) = I 2qq T R n n nazýváme maticí Householderovy reflexe vzhledem k nadrovině H(q) definované normálovým vektorem q. Vlastnosti: H(q) je ortonormální a symetrická, platí H 2 (q) = I, det(h(q)) = 1 (cvičení). 20
Zrcadlení x na y pomocí Householderovy reflexe Úloha: Dány x a y stejné délky, nalézt H tak, aby y = Hx. 21
Zrcadlení x na y pomocí Householderovy reflexe Úloha: Dány x a y stejné délky, nalézt H tak, aby y = Hx. Zrcadlení x na ±y vr n Nechť jsou dány dva různé vektory x R n a y R n, x = y, a nechť q 1 x y x y, q 2 x + y x + y. Potom H(q 1 )x = y, H(q 2 )x = y. 21
Zrcadlení x na y pomocí Householderovy reflexe Úloha: Dány x a y stejné délky, nalézt H tak, aby y = Hx. Zrcadlení x na ±y vr n Nechť jsou dány dva různé vektory x R n a y R n, x = y, a nechť q 1 x y x y, q 2 x + y x + y. Potom H(q 1 )x = y, H(q 2 )x = y. Důkaz: Vektor x y je kolmý k nadrovině zrcadlení vektoru x na vektor y. Podobně, vektor x + y je kolmý k nadrovině zrcadlení vektoru x na vektor y. 21
Nulování prvků vektoru pomocí Householderových reflexí Dán x R n a Hledáme H. y = ± x e 1. 22
Nulování prvků vektoru pomocí Householderových reflexí Dán x R n a Hledáme H. y = ± x e 1. Dle předchozího, pro q 1 = x x e 1 x x e 1, q 2 = x + x e 1 x + x e 1 je H(q 1 )x = x e 1, H(q 2 )x = x e 1. 22
Nulování prvků vektoru pomocí Householderových reflexí Dán x R n a Hledáme H. y = ± x e 1. Dle předchozího, pro q 1 = x x e 1 x x e 1, q 2 = x + x e 1 x + x e 1 je H(q 1 )x = x e 1, H(q 2 )x = x e 1. Je lepší zvolit q 1 nebo q 2? 22
Nulování prvků vektoru pomocí Householderových reflexí Volba vektoru q x ± x e 1 = ξ 1 ± x ξ 2. ξ n Pokud ξ 1 0, ξ 1 x, potom při odečítání ξ 1 x může dojít k vyrušení platných číslic. Navíc, ξ 1 x e 1 0, dělíme malou normou relativní zvětšení chyby vypočteného vektoru ve srovnání s chybou obsaženou v x. 23
Nulování prvků vektoru pomocí Householderových reflexí Volba vektoru q x ± x e 1 = ξ 1 ± x ξ 2. ξ n Pokud ξ 1 0, ξ 1 x, potom při odečítání ξ 1 x může dojít k vyrušení platných číslic. Navíc, ξ 1 x e 1 0, dělíme malou normou relativní zvětšení chyby vypočteného vektoru ve srovnání s chybou obsaženou v x. Kvůli numerické stabilitě, pokud ξ 1 0 pak q x + x e 1 x + x e 1. 23
Nulování prvků vektoru pomocí Householderových reflexí Volba vektoru q x ± x e 1 = ξ 1 ± x ξ 2. ξ n Pokud ξ 1 0, ξ 1 x, potom při odečítání ξ 1 x může dojít k vyrušení platných číslic. Navíc, ξ 1 x e 1 0, dělíme malou normou relativní zvětšení chyby vypočteného vektoru ve srovnání s chybou obsaženou v x. Kvůli numerické stabilitě, pokud ξ 1 0 pak q x + x e 1 x + x e 1. Analogicky pro ξ 1 < 0 volíme q = x x e 1 x x e 1. 23
Outline 1 Ortogonální projekce a ortogonální projektory 2 Givensovy rotace 3 Householderovy reflexe 4 QR rozklad 5 QR rozklad a Gram-Schmidtův ortogonalizační proces 6 Cena výpočtu QR rozkladu 7 Numerická stabilita QR rozkladu 8 Cvičení 24
QR rozklad Nechť A C n m je obecně obdélníková matice. Rozklad A = QR, kde Q je matice s ortonormálními sloupci (Q Q = I) a R má všechny prvky pod hlavní diagonálou nulové, nazveme QR rozkladem matice A. Pro n > m může QR rozklad vypadat schematicky jako A Q R = kde Q C n n a R C n m. 0, 25
QR rozklad Vynecháním posledních n m nulových řádků matice R a příslušných sloupců Q dostaneme A Q R = 0, kde Q C n m a R C m m. Tomuto QR rozkladu, jehož uložení vyžaduje méně paměťového místa než v prvním případě, se říká ekonomický QR rozklad. 26
QR rozklad Vynecháním posledních n m nulových řádků matice R a příslušných sloupců Q dostaneme A Q R = 0, kde Q C n m a R C m m. Tomuto QR rozkladu, jehož uložení vyžaduje méně paměťového místa než v prvním případě, se říká ekonomický QR rozklad. Pro n m má QR rozklad, schematicky, tvar A Q R = kde Q C n n a R C n m. 0, 26
Obecně o QR rozkladu Lze použít k numerickému řešení mnoha problémů, například problémů nejmenších čtverců Ax b nebo Ax = b. Ax = b, kde A C n n je regulární matice, Ax = b QRx = b, QRx = QQ b, Rx = Q b. Díky ortogonalitě bývá výpočet numericky stabilnější než při použití jiných druhů rozkladů (LU rozklad). Problém pro velké řídké matice požadavek ortogonality ztráta řídkosti. Algoritmů pro výpočet QR rozkladu je několik. 27
QR rozklad užitím Givensových rotací I A C n m, A = [a 1,..., a m ]. Cíl: vynulování všech prvků pod hlavní diagonálou za použití Givensových rotací, získáme Givensův QR rozklad. 28
QR rozklad užitím Givensových rotací I A C n m, A = [a 1,..., a m ]. Cíl: vynulování všech prvků pod hlavní diagonálou za použití Givensových rotací, získáme Givensův QR rozklad. Symbolem Γ 1 označíme složenou Givensovu rotaci, která realizuje transformaci a 1,1 r 1,1 a 2,1 0 a 1 =. a n,1. 0 = Γ 1a 1 r 1. 28
QR rozklad užitím Givensových rotací II Aplikujeme-li Γ 1 na A, dostaneme (r 1,1 = 0 a 1 = 0) 0 A = 0 = Γ 1 A A (1), 0 0 29
QR rozklad užitím Givensových rotací II Aplikujeme-li Γ 1 na A, dostaneme (r 1,1 = 0 a 1 = 0) 0 A = 0 = Γ 1 A A (1), 0 0 Nyní nulujeme poddiagonální prvky druhého sloupce matice A (1) = [r 1, a (1) 2,..., a(1) m ], aplikujeme n 2 rotací, a (1) 1,2 a (1) a (1) 1,2 2,2 r 2,2 a (1) a (1) 0 3,2 2 = = Γ 2 a (1) 2 r 2.. a (1) n,2.. 0 29
QR rozklad užitím Givensových rotací III Aplikací složené rotace Γ 2 na matici A (1) = Γ 1 A dostaneme A (1) = 0 0 0 0 0 0 0 0 0 0 0 = Γ 2 Γ 1 A A (2). 30
QR rozklad užitím Givensových rotací III Aplikací složené rotace Γ 2 na matici A (1) = Γ 1 A dostaneme A (1) = 0 0 0 0 0 0 0 0 0 0 0 = Γ 2 Γ 1 A A (2). V k-tém kroku, k < min{m, n}, konstruujeme složenou rotaci tak, aby nulovala n k poddiagonálních prvků sloupce a (k 1) k. Příslušná složená rotace Γ k je blokově diagonální se dvěma bloky, kde první blok je jednotková matice řádu k 1. 30
QR rozklad užitím Givensových rotací III Aplikací složené rotace Γ 2 na matici A (1) = Γ 1 A dostaneme A (1) = 0 0 0 0 0 0 0 0 0 0 0 = Γ 2 Γ 1 A A (2). V k-tém kroku, k < min{m, n}, konstruujeme složenou rotaci tak, aby nulovala n k poddiagonálních prvků sloupce a (k 1) k. Příslušná složená rotace Γ k je blokově diagonální se dvěma bloky, kde první blok je jednotková matice řádu k 1. r k,k = 0 je-li k-tý sloupec matice A lineární kombinací předchozích k 1 sloupců matice A (cvičení). 30
QR rozklad užitím Givensových rotací IV Poslední transformační maticí Γ m 1 pro n > m resp. Γ n 1 pro n m Případ n > m, platí 0 A (m 2) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A (m 1) = Γ m 1... Γ 1 A. = A (m 1) R. 31
QR rozklad užitím Givensových rotací IV Poslední transformační maticí Γ m 1 pro n > m resp. Γ n 1 pro n m Případ n > m, platí 0 A (m 2) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A (m 1) = Γ m 1... Γ 1 A. = A (m 1) R. Γ i jsou unitární součin je také unitární matice. Označíme-li Q Γ 1 Γ 2... Γ m 1, platí A = QR. 31
Existence a jednoznačnost QR rozkladu Existence Konstrukcí jsme získali rozklad typu A Q = R 0, resp. A = Q R 0, kde Q C n n a R C n m. Existence QR rozkladu (i ekonomického) plyne z konstrunkce. 32
Existence a jednoznačnost QR rozkladu Jednoznačnost Není obecně jednoznačný: diagonální D, D D = I, platí A = QR = (QD )(DR) = Q R. Povolíme-li na diagonále R jen kladné prvky jednoznačnost. 33
Existence a jednoznačnost QR rozkladu Jednoznačnost Není obecně jednoznačný: diagonální D, D D = I, platí A = QR = (QD )(DR) = Q R. Povolíme-li na diagonále R jen kladné prvky jednoznačnost. Jednoznačnost QR rozkladu Nechť A C n m, n m, je matice s lineárně nezávislými sloupci. Pak existuje jediná dvojice matic Q C n m a R C m m taková, že Q má ortonormální sloupce a R je horní trojúhelníková matice s kladnými diagonálními prvky a přitom A = QR. 33
QR rozklad pomocí Householderových reflexí Householderův QR rozklad konstrukčně stejný jako Givensův, pro n > m transformujeme A C n m A H 1 A... H m 1... H 2 H 1 A R, kde H k je blokově diagonální matice, první blok je jednotková matice řádu k 1, druhý blok je matice Householderovy reflexe nulující poddiagonální prvky aktuálního k-tého sloupce. Označme Q H 1 H 2... H m 1 A = QR. Analogicky QR rozklad matice A C n m pro n m. 34
Outline 1 Ortogonální projekce a ortogonální projektory 2 Givensovy rotace 3 Householderovy reflexe 4 QR rozklad 5 QR rozklad a Gram-Schmidtův ortogonalizační proces 6 Cena výpočtu QR rozkladu 7 Numerická stabilita QR rozkladu 8 Cvičení 35
QR rozklad a Gram-Schmidtův ortogonalizační proces Pro jednoduchost případ n > m a podprostor C n generovaný lineárně nezávislými vektory {a 1,..., a m }. Gram-Schmidtův ortogonalizační proces spočte ortonormální bázi {q 1,..., q m } takovou, že span{a 1,..., a k } = span{q 1,..., q k }, k = 1,..., m. 36
QR rozklad a Gram-Schmidtův ortogonalizační proces Pro jednoduchost případ n > m a podprostor C n generovaný lineárně nezávislými vektory {a 1,..., a m }. Gram-Schmidtův ortogonalizační proces spočte ortonormální bázi {q 1,..., q m } takovou, že span{a 1,..., a k } = span{q 1,..., q k }, k = 1,..., m. k = 1: q 1? span{a 1 } = span{q 1 } a q 1 = 1 q 1 = a 1 a 1. Označme r 1,1 = a 1. 36
QR rozklad a Gram-Schmidtův ortogonalizační proces Pro jednoduchost případ n > m a podprostor C n generovaný lineárně nezávislými vektory {a 1,..., a m }. Gram-Schmidtův ortogonalizační proces spočte ortonormální bázi {q 1,..., q m } takovou, že span{a 1,..., a k } = span{q 1,..., q k }, k = 1,..., m. k = 1: q 1? span{a 1 } = span{q 1 } a q 1 = 1 q 1 = a 1 a 1. Označme r 1,1 = a 1. k = 2: q 2? span{a 1, a 2 } = span{q 1, q 2 }, q 2 q 1, q 2 = 1. Odečteme projekce a 2 ve směru q 1 a normalizujeme, z = (I q 1 q 1 ) a 2 = a 2 (q 1 a 2)q 1, r 2,2 = z, q 2 = z/r 2,2. 36
Gram-Schmidtův ortogonalizační proces k-tý krok obecné k: odečteme od a k projekci na prostor generovaný sloupci [q 1,..., q k 1 ] = Q k 1 a normalizujeme k 1 z = (I Q k 1 Q k 1) a k = a k (qi a k )q i r k,k = z q k = z/r k,k. i=1 37
Gram-Schmidtův ortogonalizační proces k-tý krok obecné k: odečteme od a k projekci na prostor generovaný sloupci [q 1,..., q k 1 ] = Q k 1 a normalizujeme k 1 z = (I Q k 1 Q k 1) a k = a k (qi a k )q i r k,k = z q k = z/r k,k. i=1 Proveditelnost: Jelikož jsou vektory a 1,..., a m lineárně nezávislé, je vektor z vždy nenulový, a tudíž r k,k 0, k = 1,..., m. 37
Gram-Schmidtův ortogonalizační proces k-tý krok obecné k: odečteme od a k projekci na prostor generovaný sloupci [q 1,..., q k 1 ] = Q k 1 a normalizujeme k 1 z = (I Q k 1 Q k 1) a k = a k (qi a k )q i r k,k = z q k = z/r k,k. i=1 Proveditelnost: Jelikož jsou vektory a 1,..., a m lineárně nezávislé, je vektor z vždy nenulový, a tudíž r k,k 0, k = 1,..., m. Dosadíme-li za z vektor r k,k q k a označíme-li r i,k = q i a k, k 1 a k = r i,k q i + r k,k q k, k = 1,..., m. i=1 37
Gram-Schmidtův ortogonalizační proces QR rozklad Po rozepsání a 1 = r 1,1 q 1 a 2 = r 1,2 q 1 + r 2,2 q 2. a m = r 1,m q 1 + r 2,m q 2 + + r m,m q m. 38
Gram-Schmidtův ortogonalizační proces QR rozklad Po rozepsání a 1 = r 1,1 q 1 a 2 = r 1,2 q 1 + r 2,2 q 2. a m = r 1,m q 1 + r 2,m q 2 + + r m,m q m. S označením A = [a 1,..., a m ], Q = [q 1,..., q m ] a r 1,1 r 1,2 r 1,m 0 r 2,2 r 2,m R........ Cm m 0 0 r m,m dostáváme A = QR 38
Gram-Schmidtův ortogonalizační proces QR rozklad komentáře Narozdíl od QR rozkladu spočteného pomocí rotací či reflexí rozměr Q je n m, R má rozměr m m, pro n > m máme přímo ekonomický QR rozklad. 39
Gram-Schmidtův ortogonalizační proces QR rozklad komentáře Narozdíl od QR rozkladu spočteného pomocí rotací či reflexí rozměr Q je n m, R má rozměr m m, pro n > m máme přímo ekonomický QR rozklad. Gram-Schmidtův ortogonalizační proces vzhledem k obecnému skalárnímu součinu, : k 1 z = a k a k, q i q i, r k,k = q k = z/r k,k. i=1 z, z, {q 1,..., q k } je ortonormální báze prostoru span{a 1,..., a k }. 39
Implementace Gram-Schmidtova procesu Klasický Gram-Schmidtův algoritmus Gram-Schmidtův proces lze zapsat několika matematicky ekvivalentními způsoby. Dvě základní varianty klasický a modifikovaný algoritmus. 40
Implementace Gram-Schmidtova procesu Klasický Gram-Schmidtův algoritmus Gram-Schmidtův proces lze zapsat několika matematicky ekvivalentními způsoby. Dvě základní varianty klasický a modifikovaný algoritmus. Výpočet vektoru z v k-tém kroku lze zapsat ve tvaru kde ortogonální projektor k 1 z = (I q i qi ) a k C Q a k, i=1 k 1 C Q = I q i qi = I Q k 1Q k 1 i=1 je komplementárním projektorem k projektoru Q k 1 Q k 1. 40
Implementace Gram-Schmidtova procesu Klasický Gram-Schmidtův algoritmus Gram-Schmidtův proces lze zapsat několika matematicky ekvivalentními způsoby. Dvě základní varianty klasický a modifikovaný algoritmus. Výpočet vektoru z v k-tém kroku lze zapsat ve tvaru kde ortogonální projektor k 1 z = (I q i qi ) a k C Q a k, i=1 k 1 C Q = I q i qi = I Q k 1Q k 1 i=1 je komplementárním projektorem k projektoru Q k 1 Q k 1. Tento zápis umožňuje paralelní implementaci. 40
Klasický Gram-Schmidtův algoritmus (CGS) Operátor C Q input A = [a 1,..., a m ] r 11 := a 1 q 1 := a 1 /r 11 Q 1 := [q 1 ] for k = 2 : m do z := a k [r 1,k,..., r k 1,k ] T := Q k 1 z z := z Q k 1 [r 1,k,..., r k 1,k ] T r kk := z q k := z/r kk Q k := [Q k 1, q k ] end for 41
Implementace Gram-Schmidtova procesu Modifikovaný Gram-Schmidtův algoritmus Z ortonormality vektorů q 1,..., q k 1 plyne (cvičení) k 1 I q i qi } i=1 {{ } C Q = (I q k 1 qk 1)... (I q 2 q2)(i q 1 q1). }{{} M Q Vektor z = C Q a k lze tedy ekvivalentně spočít pomocí z = M Q a k = (I q k 1 q k 1 )... (I q 2q 2 )(I q 1q 1 ) a k. Implementace využívající M Q je sekvenční z 1 = a k z 2 = z 1 (q1 z 1) q 1,. z k = z k 1 (q k 1z k 1 ) q k 1. 42
Modifikovaný Gram-Schmidtův algoritmus (MGS) Operátor M Q input A = [a 1,..., a m ] r 11 := a 1 q 1 := a 1 /r 11 Q 1 := [q 1 ] for k = 2 : m do z := a k for i = 1 : k 1 do r ik := q i z z := z r ik q i end for r kk := z q k := z/r kk Q k := [Q k 1, q k ] end for 43
Iterační zpřesnění Vztahy používající C Q a M Q jsou matematicky ekvivalentní. Vedou však na algoritmy s různými numerickými vlastnostmi. 44
Iterační zpřesnění Vztahy používající C Q a M Q jsou matematicky ekvivalentní. Vedou však na algoritmy s různými numerickými vlastnostmi. CGS počítá méně přesněji, u MGS jsou chyby vznikající při výpočtu z částečně eliminovány, výpočet r i,k := q i z následuje až po výpočtu aktualizace. 44
Iterační zpřesnění Vztahy používající C Q a M Q jsou matematicky ekvivalentní. Vedou však na algoritmy s různými numerickými vlastnostmi. CGS počítá méně přesněji, u MGS jsou chyby vznikající při výpočtu z částečně eliminovány, výpočet r i,k := q i z následuje až po výpočtu aktualizace. Ortogonalizační krok můžeme opakovat CGS a MGS s iteračním zpřesněním ICGS, IMGS. 44
Iterační zpřesnění Vztahy používající C Q a M Q jsou matematicky ekvivalentní. Vedou však na algoritmy s různými numerickými vlastnostmi. CGS počítá méně přesněji, u MGS jsou chyby vznikající při výpočtu z částečně eliminovány, výpočet r i,k := q i z následuje až po výpočtu aktualizace. Ortogonalizační krok můžeme opakovat CGS a MGS s iteračním zpřesněním ICGS, IMGS. ICGS si zachovává hlavní výhodu CGS velmi dobře se paralelizuje a navíc redukuje ztrátu ortogonality díky opakované ortogonalizaci. 44
Iterační zpřesnění Vztahy používající C Q a M Q jsou matematicky ekvivalentní. Vedou však na algoritmy s různými numerickými vlastnostmi. CGS počítá méně přesněji, u MGS jsou chyby vznikající při výpočtu z částečně eliminovány, výpočet r i,k := q i z následuje až po výpočtu aktualizace. Ortogonalizační krok můžeme opakovat CGS a MGS s iteračním zpřesněním ICGS, IMGS. ICGS si zachovává hlavní výhodu CGS velmi dobře se paralelizuje a navíc redukuje ztrátu ortogonality díky opakované ortogonalizaci. Pro dosažení maximální přesnosti (ztráty ortogonality na úrovni úměrné strojové přesnosti) stačí jediné opakování ortogonalizace. 44
Iterační zpřesnění Vztahy používající C Q a M Q jsou matematicky ekvivalentní. Vedou však na algoritmy s různými numerickými vlastnostmi. CGS počítá méně přesněji, u MGS jsou chyby vznikající při výpočtu z částečně eliminovány, výpočet r i,k := q i z následuje až po výpočtu aktualizace. Ortogonalizační krok můžeme opakovat CGS a MGS s iteračním zpřesněním ICGS, IMGS. ICGS si zachovává hlavní výhodu CGS velmi dobře se paralelizuje a navíc redukuje ztrátu ortogonality díky opakované ortogonalizaci. Pro dosažení maximální přesnosti (ztráty ortogonality na úrovni úměrné strojové přesnosti) stačí jediné opakování ortogonalizace. Jak vypočítat zpřesněné koeficienty r i,k? 44
CGS algoritmus s opakovanou ortogonalizací První ortogonalizace: projektujeme a k z = a k [(q k 1a k ) q k 1 +... + (q 1a k ) q 1 ]. 45
CGS algoritmus s opakovanou ortogonalizací První ortogonalizace: projektujeme a k z = a k [(qk 1a k ) q k 1 +... + (q1a k ) q 1 ]. Opakovaná ortogonalizace: projektujeme z w = z [(qk 1 z) q k 1 +... + (q1 z) q 1]. 45
CGS algoritmus s opakovanou ortogonalizací První ortogonalizace: projektujeme a k z = a k [(qk 1a k ) q k 1 +... + (q1a k ) q 1 ]. Opakovaná ortogonalizace: projektujeme z w = z [(qk 1 z) q k 1 +... + (q1 z) q 1]. Dosadíme-li za z do druhého vztahu, w = a k [(qk 1a k + qk 1z) q k 1 +... + (q1a k + q1z) q 1 ]. Zpřesněné koeficienty (prvky horní trojúhelníkové R) vzniknou součtem projekcí a k a z do jednotlivých směrů. 45
Iterovaný klasický Gram-Schmidtův algoritmus input A = [a 1,..., a m ] r 11 := a 1 q 1 := a 1 /r 11 Q 1 := [q 1 ] for k = 2 : m do z := a k r := 0 for l = 1 : 2 do r := Q k 1 z z := z Q k 1 r r := r + r end for [r 1,k,..., r k 1,k ] T := r r kk := z q k := z/r kk Q k := [Q k 1, q k ] end for 46
Outline 1 Ortogonální projekce a ortogonální projektory 2 Givensovy rotace 3 Householderovy reflexe 4 QR rozklad 5 QR rozklad a Gram-Schmidtův ortogonalizační proces 6 Cena výpočtu QR rozkladu 7 Numerická stabilita QR rozkladu 8 Cvičení 47
Cena výpočtu Gram-Schmidtova procesu a QR rozkladu Čtvercová matice Měříme počtem aritmetických operací. Není třeba rozlišovat CGS a MGS (počet operací je stejný). ICGS vyžaduje přibližně dvakrát více operací než CGS a MGS. Cena k-tého kroku (cvičení): k 1 z = a k i=1 (q i a k )q i, q k = z z = z z z, 2n(k 1) + 2n násobení, (2n 1)(k 1) + n 1 sčítání nebo odčítání, jednu odmocninu a jedno dělení. Sečtením všech operací pro kroky k = 1,..., n zjistíme, že CGS (MGS) stojí približně 2n 3 aritmetických operací. 48
Cena výpočtu QR rozkladu pomocí Gram-Schmidtova procesu Operace k-tý krok celkem 2n(k 1) + 2n n 3 + n 2 +, (2n 1)(k 1) + n 1 n 3 1 2 n2 1 2 n : 1 n 1 n 49
Výpočetní ceny různých implementací QR rozkladu Obdélníková matice Algoritmus celkový počet operací n > m n = m Householderův QR rozklad 2nm 2 2m 3 /3 4/3n 3 Givensův QR rozklad 3nm 2 m 3 2n 3 CGS, MGS 2nm 2 2n 3 Počet operací u Householderových reflexí je počet operací potřebných ke spočtení rozkladu v součinovém tvaru A = H 1H 2... H m 1R, kde H i jsou jednoduché Householderovy reflexe. 50
Výpočetní ceny různých implementací QR rozkladu Obdélníková matice Algoritmus celkový počet operací n > m n = m Householderův QR rozklad 2nm 2 2m 3 /3 4/3n 3 Givensův QR rozklad 3nm 2 m 3 2n 3 CGS, MGS 2nm 2 2n 3 Počet operací u Householderových reflexí je počet operací potřebných ke spočtení rozkladu v součinovém tvaru A = H 1H 2... H m 1R, kde H i jsou jednoduché Householderovy reflexe. Explicitní znalost matice Q vyžaduje dalších 2nm 2 2m 3 /3 operací. 50
Výpočetní ceny různých implementací QR rozkladu Obdélníková matice Algoritmus celkový počet operací n > m n = m Householderův QR rozklad 2nm 2 2m 3 /3 4/3n 3 Givensův QR rozklad 3nm 2 m 3 2n 3 CGS, MGS 2nm 2 2n 3 Počet operací u Householderových reflexí je počet operací potřebných ke spočtení rozkladu v součinovém tvaru A = H 1H 2... H m 1R, kde H i jsou jednoduché Householderovy reflexe. Explicitní znalost matice Q vyžaduje dalších 2nm 2 2m 3 /3 operací. Totéž u Givensových rotací. 50
Outline 1 Ortogonální projekce a ortogonální projektory 2 Givensovy rotace 3 Householderovy reflexe 4 QR rozklad 5 QR rozklad a Gram-Schmidtův ortogonalizační proces 6 Cena výpočtu QR rozkladu 7 Numerická stabilita QR rozkladu 8 Cvičení 51
Numerická stabilita QR rozkladu Říkáme, že algoritmus je zpětně stabilní, pokud spočtené řešení dané úlohy je přesným řešením modifikované úlohy se vstupními daty, která jsou blízká původním datům dané úlohy. Nechť Q a R jsou spočtené faktory QR rozkladu matice A C n m v aritmetice s konečnou přesností. Nechť fl(u A) je spočtený výsledek aplikace elementární Givensovy rotace nebo Householderovy reflexe U na matici A v aritmetice s konečnou přesností. 52
Numerická stabilita QR rozkladu Říkáme, že algoritmus je zpětně stabilní, pokud spočtené řešení dané úlohy je přesným řešením modifikované úlohy se vstupními daty, která jsou blízká původním datům dané úlohy. Nechť Q a R jsou spočtené faktory QR rozkladu matice A C n m v aritmetice s konečnou přesností. Nechť fl(u A) je spočtený výsledek aplikace elementární Givensovy rotace nebo Householderovy reflexe U na matici A v aritmetice s konečnou přesností. Otázky: Jaká je přesnost vypočtené matice fl(u A)? Co lze říci o ortogonalitě spočtené matice Q? Jak přesně spočtený je faktor R? Do jaké míry odpovídá součin Q R matici A? 52
Aplikace Givensových rotací a Householderových reflexí v konečné aritmetice Wilkinson, Turing: Je-li U C n n matice elementární Givensovy rotace nebo Householderovy reflexe, potom fl(ua) = U(A + E), γ malá konstanta. kde E A γn2 u + O(u 2 ), Faktor n 2 je velmi pesimistický a není důležitý z hlediska pochopení fungování algoritmu v konečné aritmetice počítače. Výše zmíněný odhad normy E budeme zjednodušeně zapisovat E u A. 53
Numerická stabilita QR rozkladu Ortogonalita spočtené matice ˆQ Ztrátu ortogonality matic vypočtených v aritmetice s konečnou přesností budeme měřit pomocí 2-normy matice E Q Q Q I. Velikosti normy E Q pro jednotlivé algoritmy: Algoritmus Householderův QR rozklad Givensův QR rozklad CGS MGS ICGS E Q u u κ 2 (A) u κ(a) u u Lze matematicky dokázat. 54
Numerická stabilita QR rozkladu Stabilita výpočtu faktoru ˆR Pomocí analýzy zaokrouhlovacích chyb lze ukázat, že Householderův QR, Givensův QR a MGS jsou zpětně stabilní algoritmy v následujícím smyslu: Nechť R je spočtený trojúhelníkový faktor. Potom existuje unitární matice Q a perturbace E tak, že platí Q (A + E) = R, E F u A F. Překvapivé hlavně pro MGS, kde není zaručená ztráta ortogonality na úrovni strojové přesnosti. 55
Numerická stabilita QR rozkladu Norma rezidua A ˆQ ˆR Matice Q a R vypočtené všemi uvažovanými variantami QR rozkladů splňují A Q R u A. Platí i pro CGS, kde je ztráta ortogonality největší. 56
Outline 1 Ortogonální projekce a ortogonální projektory 2 Givensovy rotace 3 Householderovy reflexe 4 QR rozklad 5 QR rozklad a Gram-Schmidtův ortogonalizační proces 6 Cena výpočtu QR rozkladu 7 Numerická stabilita QR rozkladu 8 Cvičení 57
Cvičení 3.3 Určete vlastní čísla a determinant elementární Givensovy rotace. 3.5 Určete vlastní čísla a determinant Householderovy reflexe v reálném oboru. 3.8 Ukažte, že Householderovy reflexe odpovídající vzájemně ortogonálním normálovým vektorům jsou komutativní. 58
Cvičení 3.11 Mějme dánu matici Givensovy rotace v R 2 [ cos(ϕ) sin(ϕ) G(ϕ) = sin(ϕ) cos(ϕ) ]. Definujme dva normalizované vektory q 1 = 0.5 [ ] 1 cos(ϕ), q 1 + cos(ϕ) 2 = [ 0 1 q 1 = 1 2 (1 cos(ϕ) + 1 + cos(ϕ)) = 1 = q 2. ], Ukažte, že [ cos(ϕ) sin(ϕ) H(q 2 )H(q 1 ) = sin(ϕ) cos(ϕ) ] = G(ϕ), tedy každou Givensovu rotaci lze popsaným způsobem složit ze dvou Householderových reflexí. 59
Cvičení 3.13 Dokažte, že matici Householderovy reflexe nelze složit z Givensových rotací. Dále dokažte, že pomocí Givensových rotací nelze vyjádřit žádná matice, která je součinem lichého počtu Householderových reflexí. 3.15 Ukažte, že jsou-li vektory q 1,..., q k navzájem ortogonální, pak platí I q 1 q 1 q 2q 2... q kq k = (I q 1q 1 )(I q 2q 2 )... (I q kq k ), tedy součin na pravé straně je komutativní. 3.16 Ukažte, že cena k-tého kroku algoritmu CGS je dána cenou 2n(k 1) + 2n součinů, (2n 1)(k 1) + n 1 součtů nebo rozdílů, jednoho podílu a jednoho výpočtu odmocniny. Využijte sčítací vzorce n k = 1 n 2 n(n + 1) a k 2 = 1 n (2n + 1) (n + 1). 6 k=1 k=1 60