QR-faktorisering

Från testwiki
Version från den 6 januari 2024 kl. 17.18 av imported>KitayamaBot (Se även: borttag av portal)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

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 kan uttryckas:

A=QR

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

Detta kan generaliseras till att A är en matris av format m×n där mn, då Q är en ortogonal (unitär) matris med format m×n och R är en övertriangulär matris med format n×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 har kolonnvektorerna 𝐮𝟏,𝐮𝟐,...𝐮𝐧 som är linjärt oberoende, kan man genom Gram-Schmidts ortogonaliseringsprocess bestämma vektorer 𝐯𝟏,𝐯𝟐,...𝐯𝐧 som är ortogonala. De gamla 𝐮-vektorerna kan nu skrivas som linjärkombinationer av de nya 𝐯-vektorerna:

𝐮𝟏=r11𝐯𝟏
𝐮𝟐=r12𝐯𝟏+r22𝐯𝟐
...
𝐮𝐧=r1n𝐯𝟏+...+rnn𝐯𝐧

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

A=QR=(𝐯𝟏𝐯𝟐𝐯𝐧)(r11r12r1n0r22r2n00rnn)

𝐯-vektorerna är ortogonala är Q ortogonal (unitär om vektorerna är komplexa).

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

R=IR=QHQR=QHA

Så att R kan beräknas genom en enkel matrismultiplikation (QH står för det hermiteska konjugatet till 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 tidskomplexitetO(n3).

För beräkningen tas speciella Householdertransformationer fram. Man utgår från en vektor 𝐱 och tar ett tal a så att 𝐱=|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 𝐱, om vektorn är komplex bör a väljas genom:

a=xeiargx1.

Sedan konstrueras Householdertransformationen Q på följande sätt (𝐞1 är vektorn (1,0,...,0)T):

𝐮=𝐱a𝐞1
𝐯=𝐮𝐮
Q=I2𝐯𝐯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å

Q1A=(a1c12c1m0A0)

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

Qk=(Ik100Qk)

Vid multiplikation med Q2 fås alltså en matris Q2Q1A som är lika stor som A. Ur denna matris läser man ut A som är två steg mindre än A, tar den första kolonnen och konstruerar Q3 varur man konstruerar Q3 enligt ovan.

Sedan upprepas detta k=min(m1,n) steg, då man fått

R=QkQk1...Q1A

där R är övertriangulär och

Q=Q1Q2...Qk

är en unitär matris (eftersom Householdertransformationer är unitära). Alltså är 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𝐱=𝐛 förenklas detta om A är QR-faktoriserad. Lösningen ges i vanliga fall av

AHA𝐱=AH𝐛

Om A=QR ger vänsterledet

AHA𝐱=(QR)HQR𝐱=RHQHQR𝐱=RHR𝐱

och högerledet

AH𝐛=(QR)H𝐛=RHQH𝐛

så att ekvationen blir

RHR𝐱=RHQH𝐛R𝐱=QH𝐛

som är ett väldigt lättlöst ekvationsysstem eftersom 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=QR, då det ur räknelagarna för determinanten att

detA=detQdetR.

Eftersom Q är unitär är |detQ|=1, vilket ger:

|detA|=|detR|=|inrii|

där rii ä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=1nλi|=|i=1nrii|

där λ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=|irii|

där σi är A:s singulärvärden.

Se även


Mall:Linjär-algebra