domingo, 18 de diciembre de 2022

Factorización $QR$ de una matriz con GNU Octave

Una matriz $A$ no singular puede descomponerse (factorizarse) de la forma $A=QR$, donde $Q$ es una matriz ortogonal y $R$ es una matriz triangular superior. En partircular, si los elementos de la diagonal de $L$ son unos, denominamos a dicha factorización $LU$ de Crout. A modo de ejemplo, voy a resolver la factorización $LU$ de Crout de la siguiente matriz de orden $3$ $$A=\begin{pmatrix}1&-1&2\\ 1&2&2 \\ 1&1&-1 \end{pmatrix}$$ utilizando GNU Octave (de manera automática)-

Mediante el uso de la herramienta GNU Octave voy a resolver el sistema escalonando por Gauss la matriz ampliada, con pivotamiento por columnas, obteniendo así una matriz equivalente (en cuanto a la solución del sistema) de tipo triangular superior:

 >> A=[1,-1,2;1,2,2;1,1,-1]
A =

   1  -1   2
   1   2   2
   1   1  -1

>> [Q,R]=qr(A)
Q =

  -0.5774   0.7715  -0.2673
  -0.5774  -0.6172  -0.5345
  -0.5774  -0.1543   0.8018

R =

  -1.7321  -1.1547  -1.7321
        0  -2.1602   0.4629
        0        0  -2.4054

Por tanto, podemos escribir $$\begin{pmatrix}1&-1&2\\ 1&2&2 \\ 1&1&-1 \end{pmatrix}=\begin{pmatrix}-0.5774 & 0.7715 & -0.2673 \\ -0.5774 & -0.6172 & -0.5345 \\ -0.5774 & -0.1543 & 0.8018 \end{pmatrix}\,\begin{pmatrix} -1.7321 & -1.1547 & -1.7321\\ 0 & -2.1602 & 0.4629 \\ 0 & 0 & -2.4054 \end{pmatrix}$$ Comprobémoslo, empleando también Octave. En efecto,
>> Q*R
ans =

   1  -1   2
   1   2   2
   1   1  -1

---

Observación

La descomposición $QR$ es la base del algoritmo QR que se utiliza para el cálculo de los vectores y valores propios de una matriz.

-oOo-

Referencias

[1] John W. Eaton; David Bateman; Søren Hauberg; Rik Wehbring, Free Your Numbers (Manual de GNU Octave), https://www.gnu.org/software/octave/octave.pdf

$\diamond$

No hay comentarios:

Publicar un comentario