QR-faktorisering Alla inverterbara komplexa matriser A kan skrivas som en produkt av av en unitär matris multiplicerad med en övertriangulär matris med positiva diagonalelement från höger dvs A = U R. Detta kallas för UR faktorisering och denna faktorisering är entydig. Alla reella inverterbara matriser kan entydigt skrivas som A = QR där Q är en ortogonal matris och R är övretriangulär matris med positiva diagonalelement. En sådan uppdelning görs direkt genom Gram-Schmidt-ON-proceduren: Och vi antar att A är en n × n-matris och rang är n. Skirv A = (a1 a2 · · · an ) (kolonnvis). Så a1 ,...,an är linjärt oberoende. Tillämpa Gram-Schmidt på ai får vi 0 q1 = a 1 ; q1 = q10 /kq10 k 0 q2 = q20 /kq20 k q20 = a2 − ha2 , q1 iq1 ; q3 = a3 − ha3 , q1 iq1 − ha3 , q2 iq2 ; q3 = q30 /kq30 k .. . 0 qn = an − han , q1 iq1 − han , q2 iq2 − · · · − han , qn−1 iqn−1 ; qn = qn0 /kqn0 k ⇐⇒ 0 a =kq kq 1 1 1 a2 =ha2 , q1 iq1 + kq20 kq2 .. . an =han , q1 iq1 + han , q2 iq2 + · · · + han , qn−1 iqn−1 + kqn0 kqn På matrisformen blir det 0 kq1 k ha2 , q1 i ha3 , q1 i · · · han−1 , q1 i han , q1 i 0 kq20 k ha3 , q2 i · · · han−1 , q2 i han , q2 i 0k 0 0 kq · · · ha , q i ha , q i n−1 3 n 3 3 A = (a1 a2 · · · an ) = (q1 q2 · · · qn ) . . . . . .. .. .. .. .. | {z } .. . Q 0 0 0 0 ··· kqn−1 k han , qn−1 i 0 0 0 ··· 0 kqn0 k | {z } R Det är klart att diagonalelementen i R är positiva. hqi , qj i = δij enligt Gram-Schmidt. Om A är en kvadratisk matris så är Q kvadratisk och är en ortogonal matris. Enligt konstruktionen gäller att kqi0 k = hai , qi i i = 1, 2..., n Så ha1 , q1 i ha2 , q1 i ha3 , q1 i · · · han−1 , q1 i han , q1 i 0 ha2 , q2 i ha3 , q2 i · · · han−1 , q2 i han , q2 i 0 0 ha , q i · · · ha , q i ha , q i 3 3 n−1 3 n 3 R= . . . . . .. .. .. .. .. .. . 0 0 0 · · · han−1 , qn−1 i han , qn−1 i 0 0 0 ··· 0 han , qn i 1 1 0 Exempel 1: QR-faktorisera matrisen A = 1 0 1. 0 1 1 Sätt 1 1 0 1 0 a1 = , a2 = , a3 = 1 0 1 1 Använd Gram-Schmidt-ON-procederen: Välj q10 = a1 Normera q10 : √ 1/√2 √ kq10 k = 1/ 2 ⇒ q1 = 1/ 2 . 0 √ √ 1 1/√2 1/√2 1/2 q20 = a2 −ha2 , q1 iq1 = a2 −aT2 q1 q1 = 0 − 1 0 1 1/ 2 1/ 2 = −1/2 , 1 1 0 0 Normera q20 : kq20 k = √ √ 1/ √6 6/2 ⇒ q2 = −1/√ 6 . 2/ 6 Till sist √ −1/√ 3 −2/3 √ q30 = a3 − ha3 , q1 i − ha3 , q2 i = 2/3 , kq30 k = 2/ 3 ⇒ q3 = 1/√3 . 2/3 1/ 3 Vi får: √ √ √ √ √ √ 1/√2 1/ √6 −1/√ 3 2 1/√2 1/√2 1 1 0 A = 1 0 1 = 1/ 2 −1/√ 6 1/√3 0 3/ 6 1/√6 . 0 1 1 1/ 3 0 2/ 6 0 0 2/ 3 | {z }| {z } Q R Eftersom A är inverterbar är faktorieringen entydig. Notera att matrisen A inte behöver vara inverterbar. Samma metod fungerar. 1 1 2 Exempel 2: QR-faktorisera matrisen A = 1 0 1. 0 1 1 Vi inser att denna matris har bara två linjärt oberoende kolonner. De första två kan vi ortonomera enligt föregående exempel. Så √ √ 1/ √6 1/√2 q1 = 1/ 2 , q2 = −1/√ 6 0 2/ 6 Fortsätter vi med Gram-Schmidt får vi q30 = 0, vllket är väntat (ty den tredje kolonnen i A är summan av de övriga två). Nu kan vi antingen nöja oss med en rektangulär faktorisering √ √ √ √ 1/√2 1/ √6 √ 2 1/√2 3/√2 A = 1/ 2 −1/√ 6 0 3/ 6 3/ 6 0 2/ 6 där vi räkna ut R genom R = QT A = √ √ 2 1/√2 3/√2 0 3/ 6 3/ 6 √ (notera att QT Q = I enligt konstruktionen och denna faktorisering är entydig!), eller vill vi ha en kvadratisk faktorisering (som vi säger hel). Då ska vi utvidga matrisen Q med 2 en kolonn som ska vara ortonormerad med de första två: vi väljer t ex q3 i Exempel 1. (OBS! Det är här mångtydigheter dyker upp.) Då får vi √ √ √ 2 1/√2 3/√2 R = (q1 q2 q3 )T A = 0 3/ 6 3/ 6 0 0 0 en trappform. Det vill säga √ √ √ √ √ √ 1/√2 1/ √6 −1/√ 3 2 1/√2 3/√2 A = 1/ 2 −1/√ 6 1/√3 0 3/ 6 3/ 6 . 0 0 0 0 2/ 6 1/ 3 {z } {z }| | R Q Observera att matrisen A inte heller behöver vara kvadratisk. 1 1 Exempel 3: Vi kan också QR-faktorisera en ”hög” matris t ex A = 1 0. 0 1 Vi har ju alla räkningar nu från Exempel 1. Men Q-matrisen är av 3 × 2 och R 2 × 2: √ √ √ 1/√2 1/ √6 √ 1 1 2 1/√2 A = 1 0 = 1/ 2 −1/√ 6 . 0 3/ 6 0 1 0 2/ 6 | {z } | {z } R Q Sammanfattning: Generellt kan vi säga: Om en n× n-matris A har rang r < n då kan den QR-faktoriseras på formen A = QR där R1 R= , R1 är en trappmatris av r × n med rang r och Q är ortogonal kan delas upp 0 på motsvarande sätt Q = (Q1 Q2 ), Q2 är påfyllda ortonormerade kolonner. Who cares? Varför QR? Det finns många trevliga egenskaper hos unitära och ortogonala matriser. • Vi behöver inte räkna Q−1 eller U −1 , istället QT respektive U H . • det(Q) = ±1, | det(U )| = 1. qP 2 • Q eller U är längdbevarande: kU vk = kvk, v är en kolonnvektor, kvk = j |vj | , ty kU vk2 = hU v, U vi = hU v)H (U vi = v H (U H U )v = v v = hv, vi = kvk2 . Liknande gäller för Q: kQXk = kXk, X är en kolonnvektor. • de är skalärproduktbevarande (dvs vinkeln mellan två vektorer blir samma under en unitär (ortogonal) avbildning): (U X, U Y ) = (X, Y ) för alla kolonnvekorer X och Y . För Q gäller att hQv, Qui = hv, ui. • kU Ak2 = kAk2 och kU AkF = kAkF där sX kAvk kAk2 := max , och kAkF = |aij |2 (Frobenius norm). v6=0 kvk i,j Det samma för Q. Observera att 2-norm den följer av att kU vk = kvk.qFrobenius norm följer av det P 2 tillsammans med kU Ak = k(U a1 U a2 · · · U an )k = j kU aj k . 3 • Det blir mycket lättare att bevisa följande fundamentala satser i linjär algebra: Låt A : Rn → Rm . Då gäller att Rn = N(A) ⊕ R(At ) eller Rn = N(At ) ⊕ R(A). Med andra ord N(A) = (R(At ))⊥ , R(A) = N(At ))⊥ där ⊕ står för direktsumman, dvs U ⊕ V = U + V och U ∩ V = {0}, V ⊥ := {w : (u, w) = 0, för alla v ∈ V } som kallas för det ortogonala komplementet till V . Skiss av bevis. Med den ”hela” QR-fakoriseringen av A får vi R1 A = Q1 R1 = (Q1 Q2 ) . 0 Vi vet att R(Q1 ) + R(Q2 ) = Rn =⇒ R(Q2 ) = (R(Q1 ))⊥ Enligt konstruktionen (Gram-Schmidt eller QR-uppdelningen) kolonner av Q1 spänner upp samma vektorrum som kolonnerna av A. Det vill säga R(Q1 ) = R(A). Men vad är R(Q2 )? För att få ett svar på denna fråga räknar vi t Q1 t t A = (R 0) Qt2 vilket ger At z = 0 ⇐⇒ Qt1 z = 0 ⇐⇒ z ∈ R(Q2 ). Så R(Q2 ) = N(At ). Dessutom är kolonnerna i Q2 en ON-bas för ker AT . • Det finns mycket mer om vi ska göra numeriska beräkningar... Yishao Zhou// October 14, 2020 4