QR-faktorisering

Inom linjär algebra är QR-faktorisering en matrisfaktorisering av en (reell) matris i en ortogonal matris och en triangulär matris.

Definition

En QR-faktorisering av en reell kvadratisk matris A {\displaystyle A} kan uttryckas:

A = Q R {\displaystyle A=QR}

För en ortogonal matris Q {\displaystyle Q} och en övertriangulär matris R {\displaystyle R} . Om A {\displaystyle A} istället är komplex är Q {\displaystyle Q} en unitär matris.

Detta kan generaliseras till att A {\displaystyle A} är en matris av format m × n {\displaystyle m\times n} där m n {\displaystyle m\geq n} , då Q {\displaystyle Q} är en ortogonal (unitär) matris med format m × n {\displaystyle m\times n} och R {\displaystyle R} är en övertriangulär matris med format n × n {\displaystyle n\times n} .

Beräkning

Det finns flera sätt att beräkna QR-faktoriseringen av en matris. Det vanligaste sättet är genom Gram-Schmidts ortogonaliseringsprocess.

Genom Gram-Schmidt

Om matrisen A {\displaystyle A} har kolonnvektorerna u 1 , u 2 , . . . u n {\displaystyle \mathbf {u_{1}} ,\mathbf {u_{2}} ,...\mathbf {u_{n}} } som är linjärt oberoende, kan man genom Gram-Schmidts ortogonaliseringsprocess bestämma vektorer v 1 , v 2 , . . . v n {\displaystyle \mathbf {v_{1}} ,\mathbf {v_{2}} ,...\mathbf {v_{n}} } som är ortogonala. De gamla u {\displaystyle \mathbf {u} } -vektorerna kan nu skrivas som linjärkombinationer av de nya v {\displaystyle \mathbf {v} } -vektorerna:

u 1 = r 11 v 1 {\displaystyle \mathbf {u_{1}} =r_{11}\mathbf {v_{1}} }
u 2 = r 12 v 1 + r 22 v 2 {\displaystyle \mathbf {u_{2}} =r_{12}\mathbf {v_{1}} +r_{22}\mathbf {v_{2}} }
. . . {\displaystyle ...}
u n = r 1 n v 1 + . . . + r n n v n {\displaystyle \mathbf {u_{n}} =r_{1n}\mathbf {v_{1}} +...+r_{nn}\mathbf {v_{n}} }

Om vi nu placerar våra r {\displaystyle r} -värden i en matris, R {\displaystyle R} , och de ortogonala vektorerna i en annan matris, Q {\displaystyle Q} , kan vi uttrycka den gamla matrisen A {\displaystyle A} som produkten av dessa:

A = Q R = ( v 1 v 2 v n ) ( r 11 r 12 r 1 n 0 r 22 r 2 n 0 0 r n n ) {\displaystyle A=QR={\begin{pmatrix}&&&\\\mathbf {v_{1}} &\mathbf {v_{2}} &\ldots &\mathbf {v_{n}} \\&&&\end{pmatrix}}{\begin{pmatrix}r_{11}&r_{12}&\ldots &r_{1n}\\0&r_{22}&\ldots &r_{2n}\\\vdots &\vdots &\ddots &\vdots \\0&0&\ldots &r_{nn}\end{pmatrix}}}

v {\displaystyle \mathbf {v} } -vektorerna är ortogonala är Q {\displaystyle Q} ortogonal (unitär om vektorerna är komplexa).

För att få r {\displaystyle r} -värdena kan man lösa dem ur ortogonaliseringsprocessen man gör, eller så använder man sig av faktumet att:

R = I R = Q H Q R = Q H A {\displaystyle R=IR=Q^{H}QR=Q^{H}A\,}

Så att R {\displaystyle R} kan beräknas genom en enkel matrismultiplikation ( Q H {\displaystyle Q^{H}} står för det hermiteska konjugatet till Q {\displaystyle Q} , som i det reella fallet är samma sak som transponat).

Med Householderreflektioner

En Householdertransformation är en linjär avbildning som reflekterar en vektor i ett hyperplan. Detta kan användas till att QR-faktorisera en matris. Denna metod är numeriskt stabilare än Gram-Schmidt-metoden och har en tidskomplexitet på O ( n 3 ) {\displaystyle O(n^{3})} .

För beräkningen tas speciella Householdertransformationer fram. Man utgår från en vektor x {\displaystyle \mathbf {x} } och tar ett tal a så att x = | a | {\displaystyle \|\mathbf {x} \|=|a|} . Om QR-faktoriseringen görs med flyttalsberäkningar och vektorn är reell bör a väljas med motsatt tecken från första elementet i vektorn x {\displaystyle \mathbf {x} } , om vektorn är komplex bör a väljas genom:

a = x e i arg x 1 . {\displaystyle a=-\|x\|e^{i\arg x_{1}}.}

Sedan konstrueras Householdertransformationen Q på följande sätt ( e 1 {\displaystyle \mathbf {e} _{1}} är vektorn ( 1 , 0 , . . . , 0 ) T {\displaystyle (1,0,...,0)^{T}} ):

u = x a e 1 {\displaystyle \mathbf {u} =\mathbf {x} -a\mathbf {e} _{1}}
v = u u {\displaystyle \mathbf {v} ={\frac {\mathbf {u} }{\|\mathbf {u} \|}}}
Q = I 2 v v H . {\displaystyle Q=I-2\mathbf {vv} ^{H}.}

För att QR-faktorisera m×n-matrisen A, konstruerar man en Householdertransformation Q1 enligt ovan från första kolonnen i A. Man får då

