Descomposició QR

En àlgebra lineal, una descomposició QR (també anomenada factorització QR) d'una matriu és una descomposició d'una matriu A en el producte A=QR d'una matriu ortogonal Q per una matriu triangular superior R (de l'anglès right, dreta, ja que una matriu triangular superior té tots els seus elements no-nuls a sobre i a la dreta de la diagonal principal –inclosa–). La descomposició QR es fa servir en la resolució de problemes de mínims quadrats, i és la base per un algorisme especial pel càlcul dels valors propis d'una matriu, l'algorisme QR.

Si An columnes linealment independents, llavors les primeres n columnes de Q configuren una base ortonormal de l'espai de columnes d'A. Concretament, les primeres k columnes de Q formen una base ortonormal per a l'espai vectorial generat per les primeres k columnes d'A, per qualsevol 1≤kn.[1] El fet que tota columna k d'A només depengui de les primeres k columnes de Q és l'argument bàsic per tal que la matriu R sigui triangular.[1]

Definicions

Matrius quadrades

Qualsevol matriu real quadrada A es pot descompondre com a

A = Q R , {\displaystyle A=QR,\,}

on Q és una matriu ortogonal (les seves columnes són vectors unitaris ortogonals, la qual cosa implica que QTQ = I) i R és una matriu triangular superior. Aquesta definició es pot generalitzar al cas d'una matriu quadrada complexa A i una matriu unitària Q. Si A és invertible, llavors la descomposició és única si s'afegeix la hipòtesi que els elements de la diagonal de R siguin positius.

Matrius rectangulars

En un cas més general, es pot factoritzar una matriu complexa A m×n, amb mn, com el producte d'una matriu unitària Q m×m i una matriu triangular superior R m×n. Com que les últimes (mn) files d'una matriu triangular superior m×n són entrades a zero, de vegades és útil segmentar la matriu R, o bé tant R com Q:

A = Q R = Q [ R 1 0 ] = [ Q 1 , Q 2 ] [ R 1 0 ] = Q 1 R 1 , {\displaystyle A=QR=Q{\begin{bmatrix}R_{1}\\0\end{bmatrix}}={\begin{bmatrix}Q_{1},Q_{2}\end{bmatrix}}{\begin{bmatrix}R_{1}\\0\end{bmatrix}}=Q_{1}R_{1},}

on R1 és una matriu triangular superior n×n, Q1 és m×n, Q₂ és m×(mn), i tant Q1 com Q₂ tenen columnes ortogonals.

Golub & Van Loan (1996, §5.2) anomenen Q1R1 la factorització QR aprimada d'A; per la seva banda, Trefethen & Bau l'anomenen factorització QR reduïda.[1]

Si A té rang complet n i s'afegeix la hipòtesi que els elements de la diagonal de R1 siguin positius, llavors R1 i Q1 són úniques, però en general Q₂ no ho és. En aquest cas, R1 és igual al factor triangular superior de la factorització de Cholesky de A* A (= ATA si A és real).

Descomposicions QL, RQ i LQ

