3. Ortogonální transformace a QR rozklady

Podobné dokumenty
Ortogonální transformace a QR rozklady

Ortogonální transformace a QR rozklady

Numerická stabilita algoritmů

1 Projekce a projektory

Úlohy nejmenších čtverců

Arnoldiho a Lanczosova metoda

2. Schurova věta. Petr Tichý. 3. října 2012

Singulární rozklad. Petr Tichý. 31. října 2013

Interpolace, ortogonální polynomy, Gaussova kvadratura

5. Singulární rozklad

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Podobnostní transformace

Lineární algebra : Skalární součin a ortogonalita

EUKLIDOVSKÉ PROSTORY

Co je obsahem numerických metod?

0.1 Úvod do lineární algebry

0.1 Úvod do lineární algebry

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Učební texty k státní bakalářské zkoušce Matematika Skalární součin. študenti MFF 15. augusta 2008

Operace s maticemi. 19. února 2018

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

4. LU rozklad a jeho numerická analýza

Připomenutí co je to soustava lineárních rovnic

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Vlastní čísla a vlastní vektory

8 Matice a determinanty

Lineární algebra : Skalární součin a ortogonalita

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

Úlohy k přednášce NMAG 101 a 120: Lineární algebra a geometrie 1 a 2,

a vlastních vektorů Příklad: Stanovte taková čísla λ, pro která má homogenní soustava Av = λv nenulové (A λ i I) v = 0.

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Skalární součin dovoluje zavedení metriky v afinním bodovém prostoru, tj. umožňuje nám určovat vzdálenosti, odchylky, obsahy a objemy.

Operace s maticemi

Zdrojem většiny příkladů je sbírka úloh 1. cvičení ( ) 2. cvičení ( )

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

1 Báze a dimenze vektorového prostoru 1

Aplikovaná numerická matematika - ANM

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

PROSTORY SE SKALÁRNÍM SOUČINEM. Definice Nechť L je lineární vektorový prostor nad R. Zobrazení L L R splňující vlastnosti

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

Lineární algebra : Metrická geometrie

Matematika I 12a Euklidovská geometrie

ALGEBRA. Téma 5: Vektorové prostory

7 Ortogonální a ortonormální vektory

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

6 Skalární součin. u v = (u 1 v 1 ) 2 +(u 2 v 2 ) 2 +(u 3 v 3 ) 2

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

maticeteorie 1. Matice A je typu 2 4, matice B je typu 4 3. Jakých rozměrů musí být matice X, aby se dala provést

Necht L je lineární prostor nad R. Operaci : L L R nazýváme

(Cramerovo pravidlo, determinanty, inverzní matice)

DEFINICE Z LINEÁRNÍ ALGEBRY

Lineární algebra : Změna báze

Symetrické a kvadratické formy

1 0 0 u 22 u 23 l 31. l u11

Matematika B101MA1, B101MA2

4. Trojúhelníkový rozklad p. 1/20

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

1 Determinanty a inverzní matice

Lineární algebra - I. část (vektory, matice a jejich využití)

1 Zobrazení 1 ZOBRAZENÍ 1. Zobrazení a algebraické struktury. (a) Ukažte, že zobrazení f : x

Kapitola 11: Vektory a matice 1/19

Základy maticového počtu Matice, determinant, definitnost

2 Vektorové normy. Základy numerické matematiky - NMNM201. Definice 1 (Norma). Norma je funkcionál splňující pro libovolné vektory x a y a pro

1 Vektorové prostory.

Skalární součin je nástroj, jak měřit velikost vektorů a úhly mezi vektory v reálných a komplexních vektorových prostorech.

označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,

15 Maticový a vektorový počet II

Numerické metody a programování. Lekce 4

Úvod do lineární algebry

Soustavy linea rnı ch rovnic

Numerické metody a programování

Matematický ústav Slezské univerzity v Opavě Učební texty k přednášce ALGEBRA II, letní semestr 2000/2001 Michal Marvan. 14.

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

