Uploaded by thepowerapple

QR

advertisement
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
Download