Anàlogament, es poden definir descomposicions QL, RQ, i LQ, on L és una matriu triangular inferior (de l'anglès lower, inferior).

Càlcul de la descomposició QR

Existeixen diversos mètodes per calcular la descomposició QR, com ara el procés d'ortogonalització de Gram–Schmidt, les transformacions de Householder o les rotacions de Givens. Cadascun té els seus avantatges i els seus desavantatges.

Mètode de Gram–Schmidt

Considerem el procés d'ortogonalització de Gram–Schmidt aplicat a les columnes de la matriu de rang complet per columnes A = [ a 1 , , a n ] {\displaystyle A=[\mathbf {a} _{1},\cdots ,\mathbf {a} _{n}]} , amb el producte escalar < v , w >= v T w {\displaystyle <\mathbf {v} ,\mathbf {w} >=\mathbf {v} ^{T}\mathbf {w} } (o < v , w >= v w {\displaystyle <\mathbf {v} ,\mathbf {w} >=\mathbf {v} ^{*}\mathbf {w} } pel cas complex).

Definim la projecció

p r o j e a = < e , a > < e , e > e . {\displaystyle \mathrm {proj} _{\mathbf {e} }\mathbf {a} ={\frac {<\mathbf {e} ,\mathbf {a} >}{<\mathbf {e} ,\mathbf {e} >}}\mathbf {e} .}

Llavors:

u 1 = a 1 , e 1 = u 1 u 1 u 2 = a 2 p r o j e 1 a 2 , e 2 = u 2 u 2 u 3 = a 3 p r o j e 1 a 3 p r o j e 2 a 3 , e 3 = u 3 u 3 u k = a k j = 1 k 1 p r o j e j a k , e k = u k u k {\displaystyle {\begin{aligned}\mathbf {u} _{1}&=\mathbf {a} _{1},&\mathbf {e} _{1}&={\mathbf {u} _{1} \over \|\mathbf {u} _{1}\|}\\\mathbf {u} _{2}&=\mathbf {a} _{2}-\mathrm {proj} _{\mathbf {e} _{1}}\,\mathbf {a} _{2},&\mathbf {e} _{2}&={\mathbf {u} _{2} \over \|\mathbf {u} _{2}\|}\\\mathbf {u} _{3}&=\mathbf {a} _{3}-\mathrm {proj} _{\mathbf {e} _{1}}\,\mathbf {a} _{3}-\mathrm {proj} _{\mathbf {e} _{2}}\,\mathbf {a} _{3},&\mathbf {e} _{3}&={\mathbf {u} _{3} \over \|\mathbf {u} _{3}\|}\\&\vdots &&\vdots \\\mathbf {u} _{k}&=\mathbf {a} _{k}-\sum _{j=1}^{k-1}\mathrm {proj} _{\mathbf {e} _{j}}\,\mathbf {a} _{k},&\mathbf {e} _{k}&={\mathbf {u} _{k} \over \|\mathbf {u} _{k}\|}\end{aligned}}}

Reescrivim ara les equacions anteriors de tal manera que els termes a i {\displaystyle \mathbf {a} _{i}} apareguin a l'esquerra, emprant el fet que els vectors e i {\displaystyle \mathbf {e} _{i}} són unitaris:

a 1 =< e 1 , a 1 > e 1 a 2 =< e 1 , a 2 > e 1 + < e 2 , a 2 > e 2 a 3 =< e 1 , a 3 > e 1 + < e 2 , a 3 > e 2 + < e 3 , a 3 > e 3 a k = j = 1 k < e j , a k > e j {\displaystyle {\begin{aligned}\mathbf {a} _{1}&=<\mathbf {e} _{1},\mathbf {a} _{1}>\mathbf {e} _{1}\\\mathbf {a} _{2}&=<\mathbf {e} _{1},\mathbf {a} _{2}>\mathbf {e} _{1}+<\mathbf {e} _{2},\mathbf {a} _{2}>\mathbf {e} _{2}\\\mathbf {a} _{3}&=<\mathbf {e} _{1},\mathbf {a} _{3}>\mathbf {e} _{1}+<\mathbf {e} _{2},\mathbf {a} _{3}>\mathbf {e} _{2}+<\mathbf {e} _{3},\mathbf {a} _{3}>\mathbf {e} _{3}\\&\vdots \\\mathbf {a} _{k}&=\sum _{j=1}^{k}<\mathbf {e} _{j},\mathbf {a} _{k}>\mathbf {e} _{j}\end{aligned}}}

on < e i , a i >= u i {\displaystyle <\mathbf {e} _{i},\mathbf {a} _{i}>=\|\mathbf {u} _{i}\|} . Això es pot escriure en forma matricial:

A = Q R {\displaystyle A=QR}

on:

Q = [ e 1 , , e n ] i R = ( < e 1 , a 1 > < e 1 , a 2 > < e 1 , a 3 > 0 < e 2 , a 2 > < e 2 , a 3 > 0 0 < e 3 , a 3 > ) . {\displaystyle Q=\left[\mathbf {e} _{1},\cdots ,\mathbf {e} _{n}\right]\qquad {\text{i}}\qquad R={\begin{pmatrix}<\mathbf {e} _{1},\mathbf {a} _{1}>&<\mathbf {e} _{1},\mathbf {a} _{2}>&<\mathbf {e} _{1},\mathbf {a} _{3}>&\ldots \\0&<\mathbf {e} _{2},\mathbf {a} _{2}>&<\mathbf {e} _{2},\mathbf {a} _{3}>&\ldots \\0&0&<\mathbf {e} _{3},\mathbf {a} _{3}>&\ldots \\\vdots &\vdots &\vdots &\ddots \end{pmatrix}}.}

Exemple

Considerem la descomposició de

A = ( 12 51 4 6 167 68 4 24 41 ) . {\displaystyle A={\begin{pmatrix}12&-51&4\\6&167&-68\\-4&24&-41\end{pmatrix}}.}

Recordem que una matriu ortogonal Q {\displaystyle Q} té la propietat

Q T Q = I . {\displaystyle {\begin{matrix}Q^{T}\,Q=I.\end{matrix}}}

Aleshores, podem calcular Q {\displaystyle Q} mitjançant Gram–Schmidt de la manera següent:

U = ( u 1 u 2 u 3 ) = ( 12 69 58 / 5 6 158 6 / 5 4 30 33 ) ; {\displaystyle U={\begin{pmatrix}\mathbf {u} _{1}&\mathbf {u} _{2}&\mathbf {u} _{3}\end{pmatrix}}={\begin{pmatrix}12&-69&-58/5\\6&158&6/5\\-4&30&-33\end{pmatrix}};}
Q = ( u 1 u 1 u 2 u 2 u 3 u 3 ) = ( 6 / 7 69 / 175 58 / 175 3 / 7 158 / 175 6 / 175 2 / 7 6 / 35 33 / 35 ) . {\displaystyle Q={\begin{pmatrix}{\frac {\mathbf {u} _{1}}{\|\mathbf {u} _{1}\|}}&{\frac {\mathbf {u} _{2}}{\|\mathbf {u} _{2}\|}}&{\frac {\mathbf {u} _{3}}{\|\mathbf {u} _{3}\|}}\end{pmatrix}}={\begin{pmatrix}6/7&-69/175&-58/175\\3/7&158/175&6/175\\-2/7&6/35&-33/35\end{pmatrix}}.}

Així, tenim

Q T A = Q T Q R = R ; {\displaystyle {\begin{matrix}Q^{T}A=Q^{T}Q\,R=R;\end{matrix}}}
R = Q T A = ( 14 21 14 0 175 70 0 0 35 ) . {\displaystyle {\begin{matrix}R=Q^{T}A=\end{matrix}}{\begin{pmatrix}14&21&-14\\0&175&-70\\0&0&35\end{pmatrix}}.}

Relació amb la descomposició RQ

La descomposició RQ transforma una matriu A en el producte d'una matriu triangular superior R per una matriu ortogonal Q. L'única diferència amb la descomposició QR és l'ordre d'aquestes matrius.

La descomposició QR és l'ortogonalització de Gram–Schmidt de les columnes d'A, començant des de la primera columna.

La descomposició RQ és l'ortogonalització de Gram–Schmidt de les files d'A, començant des de l'última fila.

Ús de transformacions de Householder

Transformació de Householder per una descomposició QR: l'objectiu és trobar una transformació lineal que canviï el vector x {\displaystyle x} en un vector de la mateixa longitud i que sigui col·lineal a e 1 {\displaystyle e_{1}} . Podríem usar una projecció ortogonal (Gram-Schmidt), però això podria ser numèricament inestable si els vectors x {\displaystyle x} i e 1 {\displaystyle e_{1}} són gairebé ortogonals. En lloc d'això, la transformació de Householder calcula la reflexió per la línia de punts (que és la bisectriu de l'angle entre x {\displaystyle x} i e 1 {\displaystyle e_{1}} ). L'angle màxim amb aquesta transformació és de 45 graus.

Una transformació de Householder és una transformació que pren un vector i en calcula la reflexió per un pla o hiperplà. Podem usar aquesta operació per calcular la descomposició QR d'una matriu A {\displaystyle A} m×n on mn.

Q es pot usar per reflectir un vector de tal manera que desapareguin totes les seves coordenades menys una.

Sigui x {\displaystyle \mathbf {x} } un vector columna real qualsevol de dimensió m d' A {\displaystyle A} tal que || x {\displaystyle \mathbf {x} } || = |α| per un escalar α. Si l'algorisme s'implementa mitjançant aritmètica de coma flotant, llavors α haurà de tenir el signe contrari de la k-sima coordenada de x {\displaystyle \mathbf {x} } , on x k {\displaystyle x_{k}} és la coordenada «pivot»; és a dir, totes les altres coordenades de x {\displaystyle \mathbf {x} } seran 0 en la forma triangular superior final d'A, sense pèrdua de dígits significatius. En el cas complex, establim

α = e i arg x k x {\displaystyle \alpha =-\mathrm {e} ^{\mathrm {i} \arg x_{k}}\|\mathbf {x} \|}

(Stoer & Bulirsch 2002, p. 225) i substituïm la transposició per la transposició conjugada en la construcció de Q que ara veurem.

Llavors, si denotem per e 1 {\displaystyle \mathbf {e} _{1}} el vector (1,0,...,0)T, ||·|| la norma euclidiana i I {\displaystyle I} és una matriu identitat m×m, definim:

u = x α e 1 , {\displaystyle \mathbf {u} =\mathbf {x} -\alpha \mathbf {e} _{1},}
v = u u , {\displaystyle \mathbf {v} ={\mathbf {u} \over \|\mathbf {u} \|},}
Q = I 2 v v T . {\displaystyle Q=I-2\mathbf {v} \mathbf {v} ^{T}.}

O, si A {\displaystyle A} és complexa,

Q = I ( 1 + w ) v v H {\displaystyle Q=I-(1+w)\mathbf {v} \mathbf {v} ^{H}} , amb w = x H v / v H x {\displaystyle w=\mathbf {x} ^{H}\mathbf {v} \mathbf {/} \mathbf {v} ^{H}\mathbf {x} }

on x H {\displaystyle \mathbf {x} ^{H}} és la transposada conjugada de x {\displaystyle \mathbf {x} } .

Ara, Q {\displaystyle Q} és una matriu m×m de Householder i

Q x = ( α , 0 , , 0 ) T . {\displaystyle Q\mathbf {x} =(\alpha ,0,\cdots ,0)^{T}.\,}

Aquest procés es pot repetir per transformar gradualment una matriu A m×n en forma triangular superior. Primer, multipliquem A per la matriu de Householder Q1 obtinguda quan escollim que x sigui la primera columna de la matriu. Això resulta en una matriu Q1A amb zeros a la columna de l'esquerra (excepte a la primera fila).

Q 1 A = [ α 1 | 0 | | A 0 | ] {\displaystyle Q_{1}A={\begin{bmatrix}\alpha _{1}&\vline &\star &\dots &\star \\\hline 0&\vline &&&\\\vdots &\vline &&A'&\\0&\vline &&&\end{bmatrix}}}

Això es pot repetir per A′ (obtinguda a partir de Q1A eliminant la primera fila i la primera columna), la qual cosa resulta en una matriu de Householder Q′₂. Notem que Q′₂ és més petita que Q1. Com que, de fet, volem que operi sobre Q1A en comptes de sobre A′, primer necessitem ampliar-la per l'extrem superior esquerre, amb un 1, o en general:

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

Després de t {\displaystyle t} iteracions d'aquest procés, on t = min ( m 1 , n ) {\displaystyle t=\min(m-1,n)} ,

R = Q t Q 2 Q 1 A {\displaystyle R=Q_{t}\cdots Q_{2}Q_{1}A}

és una matriu triangular superior. Així doncs, si denotem

Q = Q 1 T Q 2 T Q t T , {\displaystyle Q=Q_{1}^{T}Q_{2}^{T}\cdots Q_{t}^{T},}

tenim que A = Q R {\displaystyle A=QR} és una descomposició QR d' A {\displaystyle A} .

Aquest mètode té millor estabilitat numèrica que el mètode de Gram–Schmidt que hem vist abans.

La següent taula mostra el nombre d'operacions en el pas k-sim de la descomposició QR per transformacions de Householder, suposant una matriu quadrada de dimensió n.

Operació Nombre d'operacions en el pas k-sim
multiplicacions 2 ( n k + 1 ) 2 {\displaystyle 2(n-k+1)^{2}}
sumes ( n k + 1 ) 2 + ( n k + 1 ) ( n k ) + 2 {\displaystyle (n-k+1)^{2}+(n-k+1)(n-k)+2}
divisions 1 {\displaystyle 1}
arrels quadrades 1 {\displaystyle 1}

Sumant aquests nombres pels ( n 1 ) {\displaystyle (n-1)} passos (per a una matriu quadrada de dimensió n), la complexitat de l'algorisme (en termes de multiplicacions en coma flotant) ve donada per

2 3 n 3 + n 2 + 1 3 n 2 = O ( n 3 ) . {\displaystyle {\frac {2}{3}}n^{3}+n^{2}+{\frac {1}{3}}n-2=O(n^{3}).}

Exemple

Calculem la descomposició de

A = ( 12 51 4 6 167 68 4 24 41 ) . {\displaystyle A={\begin{pmatrix}12&-51&4\\6&167&-68\\-4&24&-41\end{pmatrix}}.}

Primer, hem de trobar una reflexió que transformi la primera columna d'A, el vector a 1 = ( 12 , 6 , 4 ) T {\displaystyle \mathbf {a} _{1}=(12,6,-4)^{T}} , en a 1 e 1 = ( 14 , 0 , 0 ) T . {\displaystyle \|\mathbf {a} _{1}\|\;\mathrm {e} _{1}=(14,0,0)^{T}.}

Ara,

u = x + α e 1 , {\displaystyle \mathbf {u} =\mathbf {x} +\alpha \mathbf {e} _{1},}

i

v = u u . {\displaystyle \mathbf {v} ={\mathbf {u} \over \|\mathbf {u} \|}.}

Aquí,

α = 14 {\displaystyle \alpha =-14} i x = a 1 = ( 12 , 6 , 4 ) T {\displaystyle \mathbf {x} =\mathbf {a} _{1}=(12,6,-4)^{T}}

Per tant,

u = ( 2 , 6 , 4 ) T = ( 2 ) ( 1 , 3 , 2 ) T {\displaystyle \mathbf {u} =(-2,6,-4)^{T}=({2})(-1,3,-2)^{T}} i v = 1 14 ( 1 , 3 , 2 ) T {\displaystyle \mathbf {v} ={1 \over {\sqrt {14}}}(-1,3,-2)^{T}} , i llavors
Q 1 = I 2 14 14 ( 1 3 2 ) ( 1 3 2 ) {\displaystyle Q_{1}=I-{2 \over {\sqrt {14}}{\sqrt {14}}}{\begin{pmatrix}-1\\3\\-2\end{pmatrix}}{\begin{pmatrix}-1&3&-2\end{pmatrix}}}
= I 1 7 ( 1 3 2 3 9 6 2 6 4 ) {\displaystyle =I-{1 \over 7}{\begin{pmatrix}1&-3&2\\-3&9&-6\\2&-6&4\end{pmatrix}}}
= ( 6 / 7 3 / 7 2 / 7 3 / 7 2 / 7 6 / 7 2 / 7 6 / 7 3 / 7 ) . {\displaystyle ={\begin{pmatrix}6/7&3/7&-2/7\\3/7&-2/7&6/7\\-2/7&6/7&3/7\\\end{pmatrix}}.}

Notem ara que:

Q 1 A = ( 14 21 14 0 49 14 0 168 77 ) , {\displaystyle Q_{1}A={\begin{pmatrix}14&21&-14\\0&-49&-14\\0&168&-77\end{pmatrix}},}

de tal manera que tenim gairebé una matriu triangular. Només hem de posar a zero l'entrada (3, 2).

Prenem el menor (1, 1), i apliquem de nou el procés per

A = M 11 = ( 49 14 168 77 ) . {\displaystyle A'=M_{11}={\begin{pmatrix}-49&-14\\168&-77\end{pmatrix}}.}

Pel mateix mètode que hem vist abans, obtenim la matriu de la transformació de Householder

Q 2 = ( 1 0 0 0 7 / 25 24 / 25 0 24 / 25 7 / 25 ) {\displaystyle Q_{2}={\begin{pmatrix}1&0&0\\0&7/25&-24/25\\0&-24/25&-7/25\end{pmatrix}}}

després de realitzar una suma directa amb 1 per assegurar que el següent pas del procés funciona correctament.

Trobem

Q = Q 1 T Q 2 T = ( 6 / 7 69 / 175 58 / 175 3 / 7 158 / 175 6 / 175 2 / 7 6 / 35 33 / 35 ) {\displaystyle Q=Q_{1}^{T}Q_{2}^{T}={\begin{pmatrix}6/7&69/175&-58/175\\3/7&-158/175&6/175\\-2/7&-6/35&-33/35\end{pmatrix}}}

Llavors

Q = Q 1 T Q 2 T = ( 0 , 8571 0 , 3943 0 , 3314 0 , 4286 0 , 9029 0 , 0343 0 , 2857 0 , 1714 0 , 9429 ) {\displaystyle Q=Q_{1}^{T}Q_{2}^{T}={\begin{pmatrix}0,8571&0,3943&-0,3314\\0,4286&-0,9029&0,0343\\-0,2857&-0,1714&-0,9429\end{pmatrix}}}
R = Q 2 Q 1 A = Q T A = ( 14 21 14 0 175 70 0 0 35 ) . {\displaystyle R=Q_{2}Q_{1}A=Q^{T}A={\begin{pmatrix}14&21&-14\\0&-175&70\\0&0&35\end{pmatrix}}.}

La matriu Q és ortogonal, i R és triangular superior; per tant, A = QR és la descomposició QR que volíem.

Ús de rotacions de Givens

Hom pot calcular també una descomposició QR mitjançant rotacions de Givens. Cada rotació fa que un element de la subdiagonal de la matriu quedi a zero, formant així la matriu R. La concatenació de totes les rotacions de Givens forma la matriu ortogonal Q.

A la pràctica, per calcular les rotacions de Givens no es construeix la matriu sencera i es realitza una multiplicació de matrius. En comptes d'això, hom utilitza un procediment que realitza l'equivalent de la multiplicació per les matrius disperses de Givens, sense la feina addicional de tenir en compte els elements dispersos. El procediment de les rotacions de Givens és útil en situacions en què només un nombre relativament petit d'elements han d'esdevinir 0, i es pot paral·lelitzar de forma més senzilla que les transformacions de Householder.

Exemple

Calculem la descomposició de

A = ( 12 51 4 6 167 68 4 24 41 ) . {\displaystyle A={\begin{pmatrix}12&-51&4\\6&167&-68\\-4&24&-41\end{pmatrix}}.}

Primer, necessitem construir una matriu de rotació que posi a zero l'element de l'extrem inferior esquerre, a 31 = 4 {\displaystyle \mathbf {a} _{31}=-4} . Construïm aquesta matriu usant el mètode de rotació de Givens, i l'anomenem matriu G 1 {\displaystyle G_{1}} . Primer rotem el vector ( 6 , 4 ) {\displaystyle (6,-4)} , perquè estigui alineat amb l'eix de les X. Aquest vector té un angle θ = arctan ( ( 4 ) 6 ) {\displaystyle \theta =\arctan \left({-(-4) \over 6}\right)} . Construïm ara la matriu de rotació ortogonal de Givens, G 1 {\displaystyle G_{1}} :

G 1 = ( 1 0 0 0 cos ( θ ) sin ( θ ) 0 sin ( θ ) cos ( θ ) ) {\displaystyle G_{1}={\begin{pmatrix}1&0&0\\0&\cos(\theta )&-\sin(\theta )\\0&\sin(\theta )&\cos(\theta )\end{pmatrix}}}
( 1 0 0 0 0 , 83205 0 , 55470 0 0 , 55470 0 , 83205 ) {\displaystyle \approx {\begin{pmatrix}1&0&0\\0&0,83205&-0,55470\\0&0,55470&0,83205\end{pmatrix}}}

I el resultat de G 1 A {\displaystyle G_{1}A} té ara un zero a l'entrada a 31 {\displaystyle \mathbf {a} _{31}} .

G 1 A ( 12 51 4 7 , 21110 125 , 6396 33 , 83671 0 112 , 6041 71 , 83368 ) {\displaystyle G_{1}A\approx {\begin{pmatrix}12&-51&4\\7,21110&125,6396&-33,83671\\0&112,6041&-71,83368\end{pmatrix}}}

De forma semblant, podem crear matrius de Givens G 2 {\displaystyle G_{2}} i G 3 {\displaystyle G_{3}} , que anul·len els elements de la subdiagonal a 21 {\displaystyle a_{21}} i a 32 {\displaystyle a_{32}} , i formant així una matriu triangular R {\displaystyle R} . La matriu ortogonal Q T {\displaystyle Q^{T}} està formada per la concatenació de totes les matrius de Givens Q T = G 3 G 2 G 1 {\displaystyle Q^{T}=G_{3}G_{2}G_{1}} . Així, tenim G 3 G 2 G 1 A = Q T A = R {\displaystyle G_{3}G_{2}G_{1}A=Q^{T}A=R} , i la descomposició QR és A = Q R {\displaystyle A=QR} .

Relació amb el determinant i el producte dels valors propis

Podem usar la descomposició QR per trobar el valor absolut del determinant d'una matriu quadrada. Suposem que una matriu A es descompon com a A = Q R {\displaystyle A=QR} . Aleshores tenim

det ( A ) = det ( Q ) det ( R ) . {\displaystyle \det(A)=\det(Q)\cdot \det(R).}

Com que Q és unitària, | det ( Q ) | = 1 {\displaystyle |\det(Q)|=1} . Per tant,

| det ( A ) | = | det ( R ) | = | i r i i | , {\displaystyle |\det(A)|=|\det(R)|={\Big |}\prod _{i}r_{ii}{\Big |},}

on r i i {\displaystyle r_{ii}} són les entrades de la diagonal de R.

Addicionalment, com que el determinant és igual al producte dels valors propis, tenim

| i r i i | = | i λ i | , {\displaystyle {\Big |}\prod _{i}r_{ii}{\Big |}={\Big |}\prod _{i}\lambda _{i}{\Big |},}

on λ i {\displaystyle \lambda _{i}} són els valors propis d' A {\displaystyle A} .

Podem estendre les propietats anteriors a matrius complexes no quadrades A {\displaystyle A} , tot substituint el concepte «valor propi» per «valor singular».

Suposem que tenim una descomposició QR per una matriu no quadrada A:

A = Q ( R 0 ) , Q Q = I , {\displaystyle A=Q{\begin{pmatrix}R\\\mathbf {0} \end{pmatrix}},\qquad Q^{*}Q=I,}

on 0 {\displaystyle \mathbf {0} } és una matriu nul·la i Q {\displaystyle Q} és una matriu unitària.

A partir de les propietats de la descomposició en valors singulars i del determinant d'una matriu, tenim

| i r i i | = i σ i , {\displaystyle {\Big |}\prod _{i}r_{ii}{\Big |}=\prod _{i}\sigma _{i},}

on σ i {\displaystyle \sigma _{i}} són els valors singulars d' A {\displaystyle A} .

Notem que els valors singulars d' A {\displaystyle A} i R {\displaystyle R} són idèntics, encara que els valors propis complexos poden ser diferents. Tot i això, si A és quadrada, es compleix que

i σ i = | i λ i | . {\displaystyle {\prod _{i}\sigma _{i}}={\Big |}{\prod _{i}\lambda _{i}}{\Big |}.}

És a dir, la descomposició QR es pot usar de forma eficient per calcular el producte dels valors propis o els valors singulars d'una matriu.

Ús de pivot per columnes

La descomposició QR amb pivots per columnes introdueix una matriu permutació P:

A P = Q R {\displaystyle AP=QR} o, equivalentment, A = Q R P T {\displaystyle A=QRP^{T}}

El pivot per columnes és útil quan A té rang deficient (o gairebé deficient), o bé quan hom sospita que pot ser-ho. També pot millorar la precisió numèrica. Habitualment s'escull la matriu P de tal manera que els elements de la diagonal de R siguin no-creixents: | r 11 | | r 22 | | r n n | {\displaystyle |r_{11}|\geq |r_{22}|\geq \ldots \geq |r_{nn}|} . Aquest mètode es pot usar per trobar el rang (numèric) d'A amb un cost computacional menor que el d'una descomposició en valors singulars; de fet, aquesta és la base dels anomenats algorismes QR reveladors del rang.

Resolució de problemes de la inversa lineal

En comparació al càlcul directe de la inversa d'una matriu, les solucions per la inversa que utilitzen la descomposició QR són numèricament més estables, atès que tenen un nombre de condició més reduït [Parker, Geophysical Inverse Theory, Ch1.13].

Per resoldre el sistema d'equacions lineals subdeterminat ( m < n {\displaystyle m<n} ) A x = b {\displaystyle Ax=b} on la matriu A té dimensions m × n {\displaystyle m\times n} i rang m {\displaystyle m} , primer trobem la descomposició QR de la transposada d'A: A T = Q R {\displaystyle A^{T}=QR} , on Q és una matriu ortogonal (és a dir, Q T = Q 1 {\displaystyle Q^{T}=Q^{-1}} ), i R té una forma especial: R = [ R 1 0 ] {\displaystyle R={\begin{bmatrix}R_{1}\\0\end{bmatrix}}} . Aquí, R 1 {\displaystyle R_{1}} és una matriu triangular superior quadrada m × m {\displaystyle m\times m} , i la matriu nul·la té dimensió ( n m ) × m {\displaystyle (n-m)\times m} . Després d'alguns càlculs, hom pot demostrar que una solució al problema de la matriu inversa es pot expressar com:

x = Q [ ( R 1 T ) 1 b 0 ] {\displaystyle x=Q{\begin{bmatrix}(R_{1}^{T})^{-1}b\\0\end{bmatrix}}}

on, per trobar R 1 1 {\displaystyle R_{1}^{-1}} es pot fer servir el mètode de reducció de Gauss o bé calcular directament ( R 1 T ) 1 b {\displaystyle (R_{1}^{T})^{-1}b} per substitucions endavant. Aquesta última tècnica té major precisió numèrica i necessita menys càlculs.

Per trobar una solució, x ^ {\displaystyle {\hat {x}}} , al sistema sobredeterminat ( m n {\displaystyle m\geq n} ) A x = b {\displaystyle Ax=b} que minimitzi la norma A x ^ b {\displaystyle \|A{\hat {x}}-b\|} , trobem primer la descomposició QR d'A: A = Q R {\displaystyle A=QR} . Ara, hom pot expressar la solució com x ^ = R 1 1 ( Q 1 T b ) {\displaystyle {\hat {x}}=R_{1}^{-1}(Q_{1}^{T}b)} , on Q 1 {\displaystyle Q_{1}} és una matriu m × n {\displaystyle m\times n} que conté les primeres n {\displaystyle n} columnes de la base ortonormal completa Q {\displaystyle Q} , i on R 1 {\displaystyle R_{1}} és com abans. De la mateixa manera que en el cas subdeterminat, hom pot fer servir substitucions enrere per calcular aquest x ^ {\displaystyle {\hat {x}}} sense haver d'invertir R 1 {\displaystyle R_{1}} de forma explícita.

Referències

  1. 1,0 1,1 1,2 L. N. Trefethen and D. Bau, Numerical Linear Algebra (SIAM, 1997).

Vegeu també

Bibliografia

  • Golub, Gene H.; Van Loan, Charles F. Matrix computations. 3. ed.. Baltimore, Md. [u.a.]: Johns Hopkins Univ. Press, 1996. ISBN 978-0-8018-5414-9. 
  • Johnson, Roger A. Horn; Charles R.. «Secció 2.8». A: Matrix analysis. 19. print.. Cambridge [u.a.]: Cambridge Univ. Press, 2005. ISBN 0-521-38632-2. 
  • al.], William H. Press ... [et. «Secció 2.10.». A: Numerical recipes : the art of scientific computing. 3rd ed.. Cambridge, UK: Cambridge University Press, 2007. ISBN 978-0-521-88068-8.  Arxivat 2012-03-19 a Wayback Machine.
  • Stoer, Josef; Bartels, R. Bulirsch; translated by R.; Gautschi,, W.; Witzgall, C.. Introduction to numerical analysis. 3rd ed.. Nova York: Springer, 2002. ISBN 0-387-95452-X. 

Enllaços externs

  • Online Matrix Calculator Arxivat 2008-12-12 a Wayback Machine. Calcula la descomposició QR de matrius
  • LAPACK users manual proporciona detalls de subrutines per calcular la descomposició QR
  • Mathematica users manual Arxivat 2006-11-22 a Wayback Machine. proporciona detalls i exemples de rutines per calcular la descomposició QR
  • ALGLIB inclou un port parcial de LAPACK a C++, C#, Delphi, etc.
  • Eigen::QR Inclou una implementació en C++ de la descomposició QR
  • Into Arxivat 2010-07-09 a Wayback Machine. conté una implementació de codi obert en C++ per la descomposició QR