VĚTY Z LINEÁRNÍ ALGEBRY

1 Vektorové prostory a podprostory

7. Lineární vektorové prostory

Lineární zobrazení. 1. A(x y) = A(x) A(y) (vlastnost aditivity) 2. A(α x) = α A(x) (vlastnost homogenity)

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Soustavy lineárních rovnic

11. Skalární součin a ortogonalita p. 1/16

Dnešní látka Opakování: normy vektorů a matic, podmíněnost matic Jacobiova iterační metoda Gaussova-Seidelova iterační metoda

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe.

Základy matematiky pro FEK

6. Vektorový počet Studijní text. 6. Vektorový počet

Učební texty k státní bakalářské zkoušce Matematika Vlastní čísla a vlastní hodnoty. študenti MFF 15. augusta 2008

z = a bi. z + v = (a + bi) + (c + di) = (a + c) + (b + d)i. z v = (a + bi) (c + di) = (a c) + (b d)i. z v = (a + bi) (c + di) = (ac bd) + (bc + ad)i.

vyjádřete ve tvaru lineární kombinace čtverců (lineární kombinace druhých mocnin). Rozhodněte o definitnosti kvadratické formy κ(x).

Ortogonální projekce a ortogonální zobrazení

Kapitola 11: Vektory a matice:

Vlastní číslo, vektor


IB112 Základy matematiky

stránkách přednášejícího.

Transkript:

3. Ortogonální transformace a QR rozklady Petr Tichý 10. října 2012 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. 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 5

Ortogonální projekce vektoru x do směru q Nechť x R n, hledáme rozklad vektoru x = x q + y takový, že vektor x q leží v předem daném směru q a y q. Bez újmy na obecnosti q = 1. Potom zřejmě platí x q = x q q. Z podmínky kolmosti y = x x q na směrový vektor q plyne x x q, q = 0 x, q = x q, q = x q q, q = x q a vektor x q můžeme psát ve tvaru x q = x q q = x, q q. x q nazveme ortogonální projekcí x do prostoru span{q}. 6

Ortogonální projekce vektoru zapsaná pomocí matice Skalární součin budeme zapisovat ve tvaru maticového součinu a, b = b T a resp. a, b = b a. Výše uvedený vztah můžeme přepsat pomocí vnějšího součinu x q = x, q q = (q T x)q = q(q T x) = (qq T ) x P q x, kde P q qq T je čtvercová symetrická matice řádu n. P q : x P q x span{q} přičemž x P q x span{q}. P q projektuje x do prostoru generovaného bází {q}. 7

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. Úloha: Dán x R n, hledáme rozklad x na složky x = x Q + y tak, že x Q Q a y Q, t.j. Q T y = 0. x Q nazveme ortogonální projekcí x do Q. q i jsou vzájemně ortogonální x Q lze vyjádřit jako součet složek (projekcí) do jednotlivých směrů q i, m x Q = (q i qi T )x = (QQ T ) x P Q x. i=1 P Q = QQ T je čtvercová symetrická matice hodnosti m, projektuje libovolný x do prostoru Q = span{q 1,..., q m }. 8

Ortogonální projektory Ortogonální projektor je lineární operátor P (v našem případě čtvercová matice) symetrický a idempotentní, tedy platí P T = P, P 2 = P. Matice P Q je ortogonálním projektorem. Symetrie matice P Q je zřejmá, idempotence plyne ze vztahu P 2 Q = P QP Q = Q(Q T Q)Q T = QQ T = P Q. Pro vektor x x Q platí kde x x Q = x (QQ T ) x = (I QQ T ) x Π Q x, Π Q I QQ T = I P Q. Π Q je ortogonálním projektorem do prostoru Q (je symetrický a idempotentní), nazývá se projektor komplementární k projektoru P Q. 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 ϕ. 11

Rotace jednotkových vektorů o úhel ϕ 0 12

