Mostrando entradas con la etiqueta factorización QR. Mostrar todas las entradas
Mostrando entradas con la etiqueta factorización QR. Mostrar todas las entradas

miércoles, 2 de agosto de 2023

Factorización QR en SciLab

Factorización QR
Nota: Q es una matriz ortogonal y R una matriz triangular superior

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

1. 2.
3. 4.
-->[Q,R]=qr(A)
R =

- 3.1622777 - 4.4271887
0. - 0.6324555
Q =

- 0.3162278 - 0.9486833
- 0.9486833 0.3162278

-->Q*R
ans =

1. 2.
3. 4.

martes, 1 de agosto de 2023

Factorización QR de una matriz

Sea la matriz invertible $A=\begin{pmatrix}2&-1&0\\0&0&-2\\0&2&-1\end{pmatrix}$. Los vectores columna de esta matriz son $a^{1}=\begin{pmatrix}2&0&0\end{pmatrix}$, $a^{2}=\begin{pmatrix}-1&0&2\end{pmatrix}$, $a^{3}=\begin{pmatrix}0&-2&-1\end{pmatrix}$. Los vectores que constituyen una base ortogonal son $p^{i}\;,\,i=1,2,3$ podemos obtenerlos por el método de Gram-Schmidt

$u^{1}=a^1=\begin{pmatrix}2\\0\\0\end{pmatrix}$

$u^{2}=a^2-\langle a^2,u^1 \rangle \,u^1=\begin{pmatrix}0\\0\\2\end{pmatrix}$

$u^{3}=a^3-\langle a^3,u^1\rangle\,u^1 - \langle u^3,u^2\rangle \,u^2=a^{3}-0\,p^{1}+\dfrac{1}{2}\,p^{2}=\begin{pmatrix}0\\-2\\0\end{pmatrix}$
luego la matriz de paso a la nueva base es la siguiente matriz ortogonal $P=\begin{pmatrix}2&0&0\\0&0&-2\\0&2&0\end{pmatrix}$
con lo que una matriz ortonormal se obtiene normalizando los vectores columnas de la anterior (los vectores de la base ortogonal): $q_1=\dfrac{u^1}{\left\|u^1\right\|}$, $q_2=\dfrac{u^2}{\left\|u^2\right\|}$, $q_3=\dfrac{u^3}{\left\|u^3\right\|}$ por tanto
$Q=\begin{pmatrix}1&0&0\\0&0&-1\\0&1&0\end{pmatrix}$, como puede comprobarse por la definición de matriz ortogonal: $Q^t=Q^{-1}$, esto es $QQ^t=I$



Queremos expresar la matriz $A$ de la forma $A=QR$, siendo $Q$ una matriz ortogonal (que ya hemos obtenido a partir de las coordenadas de los vectores de la nueva base $\{p^i\}\,,i=1,2,3$) dispuestos en columnas y normalizados) y $R$ una matriz triangular superior.
Ya tenemos la matriz ortogonal $Q$. Veamos ahora cómo podemos determinar la matriz triangular superior $R$:
  De las ecuaciones escritas arriba podemos escribir, en forma matricial, que $A=P-PM$, y por tanto, $A=P(I+M)$, donde $I$ es la matriz identidad y $M$ puede verse fácilmente que es $\begin{pmatrix}0&m_{12}&m_{13}\\0&0&m_{23}\\0&0&0\end{pmatrix}$, siendo sus coeficientes de la forma $m_{ij}=\dfrac{a^j\,p^i}{\left\|p^i\right\|^2}\,\text{para}\,j\gt i$
Entonces, como al normalizar los vectores columna se han dividido sus coordenadas, $p^{i}\,,i=1,2,3$, por la norma respectiva de cada vector, $\left\|p^i\right\|$, tenemos que $A=P(I+M)=QD(I+M)=Q\,(D(I+M))$, y como esto debe ser igual a $QR$, se tiene que $R=D(I+M)$, siendo $D$ una matriz diagonal que, como acabamos de justificar, resulta ser $D=(d_{ii})$, con $d_{ii}=\left\|p^i\right\|$; y, en nuestro caso, resulta ser $D=\begin{pmatrix}2&0&0\\0&2&0\\0&0&2\end{pmatrix}$, por lo que la matriz triangular superior es $R=\begin{pmatrix}2&-1&0\\0&2&-1\\0&0&2\end{pmatrix}$. Así, una descomposción $QR$ de $A$ puede comprobarse que es $A=\begin{pmatrix}1&0&0\\0&0&-1\\0&1&0\end{pmatrix}\begin{pmatrix}2&-1&0\\0&2&-1\\0&0&2\end{pmatrix}$. $\square$

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$