Q 1 A = ( a 1 c 12 c 1 m 0 A 0 ) {\displaystyle Q_{1}A={\begin{pmatrix}a_{1}&c_{12}&\ldots &c_{1m}\\0\\\vdots &&A'\\0\end{pmatrix}}}

Man kan sedan konstruera en ny Householdertransformation Q 2 {\displaystyle Q_{2}'} från första kolonnen i A {\displaystyle A'} ( A {\displaystyle A'} fås genom att plocka bort första kolonnen och första raden i Q 1 A {\displaystyle Q_{1}A} ). Eftersom man vill verka på matrisen Q 1 A {\displaystyle Q_{1}A} och inte A {\displaystyle A'} så tar man matrisen Q 2 {\displaystyle Q_{2}'} och fyller ut den. För ett generellt steg i QR-faktoriseringen får man matrisen:

Q k = ( I k 1 0 0 Q k ) {\displaystyle Q_{k}={\begin{pmatrix}I_{k-1}&0\\0&Q_{k}'\end{pmatrix}}}

Vid multiplikation med Q2 fås alltså en matris Q 2 Q 1 A {\displaystyle Q_{2}Q_{1}A} som är lika stor som A. Ur denna matris läser man ut A {\displaystyle A''} som är två steg mindre än A, tar den första kolonnen och konstruerar Q 3 {\displaystyle Q_{3}'} varur man konstruerar Q3 enligt ovan.

Sedan upprepas detta k = min ( m 1 , n ) {\displaystyle k=\min(m-1,n)} steg, då man fått

R = Q k Q k 1 . . . Q 1 A {\displaystyle R=Q_{k}Q_{k-1}...Q_{1}A}

där R är övertriangulär och

Q = Q 1 Q 2 . . . Q k {\displaystyle Q=Q_{1}Q_{2}...Q_{k}}

är en unitär matris (eftersom Householdertransformationer är unitära). Alltså är A = Q R {\displaystyle A=QR} en QR-faktorisering av A.

Tillämpningar

Minsta kvadrat-lösningar

Om man ska hitta minsta kvadrat-lösningen till ett ekvationssystem givet av ekvationen A x = b {\displaystyle A\mathbf {x} =\mathbf {b} } förenklas detta om A {\displaystyle A} är QR-faktoriserad. Lösningen ges i vanliga fall av

A H A x = A H b {\displaystyle A^{H}A\mathbf {x} =A^{H}\mathbf {b} }

Om A = Q R {\displaystyle A=QR} ger vänsterledet

A H A x = ( Q R ) H Q R x = R H Q H Q R x = R H R x {\displaystyle A^{H}A\mathbf {x} =(QR)^{H}QR\mathbf {x} =R^{H}Q^{H}QR\mathbf {x} =R^{H}R\mathbf {x} }

och högerledet

A H b = ( Q R ) H b = R H Q H b {\displaystyle A^{H}\mathbf {b} =(QR)^{H}\mathbf {b} =R^{H}Q^{H}\mathbf {b} }

så att ekvationen blir

R H R x = R H Q H b R x = Q H b {\displaystyle R^{H}R\mathbf {x} =R^{H}Q^{H}\mathbf {b} \Rightarrow R\mathbf {x} =Q^{H}\mathbf {b} }

som är ett väldigt lättlöst ekvationsysstem eftersom R {\displaystyle R} är triangulär.

Determinanter, egenvärden och singulärvärden

Om A är en kvadratisk matris av storlek n som är QR-faktoriserad, A = Q R {\displaystyle A=QR} , då det ur räknelagarna för determinanten att

det A = det Q det R . {\displaystyle \det A=\det Q\det R.\,}

Eftersom Q är unitär är | det Q | = 1 {\displaystyle |\det Q|=1} , vilket ger:

| det A | = | det R | = | i n r i i | {\displaystyle |\det A|=|\det R|=\left|\prod _{i}^{n}r_{ii}\right|}

där r i i {\displaystyle r_{ii}} är värdena i R:s diagonal. Då man även vet att determinanten av A är produkten av A:s egenvärden följer det att

| i = 1 n λ i | = | i = 1 n r i i | {\displaystyle \left|\prod _{i=1}^{n}\lambda _{i}\right|=\left|\prod _{i=1}^{n}r_{ii}\right|}

där λ i {\displaystyle \lambda _{i}} är A:s egenvärden.

Man kan generalisera resonemanget ovan till att gälla matriser A som inte är kvadratiska, då man från egenskaper hos singulärvärdesfaktoriseringen får att:

i σ i = | i r i i | {\displaystyle \prod _{i}\sigma _{i}=\left|\prod _{i}r_{ii}\right|}

där σ i {\displaystyle \sigma _{i}} är A:s singulärvärden.

Se även


v  r
Linjär algebra
Grundläggande begrepp
Skalär · Vektor · Noll · Ortogonalitet · Ekvationssystem · Rum · Linjärkombination · Inre produkt · Oberoende · Bas · Radrum · Kolonnrum · Nollrum · Gram-Schimdt · Egenvärde · Hölje · Linjäritet
Bild på euklidiska rummet
Vektoralgebra
Matriser
Elementär · Block · Enhet · Determinant · Norm · Rang · Transformation · Rotation · Invers · Cramers regel · Trappstegsform · Spår · Transponat · Gausselimination · Symmetri · Addition
Multilinjär algebra
Geometrisk algebra · Yttre algebra · Bivektor · Multivektor · Tensor
Konstruktioner
Delrum · Dualrum · Funktionsrum · Kvotrum · Tensorprodukt
Numerik
Kategori Kategori