Matice Givensovy rotace vr 2 G(ϕ) [ 1 0 ] = [ cos ϕ sin ϕ ], G(ϕ) [ 0 1 ] = [ sin ϕ cos ϕ ], tj. [ cos ϕ sin ϕ G(ϕ) = sin ϕ cos ϕ ] Jsou-li v R 2 dány vektory x a y, x = y 0, svírající úhel ϕ, lze y získat pootočením x proti směru hodinových ručiček o úhel ϕ, tj. platí y = G(ϕ)x. Matice G(ϕ) se nazývá matice Givensovy rotace. 13

Matice Givensovy rotace vr n Elementární Givensova rotace Uvažujme nyní prostor R n. Chceme-li provést 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, pak má matice příslušné rotace následující tvar. 1... 1 cos ϕ sin ϕ 1 G i,j (ϕ) =... 1 sin ϕ cos ϕ 1... 1 14

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. 15

Nulování prvků vektoru pomocí Givensových rotací Nulování vr 2, možnost 1 Chceme vynulovat druhý prvek daného vektoru x = [ξ 1, ξ 2 ] T R 2, tj. požadujeme, aby platilo [ ] [ ] ξ1 ξ y = G(ϕ) x = G(ϕ) = 1 2 + ξ2 2. ξ 2 0 Ze vztahu pro druhý prvek dostaneme ξ 1 sin ϕ + ξ 2 cos ϕ = 0 sin ϕ = ξ 2 ξ 2 1 + ξ2 2, cos ϕ = ξ 1 ξ 2 1 + ξ2 2. 16

Nulování prvků vektoru pomocí Givensových rotací Nulování vr 2, možnost 2 Požadavek Potom je y = G(ϕ) x = [ ξ1 2 + ξ2 2 0 ]. sin ϕ = ξ 2 ξ 2 1 + ξ2 2 a cos ϕ = ξ 1 ξ 2 1 + ξ2 2. 17

Nulování prvků vektoru pomocí Givensových rotací Nulování vr n x = [ξ 1,..., ξ n ] T R n opakovaně aplikuleme elementární Givensovy rotace, postupně vynulujeme n 1 prvků vektoru. Požadavek: y má být násobkem jednotkového vektoru e 1 Postupně vynulujeme prvky na pozicích n, n 1,..., 2 (volíme roviny rotace postupně jako span{e 1, e n }, span{e 1, e n 1 },..., span{e 1, e 2 }) Celý proces nulování lze schematicky zapsat jako x =.. 0... 0. 0 ± x 0. 0 = y. 18

Nulování prvků vektoru pomocí Givensových rotací Nulování vr n 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í), Změníme-li pořadí nulování prvků, dostaneme obecně jinou složenou Givensovu rotaci Γ, pro kterou rovněž platí Γx = [± x, 0,..., 0] T. 19

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í). 21

Zrcadlení x q x 0 q x x q y = x 2x q Vektor x můžeme rozložit na složku x q = (qq T ) x ležící ve směru normálového vektoru a na složku (x x q ) ortogonální na q, tedy na složku ležící v dané nadrovině. 22

Matice Householderovy reflexe y = (x x q ) x q = x 2x q = (I 2qq T ) x H(q) x 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. H(q) je ortonormální a symetrická a platí H 2 (q) = I. Dále platí det(h(q)) = 1 (cvičení). 23

Zrcadlení x na y pomocí Householderovy reflexe Úloha: Dány vektory x a y stejné délky, nalézt Householderovu reflexi, která realizuje zrcadlení vektoru x na vektor y (a naopak). 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. 24

Nulování prvků vektoru pomocí Householderových reflexí Householderovy reflexe umožňují eliminovat více prvků jedním zrcadlením. Je-li dán vektor x R n a chceme-li nalézt Householderovu reflexi H takovou, že Hx = ± x e 1, pak stačí za y dosadit vektor ± x e 1 a definovat příslušné normálové vektory, Potom platí q 1 = x x e 1 x x e 1, q 2 = x + x e 1 x + x e 1. H(q 1 )x = x e 1, H(q 2 )x = x e 1. Je lepší zvolit q 1 nebo q 2? 25

Nulování prvků vektoru pomocí Householderových reflexí Volba vektoru q Nechť x = [ξ 1,..., ξ n ] T. Pokud je ξ 1 kladný a blízký k x, potom při odečítání x x e 1 může dojít k vyrušení platných číslic a kvůli dělení malou normou k relativnímu zvětšení chyby vypočteného vektoru ve srovnání s chybou obsaženou v původním vektoru x. Totéž se může stát v případě ξ 1 < 0 při výpočtu x + x e 1. Z důvodů numerické stability je vhodné použít k nulování vektoru x normálový vektor q = x + sgn(ξ 1) x e 1 x + sgn(ξ 1 ) x e 1. 26

Givensovy rotace a Householderovy reflexe v komplexním oboru Analogická definice, jde o unitární matice. Ztrácejí obecně geometrický význam rotace a zrcadlení. I přesto je lze použít k nulování prvků vektorů. Příklad. Matice Householderovy reflexe: H(q) I 2qq C n n, q = 1. Uvažujme x = [ξ 1,..., ξ n ] T C n. Prvek ξ 1 zapišme ve tvaru ξ 1 = ξ 1 e iα, 0 α < 2π. Potom pro matici H(q) určenou normálovým vektorem platí q = x + eiα x e 1 x + e iα x e 1 H(q)x = e iα x e 1. 27

QR rozklad Nechť A C n m je obecně obdélníková matice. Rozklad tvaru 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é, nazýváme 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, 29

Vynecháním posledních n m nulových řádků matice R a posledních n m sloupců matice Q dostaneme rozklad tvaru 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, 30

Příklady použití QR rozkladu Problém Ax = b, kde A C n n je regulární matice. Ax = b QRx = b, QRx = QQ b, Rx = Q b, přičemž soustava s trojúhelníkovou maticí je snadno řešitelná. Jiná možnost řešení: LU rozklad matice A - obecně levnější, použití QR rozkladu je numericky stabilnější. V případě rozsáhlých úloh s řídkou maticí A je však QR rozklad prakticky nepoužitelný (požadavek ortogonality sloupců matice Q vede velmi rychle ke ztrátě řídkosti). QR rozklad je standardním nástrojem pro řešení problémů nejmenších čtverců. Algoritmů pro výpočet QR rozkladu je několik. 31

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. 32

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 33

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í). 34

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. 35

Existence a jednoznačnost QR rozkladu Existence Z konstrukce QR rozkladu plyne, že matice Q je čtvercová matice řádu n a matice R je stejných rozměrů jako matice A s nulovými prvky pod hlavní diagonálou. Dokázali jsme existenci QR rozkladu, kde matice Q má rozměr n n a R má rozměr n m (nezávisle na tom, zda je n m nebo n > m). Ekonomický QR rozklad pro n > m, a tím i důkaz jeho existence, dostaneme vynecháním nulových řádků v matici R a odpovídajících sloupců v matici Q. 36

Existence a jednoznačnost QR rozkladu Jednoznačnost QR rozklad není obecně jednoznačný: pro každou diagonální D, D D = I, a pro libovolný QR rozklad A = QR platí A = QR = (QD )(DR) = Q R, kde Q R je rovněž QR rozkladem matice A. Povolíme-li na diagonále matice R pouze kladné prvky, je ekonomický QR rozklad jednoznačný. 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. 37

Důkaz jednoznačnosti Nechť A = QR = Q 1 R 1 jsou dva ekonomické QR rozklady matice A a R i R 1 mají kladné diagonální prvky. Pak Q 1 = QRR 1 1 a platí Q 1 Q 1 = (RR1 1 ) Q Q(RR1 1 ) = (RR 1 1 ) (RR1 1 ) = I. Z toho vyplývá ((RR 1 1 ) ) 1 = RR 1 1. Matice na levé straně je dolní trojúhelníková, matice na pravé straně je horní trojúhelníková obě matice jsou diagonální a platí RR 1 1 = I, tj. R = R 1 a Q = Q 1. 38

QR rozklad užitím Householderových reflexí Householderův QR rozklad konstrukčně stejný jako Givensův. Místo složených Givensových rotací Γ k používáme k nulování vektorů matic Householderových reflexí H k. Pro n > m transformujeme A C n m dle schématu 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. 39

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. Z podmínky span{a 1 } = span{q 1 } a q 1 = 1 plyne, že q 1 získáme normalizací vektoru a 1, r 1,1 = a 1, q 1 = a 1 r 1,1. Druhý krok: hledáme bázový q 2 takový, že span{a 1, a 2 } = span{q 1, q 2 }, q 2 q 1 a 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. 41

Gram-Schmidtův ortogonalizační proces k-tý krok V k-tém kroku odečteme projekci a k na prostor generovaný ortonormálními vektory q 1,..., q k 1, Q k 1 = [q 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. 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. i=1 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 42

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 43

Gram-Schmidtův ortogonalizační proces QR rozklad komentáře Narozdíl od QR rozkladu spočteného pomocí rotací či reflexí má zde matice Q rozměr n m a matice R má rozměr m m. Gram-Schmidtův ortogonalizační proces spočítá pro n > m ekonomický QR rozklad. Gram-Schmidtův ortogonalizační proces vzhledem ke skalárnímu součinu, zapíšeme vztahy k 1 z = a k a k, q i q i, r k,k = q k = z/r k,k. i=1 z, z, Výsledná báze {q 1,..., q k } prostoru span{a 1,..., a k } je ortonormální vzhledem ke zvolenému skalárnímu součinu,. 44

Implementace Gram-Schmidtova procesu Gram-Schmidtův proces lze přepsat několika matematicky (v přesné aritmetice) ekvivalentními způsoby. Dvě základní varianty klasický a modifikovaný algoritmus + varianty s iteračním zpřesněním. Pro jednoduchost a 1,..., a m jsou lineárně nezávislé. 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. 45

Implementace Gram-Schmidtova procesu Klasický a modifikovaný Gram-Schmidtův algoritmus Využijeme-li ortonormality vektorů q 1,..., q k 1, platí k 1 I q i qi = (I q k 1 qk 1)... (I q 2 q2)(i q 1 q1) i=1 (cvičení). Potom zřejmě z = (I q k 1 q k 1 )... (I q 2q 2 )(I q 1q 1 ) a k M Q a k, kde ortogonální projektor M Q je definován vztahem M Q (I q k 1 q k 1)... (I q 2 q 2)(I q 1 q 1) a je matematicky ekvivalentní s ortogonálním projektorem C Q. 46

Implementace Gram-Schmidtova procesu Klasický a modifikovaný Gram-Schmidtův algoritmus Implementace využívající M Q je sekvenční v tom smyslu, že pomocný vektor z počítáme postupně v k na sebe navazujících krocích, z 1 = a k z 2 = z 1 (q1z 1 ) q 1,. z k = z k 1 (q k 1 z k 1) q k 1. Vztahy používající C Q a M Q jsou matematicky ekvivalentní. Vedou však na algoritmy s různými numerickými vlastnostmi. Algoritmus používající C Q vede na tzv. klasický Gram-Schmidtův (CGS) algoritmus. 47

Klasický Gram-Schmidtův algoritmus (CGS) 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 Nevýhoda: velký vliv zaokrouhlovacích chyb na spočtený výsledek při výpočtu v aritmetice s konečnou přesností. 48

Modifikovaný Gram-Schmidtův algoritmus (MGS) 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 Chyby vznikající při výpočtu z jsou částečně eliminovány, výpočet r i,k := q i z následuje až po výpočtu aktualizace. 49

Iterační zpřesnění Ortogonalizační krok můžeme opakovat. Získáme tím například klasický Gram-Schmidtův algoritmus s opakovanou ortogonalizací (s iteračním zpřesněním, ICGS). 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? 50

CGS algoritmus s opakovanou ortogonalizací Při první ortogonalizaci projektujeme a k do podprostoru generovaného ortonormálními vektory q 1,..., q k 1, tj. vypočteme koeficienty q i a k, i = 1,..., k 1 a vektor z, z = a k [(q k 1a k ) q k 1 +... + (q 1a k ) q 1 ]. Při opakované ortogonalizaci projektujeme vektor z do podprostoru generovaného vektory q 1,..., q k 1, tj. vypočteme koeficienty qi z, i = 1,..., k 1 a vektor w, w = z [(q k 1 z) q k 1 +... + (q 1 z) q 1]. Dosadíme-li za vektor z do druhého vztahu, zjistíme, že w = a k [(q k 1 a k + q k 1 z) q k 1 +... + (q 1 a k + q 1 z) 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ů. 51

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 52

Numerická stabilita algoritmů Pravidla v konečné aritmetice Pro počítání v konečné aritmetice počítače platí určitá pravidla, která jsou důležitá z matematického hlediska. Standardní model konečné aritmetiky předpokládá fl(x y) = (x y)(1 + ǫ), ǫ u, kde zastupuje operace +,,, / a fl( ) označuje, že výpočet byl proveden v konečné aritmetice počítače. 54

Numerická stabilita algoritmů Přímá a zpětná analýza chyb Uvažujme algoritmus, který řeší daný matematický problém. Použijeme-li tento algoritmus k výpočtu v aritmetice s pohyblivou řádovou čárkou, můžeme vlivem zaokrouhlovacích chyb získat nepřesné výsledky. Úkolem numerické analýzy je zjistit, jakým způsobem funguje daný algoritmus v prostředí konečné aritmetiky, a jak nepřesné výsledky může algoritmus generovat. Jinak řečeno, ptáme se, zda je algoritmus spolehlivý (zda dává rozumné výsledky) i v případě, kdy počítá s nepřesnými čísly. 55

Numerická stabilita algoritmů Přesnost výpočtu, absolutní a relativní chyba Nechť f(x) reprezentuje výsledek spočtený přesným algoritmem a fl(f(x)) výsledek spočtený algoritmem v konečné aritmetice (x reprezentuje vstupní data). Přesnost výpočtu můžeme měřit v absolutním smyslu pomocí f(x) fl(f(x)), kde je vhodná norma, nebo v relativním smyslu pomocí f(x) fl(f(x)). f(x) V této přednášce budeme k měření přesnosti algoritmu používat relativní chybu. Relativní chyba výpočtu v nejlepším případě úměrná strojové přesnosti f(x) fl(f(x)) = O(u). f(x) 56

Numerická stabilita algoritmů Význam O(u) O(u) označuje neurčité číslo, jehož velikost lze omezit pomocí O(u) Ku. Konstanta K je nezávislá na konkrétních datech, ale může záviset na dimenzi úlohy. Jsou-li např. vstupem algoritmu čtvercová matice A řádu n a vektor b, pak K nezávisí na A a b, ale může záviset na n. Závislost konstanty K na dimenzi problému je obvykle lineární, kvadratická či kubická v nejhorším případě. Vznikající chyby jsou většinou mnohem menší (díky krácení - kancelaci - zaokrouhlovacích chyb) než předpovídá odhad. Pokud je závislost K na n exponenciální (např. K = 2 n ), algoritmus může být velmi citlivý na n může být numericky nestabilní s rostoucím n. 57

Numerická stabilita algoritmů Analýza chyb Smyslem analýzy chyb je zjistit, jaké (největší) chyby se algoritmus může při výpočtu v konečné aritmetice dopustit. To, jak algoritmus v konečné aritmetice chybuje lze měřit a analyzovat dvěma základními způsoby. Přímá analýza chyb. Postupujeme podle algoritmu a snažíme se popsat šíření elementárních zaokrouhlovacích chyb. Na základě tohoto popisu odhadujeme přímo velikost výsledné chyby. Efektivní přímý odhad chyby je však možný jen zřídka (v případě jednoduchých výpočtů jako je např. skalární součin vektorů, násobení matice vektorem, apod.). Zpětná analýza chyb. Hledáme modifikovaná vstupní data úlohy tak, aby přibližné řešení spočtené algoritmem v konečné aritmetice počítače bylo přesným řešením té samé úlohy, avšak s modifikovanými vstupními daty. Cílem zpětné analýzy je interpretovat zaokrouhlovací chyby vzniklé při výpočtu v aritmetice s konečnou přesností pomocí změn vstupních dat. 58

Numerická stabilita algoritmů Analýza chyb 59

Příklad Přímá a zpětná analýza chyb při výpočtu skalárního součinu Pokud máme posloupnost operací jako např. s = x T y, x, y F n, kde F n označuje vektory délky n, jejichž prvky jsou čísla v pohyblivé řádové čárce (x i F, y i F, i = 1,..., n), potom budeme výsledek spočtený algoritmem 01 s = 0 02 for j = 1 : n do 03 s = s + x j y j 04 end v konečné aritmetice počítače zapisovat ve tvaru s = fl(x T y). 60

Analýza chyb při výpočtu skalárního součinu Zpětná analýza chyb I s 0 = 0, nechť s j je hodnota s na konci j-tého cyklu, s j = fl(s j 1 + x j y j ). Podle pravidla o chybě vzniklé při jedné operaci dostáváme s j = [s j 1 + x j y j (1 + ε j )](1 + δ j ), kde ε j u, δ j u. Indukcí plyne n n s n = x j y j (1 + ε j ) (1 + δ i ), j=1 i=j přičemž δ 1 = 0 a kde ε j u, δ j u. Definujme n µ j (1 + ε j ) (1 + δ i ) 1. i=j 61

Analýza chyb při výpočtu skalárního součinu Zpětná analýza chyb II Potom platí n s n = x j y j (1 + µ j ). j=1 Vypočtený výsledek jsme vyjádřili jako přesný výsledek skalárního součinu s perturbovanými (modifikovanými) daty, s n = x T ŷ, kde x = x a ŷ má prvky ŷ j = y j (1 + µ j ). Toto je příklad zpětné analýzy chyb, Vypočtený výsledek = přesný výsledek na perturbovaných datech. Úkolem zpětné analýzy chyb je odhadnout velikosti µ j a vyjádřit relativní vzdálenosti přesných a perturbovaných dat. 62

Analýza chyb při výpočtu skalárního součinu Přímá analýza chyb Dále lze ukázat, že s n = x T y + z, z = Přímá analýza chyb: vyjádřili jsme n x j y j µ j. j=1 Vypočtený výsledek = přesný výsledek + chyba. Úkolem přímé analýzy chyb je odhadovat velikost chyby z. Přímá a zpětná analýza chyb reprezentují dva pohledy, jak interpretovat chyby při výpočtech. 63

Odhady chyb při výpočtu skalárního součinu Nechť α i u, i = 1,..., n a nechť n u < 0.01. Potom platí n (1 + α i ) = 1 + β n, i=1 kde β n 1.01 n u (Lemma (Higham 2002)). Použitím tohoto lemmatu lze ukázat, že platí µ j 1.01 n u fl(x T y) x T y 1.01 n u x T y. Odtud již lehce plyne, že platí fl(x T y) = x T ŷ, kde x x x = 0 a y ŷ y 1.01 n u. 64

Zpětná stabilita algoritmu Přímá analýza chyb nám obvykle dává odpověď na otázku jak přesný je algoritmus v konečné aritmetice. Na základě zpětné analýzy chyb dospějeme často k poznání, že spočtené řešení úlohy lze interpretovat jako přesné řešení úlohy pro modifikovaná (perturbovaná) počáteční data, která jsou v jistém smyslu blízká původním počátečním datům. Definice: Algoritmus f(x) je zpětně stabilní, pokud platí fl(f(x)) = f( x) pro nějaké x splňující x x x = O(u), Algoritmus je zpětně stabilní, jestliže se chyby výpočtu způsobené zaokrouhlováním v průběhu algoritmu promítnou do malých změn vstupních dat. Výpočet skalárního součinu je zpětně stabilní. 65

Přesnost zpětně stabilního algoritmu Algoritmus f popis, jak řešit daný problém p. Problém p lze přitom vidět jako zobrazení, které vstupním datům z normovaného vektorového prostoru X přiřazuje řešení z normovaného vektorového prostoru Y, p : X Y. p je obvykle nelineární, ale bývá alespoň spojité. Dobře podmíněný problém je takový, že malé změny vstupních dat x vedou na malé změny v p(x). Špatně podmíněný problém je takový, že malé změny vstupních dat x vedou na velké změny v p(x). Lze ukázat, že pokud je algoritmus f řešící problém p zpětně stabilní a má-li problém p(x) podmíněnost κ(x), pak fl(f(x)) f(x) f(x) κ(x)o(u). 66

Numerická stabilita QR rozkladu Důležitý pojem: zpětná stabilita. Ří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í. V následujícím uvedeme, jaká je přesnost vypočtené matice fl(ua), co lze říci o ortogonalitě spočtené matice Q, jak přesně spočtený je faktor R, a konečně, do jaké míry odpovídá součin spočtených matic Q R matici A. 68

Aplikace Givensových rotací a Householderových reflexí v konečné aritmetice Wilkinson, Turing: transformace A na matici U A, kde U C n n je matice elementární Givensovy rotace nebo Householderovy reflexe, potom fl(ua) = U(A + E), kde E A γn2 ε + O(ε 2 ), γ je konstantu nezávislá na velikosti úlohy ani na konkrétních datech, O(ε 2 ) značí členy úměrné ε 2, ε je strojová přesnost počítače (vzdálenost čísla 1 od nejbližšího většího čísla v množině čísel počítače). 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 ε A. 69

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í spektrální normy matice E Q Q Q I. Často se rovněž používá Frobeniova norma. Přehled závislosti velikosti spektrální normy matice E Q na strojové přesnosti a podmíněnosti rozkládané matice: Algoritmus Householderův QR rozklad Givensův QR rozklad CGS MGS ICGS Lze matematicky dokázat. E Q ε ε κ 2 (A) ε κ(a) ε ε 70

Numerická stabilita QR rozkladu Stabilita výpočtu faktoru ˆR Pomocí analýzy zaokrouhlovacích chyb lze ukázat, že Householderův QR rozklad, Givensův QR rozklad a MGS jsou zpětně stabilní algoritmy v následujícím smyslu: Nechť R je spočtený trojúhelníkový faktor QR rozkladu matice A v aritmetice s konečnou přesností charakterizované strojovou přesností ε. Potom existuje unitární matice Q a malá perturbace matice A (označme ji jako E) taková, že platí Q (A + E) = R, E F ε A F, kde F je Frobeniova norma. Výsledek je překvapivý hlavně pro algoritmus MGS, kde není zaručená ztráta ortogonality na úrovni strojové přesnosti. 71

Numerická stabilita QR rozkladu Norma rezidua A ˆQ ˆR Matice Q a R vypočtené variantami Gram-Schmidtova procesu (MGS, CGS, ICGS) nebo pomocí Householderových či Givensových transformaci splňují A Q R ε A. Všimněme si, že tento výsledek platí nejen pro MGS, ale dokonce pro variantu CGS, u které je ztráta ortogonality ze všech variant největší. 72

Cena výpočtu Gram-Schmidtova procesu a QR rozkladu Čtvercová matice Měříme počtem provedených aritmetických operací. Podrobně ji vyjádříme u Gram-Schmidtova procesu. Není třeba rozlišovat klasický a modifikovaný Gram-Schmidtův algoritmus (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í. 73

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 74

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í. 75

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í. 77

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í. 78

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 79