Suponemos también que el sistema anterior tiene solución única, lo que es equivalente a \(\mathrm{det}((a_{ij})_{i,j=1,\ldots,n})\neq 0\).
Un sistema de ecuaciones lineal se suele escribir en forma matricial de la forma siguiente: \[ \mathbf{A}\cdot\mathbf{x}=\mathbf{b}, \] donde \(\mathbf{A}\) es la denominada matriz del sistema, \(\mathbf{x}\) el vector de incógnitas y \(\mathbf{b}\), el vector de términos independientes:
\[ \mathbf{A}=\begin{bmatrix}a_{11}&a_{12}&\ldots&a_{1n} \\a_{21}&a_{22}&\ldots&a_{2n} \\\vdots&\vdots&\ddots&\vdots \\a_{n1}&a_{n2}&\ldots&a_{nn} \\\end{bmatrix},\quad \mathbf{x}=\begin{bmatrix}x_{1} \\x_2 \\\vdots \\x_n \\\end{bmatrix},\quad \mathbf{b}=\begin{bmatrix}b_{1} \\b_2 \\\vdots \\b_n \\\end{bmatrix}. \]
En este curso supondremos que los sistemas de ecuaciones son compatibles determinados, es decir, tienen solución única.
El Teorema de Rouché Frobenius dice que un sistema de ecuaciones lineal es compatible si el rango de la matriz del sistema \(\mathbf{A}\) coincide con el rango de la matriz ampliada que se construye añadiendo como columna el vector de términos independientes a la matriz \(\mathbf{A}\): \(\mathbf{\overline{A}}=(\mathbf{A}|\mathbf{b})\).
Es decir, si \(\mathrm{rank}(\mathbf{A})=\mathrm{rank}(\mathbf{\overline{A}})\), el sistema es compatible. Si además \(\mathrm{rank}(\mathbf{A})=\mathrm{rank}(\mathbf{\overline{A}})=n\), el sistema es compatible determinado, es decir, tiene solución única.
Consideremos el sistema de ecuaciones siguiente: \[ \left. \begin{align*} E_1 &: 6x_1+5x_2+3x_3= 1,\\ E_2 &:6x_1+4x_2+2x_3= -1,\\ E_3 &: 3x_1+6x_2+4x_3= 2.\\ \end{align*} \right\} \] o escrito en forma matricial: \[ \begin{bmatrix}6&5&3 \\6&4&2 \\3&6&4 \\\end{bmatrix}\cdot \begin{bmatrix}x_{1} \\x_2 \\x_3 \\\end{bmatrix}=\begin{bmatrix}1 \\-1 \\2 \\\end{bmatrix}. \] Puede comprobarse que el sistema anterior es compatible determinado y tiene como solución:
\[ x_1=0.3333333,\quad x_2=-3.5,\quad x_3=5.5. \]
En este capítulo, vamos a ver métodos directos para resolver un sistema de ecuaciones de \(n\) ecuaciones y \(n\) variables o incógnitas:
Un método directo para resolver un sistema lineal se caracteriza porque lo resuelve en un número finito de pasos.
Para simplificar el sistema lineal podemos realizar las operaciones siguientes, es decir, que cualquier operación de las que sigue transforma el sistema lineal en un sistema lineal equivalente con la misma solución:
Consideremos el sistema anterior: \[ \left. \begin{align*} E_1 &: 6x_1+5x_2+3x_3= 1,\\ E_2 &:6x_1+4x_2+2x_3= -1,\\ E_3 &: 3x_1+6x_2+4x_3= 2.\\ \end{align*} \right\} \] Realizamos las operaciones siguientes:
\((E_3-2E_1)\rightarrow (E_3)\): \[ \left. \begin{align*} E_1 &: 3x_1 & +6x_2+4x_3& = 2,\\ E_2 &: & -8x_2 -6x_3 & = -5,\\ E_3 &: & -7x_2-5x_3& = -3.\\ \end{align*} \right\} \]
\((E_3-\frac{7}{8}E_2)\rightarrow (E_3)\): \[ \left. \begin{align*} E_1 &: 3x_1 & +6x_2+4x_3& = 2,\\ E_2 &: & -8x_2 -6x_3 & = -5,\\ E_3 &: & 0.25x_3& = 1.375.\\ \end{align*} \right\} \] Fijarse que hemos transformado el sistema de ecuaciones en un sistema de ecuaciones donde la matriz del sistema es triangular superior.
La resolución del sistema para este tipo de matrices es sencilla: basta empezar por la última e ir sustituyendo los valores obtenidos en las demás: \[ x_3=\frac{1.375}{0.25}=5.5,\quad x_2=\frac{-5+6\cdot 5.5}{-8}=-3.5,\quad x_1=\frac{2-4\cdot 5.5-6\cdot (-3.5)}{3}=0.3333333. \]
Escribamos matricialmente las operaciones realizadas:
\[ \begin{bmatrix}6&5&3&1 \\6&4&2&-1 \\3&6&4&2 \\\end{bmatrix}\rightarrow \begin{bmatrix}3&6&4&2 \\6&4&2&-1 \\6&5&3&1 \\\end{bmatrix}\rightarrow \begin{bmatrix}3&6&4&2 \\0&-8&-6&-5 \\0&-7&-5&-3 \\\end{bmatrix}\rightarrow \begin{bmatrix}3&6&4&2 \\0&-8&-6&-5 \\0&0&0.25&1.375 \\\end{bmatrix} \] Si no hubiésemos permutado las filas primera y tercera, las matrices resultantes de reducir la matriz del sistema a una matriz triangular superior serían: \[ \begin{bmatrix}6&5&3&1 \\6&4&2&-1 \\3&6&4&2 \\\end{bmatrix}\rightarrow \begin{bmatrix}6&5&3&1 \\0&-1&-1&-2 \\0&3.5&2.5&1.5 \\\end{bmatrix}\rightarrow \begin{bmatrix}6&5&3&1 \\0&-1&-1&-2 \\0&0&-1&-5.5 \\\end{bmatrix} \] Las soluciones del sistema ahora son fáciles de hallar: \[ x_3=\frac{-5.5}{-1}=5.5,\quad x_2=\frac{-2+5.5}{-1}=-3.5,\quad x_1=\frac{1-3\cdot 5.5-5\cdot (-3.5)}{6}=0.3333333. \] Acabamos de descubrir el método de eliminación de Gauss con sustitución hacia atrás.
Consideramos un sistema de ecuaciones: \[ \left. \begin{align*} E_1&: a_{11}x_1+a_{12}x_2+\cdots +a_{1n}x_n= b_1,\\ E_2& : a_{21}x_1+a_{22}x_2+\cdots +a_{2n}x_n= b_2,\\ & \vdots \\ E_n& : a_{n1}x_1+a_{n2}x_2+\cdots +a_{nn}x_n= b_n, \end{align*} \right\} \] y denotamos por \(\overline{\mathbf{A}}\) la matriz ampliada del sistema:
\[ \overline{\mathbf{A}}=\begin{bmatrix}a_{11}&a_{12}&\ldots&a_{1n}&b_1 \\a_{12}&a_{22}&\ldots&a_{2n}&b_2 \\\vdots&\vdots&\ddots&\vdots&\vdots \\a_{n1}&a_{n2}&\ldots&a_{nn}&b_n \\\end{bmatrix}. \]
El método de eliminación de Gauss consiste en realizar operaciones del tipo vistas anteriormente de cara a transformar el sistema lineal en un sistema lineal equivalente cuya matriz del sistema sea triangular superior.
Resolver un sistema de ecuaciones cuya matriz sea triangular superior es relativamente sencillo. La solución del mismo puede hallarse usando la técnica de sustitución hacia atrás:
Consideremos un sistema de ecuaciones con matriz del sistema triangular superior: \[ \left. \begin{align*} E_1&: a_{11}x_1& +a_{12}x_2+\cdots + &a_{1n}x_n & = b_1,\\ E_2& : & a_{22}x_2+\cdots +& a_{2n}x_n & = b_2,\\ & \vdots &\vdots & &\vdots \\ E_n& : && a_{nn}x_n & = b_n, \end{align*} \right\} \]
La solución sería la siguiente: \[ \begin{align*} x_n & = \frac{b_n}{a_{nn}},\\ x_{n-1} &= \frac{b_{n-1}-a_{nn}x_n}{a_{n-1,n-1}},\\ \vdots & \\ x_i & = \frac{b_i-\displaystyle\sum_{j=i+1}^n a_{ij}x_j}{a_{ii}},\\ \vdots & \\ x_1 & = \frac{b_1-\displaystyle\sum_{j=2}^n a_{1j}x_j}{a_{11}}. \end{align*} \]
Todos los valores \(a_{ii}\neq 0\) son diferentes de \(0\), para \(i=1,2,\ldots,n\) ya que si algún \(a_{ii}=0\) fuese \(0\), el determinante del sistema sería \(0\) y el sistema no tendría solución única o sería incompatible y hemos dicho al principio del tema que suponemos que todos nuestros sistemas son compatibles con solución única.
En el ejemplo realizado anteriormente teníamos un sistema con matriz triangular superior.
Demostración
En el paso \(i\)-ésimo para calcular el valor de \(x_i\) realizamos \(n-i\) sumas/restas y \(n-i+1\) multiplicaciones/divisiones.
El número de operaciones total será, pues, \[ \sum_{i=1}^n ((n-i)+(n-i+1))=\sum_{i=1}^n (2(n-i)+1)=n+2\sum_{i=1}^{n-1} i=n+2\cdot\frac{n\cdot (n-1)}{2}=n^2. \]
Veamos cómo transformar un sistema lineal en otro equivalente con matriz del sistema triangular superior.
Es decir, cambiamos las filas \(2,3,\ldots,n\) haciendo que en la primera columna aparezcan ceros desde la componente \(2\) hasta la \(n\). La nueva matriz ampliada del sistema será:
\[ \overline{\mathbf{A}^{(2)}}=\begin{bmatrix}a_{11}&a_{12}&\ldots&a_{1n}&b_1 \\0&a_{22}^{(2)}&\ldots&a_{2n}^{(2)}&b_2^{(2)} \\\vdots&\vdots&\ddots&\vdots&\vdots \\0&a_{n2}^{(2)}&\ldots&a_{nn}^{(2)}&b_n^{(2)} \\\end{bmatrix}. \]
Es decir, cambiamos las filas \(3,\ldots,n\) haciendo que en la segunda columna aparezcan ceros desde la componente \(3\) hasta la \(n\). La nueva matriz ampliada del sistema será:
\[ \overline{\mathbf{A}^{(3)}}=\begin{bmatrix}a_{11}&a_{12}&a_{13}&\ldots&a_{1n}&b_1 \\0&a_{22}^{(2)}&a_{23}^{(2)}&\ldots&a_{2n}^{(2)}&b_2^{(2)} \\0&0&a_{33}^{(3)}&\ldots&a_{3n}^{(3)}&b_3^{(3)} \\\vdots&\vdots&\vdots&\ddots&\vdots&\vdots \\0&0&a_{n3}^{(3)}&\ldots&a_{nn}^{(3)}&b_n^{(3)} \\\end{bmatrix}. \]
\[ \overline{\mathbf{A}^{(k)}}=\begin{bmatrix}a_{11}&\ldots&\ldots&\ldots&\ldots&a_{1n}&b_1 \\\vdots&\vdots&\ddots&\vdots&\vdots&\vdots&\vdots \\0&\ldots&0&a_{kk}^{(k)}&\ldots&a_{kn}^{(k)}&b_{k}^{(k)} \\\vdots&\vdots&\vdots&\vdots&\vdots&\vdots&\vdots \\0&\ldots&0&a_{nk}^{(k)}&\ldots&a_{nn}^{(k)}&b_n^{(k)} \\\end{bmatrix}. \]
Realizamos las operaciones siguientes: \[ \left(E_j-\left(\frac{a_{jk}^{(k)}}{a_{kk}^{(k)}}\right)E_{k}\right)\longrightarrow (E_j), \] para \(j=k+1,\ldots,n\).
Es decir, cambiamos las filas \(k+1,\ldots,n\) haciendo que en la columna \(k\)-ésima aparezcan ceros desde la componente \(k+1\) hasta la \(n\). La nueva matriz ampliada del sistema será:
\[ \overline{\mathbf{A}^{(k+1)}}=\begin{bmatrix}a_{11}&\ldots&\ldots&\ldots&\ldots&a_{1n}&b_1 \\\vdots&\vdots&\ddots&\vdots&\vdots&\vdots&\vdots \\0&\ldots&0&a_{k+1,k+1}^{(k+1)}&\ldots&a_{k+1,n}^{(k+1)}&b_{k+1}^{(k+1)} \\\vdots&\vdots&\vdots&\vdots&\vdots&\vdots&\vdots \\0&\ldots&0&a_{n,k+1}^{(k+1)}&\ldots&a_{nn}^{(k+1)}&b_n^{(k+1)} \\\end{bmatrix}. \]
En el paso \(n-1\)-ésimo, la matriz del sistema que corresponderá a las \(n\) primeras columnas de la matriz ampliada del sistema \(\overline{\mathbf{A}^{(n)}}\) será triangular superior y el sistema se podrá resolver como hemos indicado anteriormente.
Los valores \(a_{kk}^{(k)}\) se denominan pivotes.
Escribamos cómo se calculan las componentes de la matriz \(\overline{\mathbf{A}^{(k+1)}}=(a_{ij}^{(k+1)})_{i,j=1,\ldots,n}\) en función de las componentes de la matriz \(\overline{\mathbf{A}^{(k)}}=(a_{ij}^{(k)})_{i,j=1,\ldots,n}\): \[ a_{ij}^{(k+1)}= \begin{cases} a_{ij}^{(k)}, & \mbox{si }i=1,\ldots,k,\ j=1,\ldots,n+1,\\ 0, &\mbox{si }i=k+1,\ldots,n,\ j=1,\ldots,k,\\ a_{ij}^{(k)}-\frac{a_{ik}^{(k)}}{a_{kk}^{(k)}}a_{kj}^{(k)}, &\mbox{si }i=k+1,\ldots,n,\ j=k+1,\ldots,n+1. \end{cases} \]
Consideremos el siguiente sistema de ecuaciones con \(5\) ecuaciones y \(5\) incógnitas: \[ \begin{align*} E_1: & x_1 & + x_2 & -3 x_3 & - x_4 & -2 x_5 & = 2,\\ E_2: & x_1 & +2 x_2 & +2 x_3 & & +3 x_5 & = 2,\\ E_3: & x_1 & - x_2 & +3 x_3& +2 x_4& & = 2,\\ E_4: & & x_2 & & +4 x_4 & - x_5 & = 3,\\ E_5: & x_1 & +3 x_2& + x_3 & & +5 x_5 & = 1. \end{align*} \] Vamos a ver las matrices que resultan aplicando el método de Gauss:
La solución del sistema será usando el método de sustitución hacia atrás: \[ \begin{align*} x_5 & =\frac{-1.575342}{1.931507}=-0.815603,\\ x_4 & =\frac{3-(-2.25)\cdot (-0.8156028)}{4.5625}=0.2553191,\\ x_3 & =\frac{0-12\cdot (-0.8156028)-5\cdot 0.2553191}{16}=0.5319149,\\ x_2 & =\frac{0-5\cdot (-0.8156028)-1\cdot 0.2553191-5\cdot 0.5319149}{1}=1.1631206,\\ x_1 & =\frac{2-(-2)\cdot (-0.8156028)-(-1)\cdot 0.2553191-(-3)\cdot 0.5319149-1\cdot 1.1631206}{1}=1.0567376. \end{align*} \]
INPUT número de incógnitas y ecuaciones
\(n\), matriz ampliada
\(\overline{\mathbf{A}}=(a_{ij})_{i=1,\ldots,n,j=1,\ldots,n+1}\).For k=1,...,n-1
(proceso de eliminación)
Sea
\(p\) el menor entero tal que
\(a_{pk}\neq 0\) (buscamos el primer elemento de la columna \(k\)-ésima que sea distinto de \(0\), si dicho elemento no existe, el sistema no tiene solución.)If
\(p\) no existe then el sistema no tiene solución.
If
\(p\neq k\) then realizar la operación
\((E_p)\leftrightarrow (E_k)\) (cambiar las filas \(p\) y \(k\))For
\(j=k+1,\ldots,n\) do
Set
\(m_{jk}=\frac{a_{jk}}{a_{kk}}\) (calculamos el valor por el que debemos multiplicar la fila \(j\)-ésima);Realizar la operación
\((E_j-m_{jk}E_k)\rightarrow (E_j)\). (cambiamos la fila \(j\)-ésima por la “antigua” fila \(j\)-ésima menos la fila \(k\)-ésima multiplicada por \(m_{jk}\))Set
\(x_n=\frac{a_{n,n+1}}{a_{nn}}\) (Resolvemos el sistema triangular del cuya matriz ampliada es \(\overline{\mathbf{A}^{(n)}}\)).For
\(i=n-1,\ldots,1\), set
\(x_i=\frac{a_{i,n+1}-\sum_{j=i+1}^n a_{ij}x_j}{a_{ii}}\).Dar la solución
\(x_1,\ldots,x_n\).El método de Gauss para resolver el sistema: \[ \begin{align*} E_1: & x_1 & + x_2 & -3 x_3 & - x_4 & -2 x_5 & = 2,\\ E_2: & x_1 & +2 x_2 & +2 x_3 & & +3 x_5 & = 2,\\ E_3: & x_1 & - x_2 & +3 x_3& +2 x_4& & = 2,\\ E_4: & & x_2 & & +4 x_4 & - x_5 & = 3,\\ E_5: & x_1 & +3 x_2& + x_3 & & +5 x_5 & = 1. \end{align*} \] se puede encontrar implementado en:
Vamos a contar el número de operaciones básicas (sumas/restas y multiplicaciones/divisiones) que requiere el método de Gauss para resolver un sistema de ecuaciones \(n\times n\).
Primero contemos el número de operaciones para pasar la matriz del sistema a una matriz triangular superior.
Recordemos que el método de Gauss consta de \(n-1\) pasos. Veamos cuántas operaciones realizamos en el paso \(k\)-ésimo, es decir, para pasar de la matriz \(\overline{\mathbf{A}^{(k)}}\) a la matriz \(\overline{\mathbf{A}^{(k+1)}}\), \(k=1,\ldots,n-1\):
En total, el número de operaciones básicas para pasar la matriz del sistema a una matriz triangular superior será: \[ \begin{align*} & \sum_{k=1}^{n-1} \left((n-k)\cdot (n-k+2)+(n-k)\cdot (n-k+1)\right)\\ & =\sum_{k=1}^{n-1} (n-k)(2(n-k)+3) = \sum_{k=1}^{n-1} k\cdot (2k+3)\\ & =2\sum_{k=1}^{n-1}k^2+3\sum_{k=1}^{n-1}k = \frac{1}{3} (n-1) n (2 n-1)+\frac{3}{2} (n-1) n \\ & = \frac{1}{6} (n-1) n (4 n+7) = \frac{2n^3}{3}+\frac{n^2}{2}-\frac{7n}{6}. \end{align*} \]
A continuación, tenemos que tener en cuenta el número de operaciones requerida para resolver un sistema triangular superior.
Recordemos que dicho valor ya está calculado y valía \(n^2\).
En resumen, el número total de operaciones básicas para resolver un sistema de ecuaciones \(n\times n\) usando el método de Gauss sería: \[ \frac{2n^3}{3}+\frac{n^2}{2}-\frac{7n}{6}+n^2 = \frac{2n^3}{3}+\frac{3n^2}{2}-\frac{7n}{6}. \]
Recordemos que en el paso \(k\)-ésimo del algoritmo de Gauss, de cara a hacer ceros en la columna \(k\)-ésima desde la componente \(j=k+1\) hasta la componente \(j=n\), hay que multiplicar la fila \(k\)-ésima por \(\frac{a_{jk}^{(k)}}{a_{kk}^{(k)}}\).
Los errores de redondeo se amplifican si el valor \(a_{kk}^{(k)}\) es pequeño. Por tanto, podemos modificar el algoritmo de Gauss eligiendo el valor de la columna \(k\)-ésima que maximiza \(|a_{jk}^{(k)}|\) desde \(j=k\) hasta \(j=n\). Llamemos \(j_{\mathrm{max}}\) al índice correspondiente a dicho valor.
A continuación, realizamos un cambio entre las filas \(k\) y \(j_{\mathrm{max}}\): \(E_{k}\leftrightarrow E_{j_{\mathrm{max}}}.\)
La modificación del algoritmo de Gauss usando la técnica anterior se denomina método de Gauss con pivotaje parcial.
Ilustremos la necesidad de realizar el pivotaje parcial con el siguiente ejemplo:
Consideremos el sistema de ecuaciones siguiente: \[ \left. \begin{align*} 0.010534x_1+0.02x_2= & -1,\\ x_1+2x_2= & 3. \end{align*} \right\} \] Suponemos que trabajamos con \(5\) dígitos significativos.
Resolver el sistema anterior es equivalente desde el punto de vista geométrico a hallar la intersección de las rectas: \(r_1: 0.010534x_1+0.02x_2= -1\) y \(r_2: x_1+2x_2= 3\).
Ahora bien, como el determinante de la matriz del sistema anterior tiene un valor pequeño (\(0.001068\)), las dos rectas anteriores serían “casi paralelas”. Esto implica que se trata de un problema inestable desde el punto de vista numérico.
La solución del sistema anterior usando en principio los dígitos necesarios sería: \[ x_1=-1928.8389513,\quad x_2=965.9194757. \]
Si resolvemos el sistema sin realizar pivotaje parcial y teniendo en cuenta que trabajamos con \(5\) cifras significativas, obtenemos la matriz triangular siguiente: \[ \begin{bmatrix}0.010534&0.02&-1 \\0&0.1014&97.931 \\\end{bmatrix}, \] cuya solución es: \[ x_2=\frac{97.931}{0.1014}=965.79,\quad x_1=\frac{-1-0.02\cdot 965.79}{0.010534}=\frac{-20.316}{0.010534}=-1928.6. \]
Si, en cambio, resolvemos el sistema realizando pivotaje parcial, hay que permutar inicialmente las filas \(1\) y \(2\) obteniendo la matriz triangular siguiente después de aplicar el algoritmo de Gauss a la matriz resultante de la permutación: \[ \begin{bmatrix}1&2&3 \\0&-0.001068&-1.0316 \\\end{bmatrix}, \] cuya solución es: \[ x_2=\frac{-1.0316}{-0.001068}=965.92,\quad x_1=\frac{3-2\cdot 965.92}{1}=\frac{-1928.8}{1}=-1928.8. \] Comprobamos que se comete menor error realizando pivotaje parcial.
INPUT número de incógnitas y ecuaciones
\(n\), matriz ampliada
\(\overline{\mathbf{A}}=(a_{ij})_{i=1,\ldots,n,j=1,\ldots,n+1}\).For k=1,...,n-1
(proceso de eliminación)
Sea
\(p\) el menor entero tal que
\(|a_{pk}|=\max_{j=k,\ldots,n}|a_{jk}|\).If
\(a_{pk}=0\), then el sistema no tiene solución.
If
\(p\neq k\) then realizar la operación
\((E_p)\leftrightarrow (E_k)\) (cambiar las filas \(p\) y \(k\))For
\(j=k+1,\ldots,n\) do
Set
\(m_{jk}=\frac{a_{jk}}{a_{kk}}\) (calculamos el valor por el que debemos multiplicar la fila \(j\)-ésima);Realizar la operación
\((E_j-m_{jk}E_k)\rightarrow (E_j)\). (cambiamos la fila \(j\)-ésima por la “antigua” fila \(j\)-ésima menos la fila \(k\)-ésima multiplicada por \(m_{jk}\))Set
\(x_n=\frac{a_{n,n+1}}{a_{nn}}\) (Resolvemos el sistema triangular del cuya matriz ampliada es \(\overline{\mathbf{A}^{(n)}}\)).For
\(i=n-1,\ldots,1\), set
\(x_i=\frac{a_{i,n+1}-\sum_{j=i+1}^n a_{ij}x_j}{a_{ii}}\).Dar la solución
\(x_1,\ldots,x_n\).Resolvamos el sistema propuesto anteriormente usando pivotaje parcial: \[ \begin{align*} E_1: & x_1 & + x_2 & -3 x_3 & - x_4 & -2 x_5 & = 2,\\ E_2: & x_1 & +2 x_2 & +2 x_3 & & +3 x_5 & = 2,\\ E_3: & x_1 & - x_2 & +3 x_3& +2 x_4& & = 2,\\ E_4: & & x_2 & & +4 x_4 & - x_5 & = 3,\\ E_5: & x_1 & +3 x_2& + x_3 & & +5 x_5 & = 1. \end{align*} \]
Segundo paso (hemos cambiado las filas \(2\) y \(3\)): \[ A^{(3)}=\begin{bmatrix}1&1&-3&-1&-2&2 \\0&-2&6&3&2&0 \\0&0&8&2.5&6&0 \\0&0&3&5.5&0&3 \\0&0&10&4&9&-1 \\\end{bmatrix}. \]
Tercer paso (hemos cambiado las filas \(3\) y \(5\)): \[ A^{(4)}=\begin{bmatrix}1&1&-3&-1&-2&2 \\0&-2&6&3&2&0 \\0&0&10&4&9&-1 \\0&0&0&4.3&-2.7&3.3 \\0&0&0&-0.7&-1.2&0.8 \\\end{bmatrix}. \]
La solución del sistema será usando el método de sustitución hacia atrás: \[ \begin{align*} x_5 & =\frac{1.337209}{-1.639535}=-0.815603,\\ x_4 & =\frac{3.3-(-2.7)\cdot (-0.8156028)}{4.3}=0.2553191,\\ x_3 & =\frac{-1-9\cdot (-0.8156028)-4\cdot 0.2553191}{10}=0.5319149,\\ x_2 & =\frac{0-2\cdot (-0.8156028)-3\cdot 0.2553191-6\cdot 0.5319149}{-2}=1.1631206,\\ x_1 & =\frac{2-(-2)\cdot (-0.8156028)-(-1)\cdot 0.2553191-(-3)\cdot 0.5319149-1\cdot 1.1631206}{1}=1.0567376. \end{align*} \]
Vamos a modificar ligeramente el pivotaje parcial de la forma que explicamos a continuación.
Dicha modificación es una mejora del pivotaje parcial en el sentido que se escalan las filas de la matriz del sistema a resolver por su máximo valor.
Concretamente, en primer lugar, calculamos el valor máximo en valor absoluto de cada fila \(i\)-ésima de la matriz del sistema a resolver \(\mathbf{A}\), \(n\times n\): \[ s_i=\max_{j=1,\ldots,n}|a_{ij}|. \] Dichos valores \(s_i\) sólo se calculan una vez al principio del algoritmo y no aumentan demasiado el coste computacional del mismo.
A continuación, imaginemos que estamos en el paso \(k\)-ésimo del algoritmo de Gauss. Entonces, en lugar de hallar el máximo de \(|a_{jk}^{(k)}|\) desde \(j=k\) hasta \(j=n\), hallamos el máximo de \(\frac{|a_{jk}^{(k)}|}{s_j}\) desde \(j=k\) hasta \(j=n\): \[ \max_{j=k,\ldots,n}\frac{|a_{jk}^{(k)}|}{s_j} \]
Es decir, “escalamos” cada fila por el valor \(s_j\) y hallamos el máximo de los valores escalados.
Llamemos \(j_{\mathrm{max}}\) a dicho valor.
Igual que en el pivotaje parcial, realizamos un cambio entre las filas \(k\) y \(j_{\mathrm{max}}\): \(E_{k}\leftrightarrow E_{j_{\mathrm{max}}}.\)
Resolvamos el sistema propuesto anteriormente usando pivotaje parcial escalado: \[ \begin{align*} E_1: & x_1 & + x_2 & -3 x_3 & - x_4 & -2 x_5 & = 2,\\ E_2: & x_1 & +2 x_2 & +2 x_3 & & +3 x_5 & = 2,\\ E_3: & x_1 & - x_2 & +3 x_3& +2 x_4& & = 2,\\ E_4: & & x_2 & & +4 x_4 & - x_5 & = 3,\\ E_5: & x_1 & +3 x_2& + x_3 & & +5 x_5 & = 1. \end{align*} \]
Los valores \(s_i\) son en este caso:
\[ 3, 3, 3, 4, 5. \]
Segundo paso (hemos cambiado las filas \(2\) y \(3\) ya que el máximo valor entre los valores \(\left|\frac{1}{3}\right|,\ \left|\frac{-2}{3}\right|,\ \left|\frac{1}{4}\right|,\ \left|\frac{2}{5}\right|\) vale \(\left|\frac{-2}{3}\right|\)): \[ A^{(3)}=\begin{bmatrix}1&1&-3&-1&-2&2 \\0&-2&6&3&2&0 \\0&0&8&2.5&6&0 \\0&0&3&5.5&0&3 \\0&0&10&4&9&-1 \\\end{bmatrix}. \]
Tercer paso (no hemos realizado cambio de filas ya que el máximo valor entre los valores \(\left|\frac{8}{3}\right|,\ \left|\frac{3}{4}\right|,\ \left|\frac{10}{5}\right|\) vale \(\left|\frac{8}{3}\right|\)): \[ A^{(4)}=\begin{bmatrix}1&1&-3&-1&-2&2 \\0&-2&6&3&2&0 \\0&0&8&2.5&6&0 \\0&0&0&4.5625&-2.25&3 \\0&0&0&0.875&1.5&-1 \\\end{bmatrix}. \]
La solución del sistema será usando el método de sustitución hacia atrás: \[ \begin{align*} x_5 & =\frac{-1.575342}{1.931507}=-0.815603,\\ x_4 & =\frac{3-(-2.25)\cdot (-0.8156028)}{4.5625}=0.2553191,\\ x_3 & =\frac{0-6\cdot (-0.8156028)-2.5\cdot 0.2553191}{8}=0.5319149,\\ x_2 & =\frac{0-2\cdot (-0.8156028)-3\cdot 0.2553191-6\cdot 0.5319149}{-2}=1.1631206,\\ x_1 & =\frac{2-(-2)\cdot (-0.8156028)-(-1)\cdot 0.2553191-(-3)\cdot 0.5319149-1\cdot 1.1631206}{1}=1.0567376. \end{align*} \]
Ejercicio
Programar la variante del método de Gauss con pivotaje parcial escalado que hemos visto en el ejemplo anterior.
Una manera de optimizar el error de redondeo cometido cuando aplicamos el algoritmo de Gauss es realizar un pivotaje global:
es decir, modificar el algoritmo de Gauss en el paso \(k\)-ésimo eligiendo el máximo valor en valor absoluto de la submatriz de \(\mathbf{A}^{(k)}\) formada por las filas \(k, k+1,\ldots,n\) y por las columnas \(k,k+1,\ldots,n\).
Concretamente hallamos \(i_{\mathrm{max}},j_{\mathrm{max}}\) tal que: \[ |a_{i_{\mathrm{max}},j_{\mathrm{max}}}^{(k)}|=\max_{i,j=k,\ldots,n}|a_{ij}^{(k)}|. \]
A continuación, realizamos un cambio entre las filas \(k\) y \(i_{\mathrm{max}}\) y un cambio entre las columnas \(k\) y \(j_{\mathrm{max}}\).
Permutar filas no afecta a las soluciones del sistema de ecuaciones al obtener un sistema de ecuaciones equivalente. Sin embargo, permutar columnas equivale a permutar los valores de las variables correspondientes.
Concretamente, cuando cambiamos las columnas \(k\) y \(j_{\mathrm{max}}\), intercambiamos el “papel” de las variables \(x_k\) y \(x_{j_{\mathrm{max}}}\).
Por tanto, necesitamos recordar todos los cambios de columnas para realizar el cambio inverso en la solución final.
Apliquemos pivotaje global al sistema que hemos ido desarrollando:
\[ \begin{align*} E_1: & x_1 & + x_2 & -3 x_3 & - x_4 & -2 x_5 & = 2,\\ E_2: & x_1 & +2 x_2 & +2 x_3 & & +3 x_5 & = 2,\\ E_3: & x_1 & - x_2 & +3 x_3& +2 x_4& & = 2,\\ E_4: & & x_2 & & +4 x_4 & - x_5 & = 3,\\ E_5: & x_1 & +3 x_2& + x_3 & & +5 x_5 & = 1. \end{align*} \]
La solución del sistema será usando el método de sustitución hacia atrás: \[ \begin{align*} x_2 & =\frac{1.261538}{1.084615}=1.163121,\\ x_1 & =\frac{3.551724-1.0172414\cdot 1.1631206}{2.2413793}=1.0567376,\\ x_3 & =\frac{0.4-(-1.8)\cdot 1.1631206-0.9\cdot 1.0567376}{2.9}=0.5319149,\\ x_4 & =\frac{3.2-1.6\cdot 1.1631206-0.2\cdot 1.0567376-0.2\cdot 0.5319149}{4}=0.2553191,\\ x_5 & =\frac{1-3\cdot 1.1631206-1\cdot 1.0567376-1\cdot 0.5319149-0\cdot 0.2553191}{5}=-0.8156028. \end{align*} \]
Vamos a ver otro método de resolver un sistema de ecuaciones \(n\times n\) de la forma \(\mathbf{A}\mathbf{x}=\mathbf{b}\).
Dicho método se llama descomposición \(LU\). La idea es factorizar la matriz del sistema \(\mathbf{A}\) de la forma siguiente: \(\mathbf{A}=\mathbf{L}\mathbf{U}\), donde la matriz \(\mathbf{L}\) es triangular inferior con unos en la diagonal y \(\mathbf{U}\) es triangular superior.
Si somos capaces de realizar la descomposición anterior, resolver el sistema lineal \(\mathbf{A}\mathbf{x}=\mathbf{b}\) equivale a resolver dos sistemas triangulares. Veamos cómo.
El sistema \(\mathbf{A}\mathbf{x}=\mathbf{b}\) se puede escribir como \(\mathbf{L}\mathbf{U}\mathbf{x}=\mathbf{b}\). Para resolver el sistema anterior, hacemos lo siguiente:
La resolución del sistema \(\mathbf{L}\mathbf{y}=\mathbf{b}\) se puede resolver usando la técnica de sustitución hacia adelante.
La matriz \(\mathbf{L}\) será de la forma:
\[ \begin{bmatrix}1&0&0&\ldots&0 \\l_{21}&1&0&\ldots&0 \\\vdots&\vdots&\ddots&\vdots&\vdots \\l_{n1}&l_{n2}&l_{n3}&\ldots&1 \\\end{bmatrix}. \]
El sistema \(\mathbf{L}\mathbf{y}=\mathbf{b}\) será: \[ \left. \begin{align*} E_1&: y_1 & = b_1,\\ E_2& : l_{21}y_1+y_2 & = b_2,\\ & \vdots &\vdots \\ E_n& : l_{n1} y_1+l_{n2}y+\cdots+ y_n & = b_n. \end{align*} \right\} \]
La solución del sistema anterior se puede obtener por sustitución hacia adelante: \[ \begin{align*} y_1 & = b_1,\\ y_2 &= b_{2}-l_{21}y_1,\\ \vdots & \\ y_i & = b_i-\sum_{j=1}^{i-1} l_{ij}y_j,\\ \vdots & \\ y_n & = b_n-\sum_{j=1}^{n-1} l_{nj}y_j \end{align*} \]
El número de operaciones básicas para resolver el sistema \(\mathbf{L}\mathbf{y}=\mathbf{b}\) será:
La solución del sistema \(\mathbf{U}{x}=\mathbf{y}\) se hace usando la técnica de sustitución hacia atrás explicada anteriormente donde recordemos que se requerían \(n^2\) operaciones básicas.
En conclusión, una vez se tiene la descomposición \(LU\), resolver el sistema comporta realizar \(n^2-n+n^2=2n^2-n\) operaciones básicas. Es decir, es de orden \(O(n^2)\).
Expliquemos cómo resolver el sistema considerado anteriormente:
\[ \begin{align*} E_1: & x_1 & + x_2 & -3 x_3 & - x_4 & -2 x_5 & = 2,\\ E_2: & x_1 & +2 x_2 & +2 x_3 & & +3 x_5 & = 2,\\ E_3: & x_1 & - x_2 & +3 x_3& +2 x_4& & = 2,\\ E_4: & & x_2 & & +4 x_4 & - x_5 & = 3,\\ E_5: & x_1 & +3 x_2& + x_3 & & +5 x_5 & = 1. \end{align*} \]
La matriz del sistema es la siguiente: \[ \mathbf{A}=\begin{bmatrix}1&1&-3&-1&-2 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\1&3&1&0&5 \\\end{bmatrix}. \]
La descomposición \(LU\) de la matriz anterior es la siguiente:
\[ \begin{bmatrix}1&1&-3&-1&-2 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\1&3&1&0&5 \\\end{bmatrix}=\begin{bmatrix}1&0&0&0&0 \\1&1&0&0&0 \\1&-2&1&0&0 \\0&1&-0.3125&1&0 \\1&2&-0.375&0.191781&1 \\\end{bmatrix}\cdot \begin{bmatrix}1&1&-3&-1&-2 \\0&1&5&1&5 \\0&0&16&5&12 \\0&0&0&4.5625&-2.25 \\0&0&0&0&1.931507 \\\end{bmatrix}. \] En primer lugar resolvemos \(\mathbf{L}\mathbf{y}=\mathbf{b}\): \[ \begin{bmatrix}1&0&0&0&0 \\1&1&0&0&0 \\1&-2&1&0&0 \\0&1&-0.3125&1&0 \\1&2&-0.375&0.191781&1 \\\end{bmatrix}\cdot\begin{bmatrix}y_1\\ y_2\\ y_3\\ y_4\\ y_5\end{bmatrix}=\begin{bmatrix}2 \\2 \\2 \\3 \\1 \\\end{bmatrix}. \]
\[ \begin{align*} y_1 & =2,\ y_2=2- y_1=0,\ y_3=2+2 y_2- y_1=0,\ y_4=3+0.3125 y_3- y_2=3,\\ y_5 & =1-0.191781 y_4+0.375 y_3-2 y_2- y_1=-1.5753425. \end{align*} \]
En segundo lugar, resolvemos \(\mathbf{U}\mathbf{x}=\mathbf{y}\): \[ \begin{bmatrix}1&1&-3&-1&-2 \\0&1&5&1&5 \\0&0&16&5&12 \\0&0&0&4.5625&-2.25 \\0&0&0&0&1.931507 \\\end{bmatrix}\cdot\begin{bmatrix}x_1\\ x_2\\ x_3\\ x_4\\ x_5\end{bmatrix}=\begin{bmatrix}2 \\0 \\0 \\3 \\-1.575342 \\\end{bmatrix}. \]
La solución del sistema será usando el método de sustitución hacia atrás: \[ \begin{align*} x_5 & =\frac{-1.575342}{1.931507}=-0.815603,\\ x_4 & =\frac{3-(-2.25)\cdot (-0.8156028)}{4.5625}=0.2553191,\\ x_3 & =\frac{0-12\cdot (-0.8156028)-5\cdot 0.2553191}{16}=0.5319149,\\ x_2 & =\frac{0-5\cdot (-0.8156028)-1\cdot 0.2553191-5\cdot 0.5319149}{1}=1.1631206,\\ x_1 & =\frac{2-(-2)\cdot (-0.8156028)-(-1)\cdot 0.2553191-(-3)\cdot 0.5319149-1\cdot 1.1631206}{1}=1.0567376. \end{align*} \]
El resultado siguiente dice cuando es posible factorizar una matriz \(\mathbf{A}\) de la forma \(\mathbf{A}=\mathbf{L}\mathbf{U}\):
\[ \mathbf{A}=\mathbf{L}\cdot\mathbf{U}=\begin{bmatrix}1&0&0&\ldots&0 \\m_{21}&1&0&\ldots&0 \\\vdots&\vdots&\ddots&\vdots&\vdots \\m_{n1}&m_{n2}&m_{n3}&\ldots&1 \\\end{bmatrix}\cdot \begin{bmatrix}a_{11}^{(1)}&a_{12}^{(1)}&a_{13}^{(1)}&\ldots&a_{1n}^{(1)} \\0&a_{22}^{(2)}&a_{23}^{(2)}&\ldots&a_{2n}^{(2)} \\\vdots&\vdots&\ddots&\vdots&\vdots \\0&0&0&\ldots&a_{nn}^{(n)} \\\end{bmatrix}, \] donde \(m_{ji}=\frac{a_{ji}^{(i)}}{a_{ii}^{(i)}}\).
Sea \(\mathbf{A}^{(1)}=\mathbf{A}\).
Recordemos que en el primer paso del proceso de eliminación de Gauss, definíamos \(m_{j1}=\frac{a_{j1}^{(1)}}{a_{11}^{(1)}}\) y realizábamos las operaciones: \[ (E_j-m_{j1}E_1)\rightarrow (E_j), \] para \(j=2,\ldots, n\) obteniendo la matriz \(\mathbf{A}^{(2)}\):
\[ \mathbf{A}^{(2)}=\begin{bmatrix}a_{11}^{(1)}&a_{12}^{(1)}&\ldots&a_{1n}^{(1)} \\0&a_{22}^{(2)}&\ldots&a_{2n}^{(2)} \\\vdots&\vdots&\ddots&\vdots \\0&a_{n2}^{(2)}&\ldots&a_{nn}^{(2)} \\\end{bmatrix}. \]
El paso anterior puede interpretarse desde otro punto de vista.
Si definimos la matriz: \[ \mathbf{M}^{(1)}=\begin{bmatrix}1&0&0&\ldots&0 \\-m_{21}&1&0&\ldots&0 \\\vdots&\vdots&\ddots&\ldots&\vdots \\-m_{n1}&0&0&\ldots&1 \\\end{bmatrix}, \] podemos escribir la matriz \(\mathbf{A}^{(2)}\) como: \(\mathbf{A}^{(2)}=\mathbf{M}^{(1)}\mathbf{A}^{(1)}=\mathbf{M}^{(1)}\mathbf{A}\).
Es sencillo comprobar que la inversa de \(\mathbf{M}^{(1)}\) vale: \[ \left(\mathbf{M}^{(1)}\right)^{-1}=\begin{bmatrix}1&0&0&\ldots&0 \\m_{21}&1&0&\ldots&0 \\\vdots&\vdots&\ddots&\ldots&\vdots \\m_{n1}&0&0&\ldots&1 \\\end{bmatrix}. \] Basta comprobar que \(\mathbf{M}^{(1)}\cdot \left(\mathbf{M}^{(1)}\right)^{-1}=\mathbf{I}\).
En el segundo paso partíamos de la matriz \(\mathbf{A}^{(2)}\), calculábamos los valores \(m_{j2}=\frac{a_{j2}^{(2)}}{a_{22}^{(2)}}\) y hacíamos las operaciones: \[ (E_j-m_{j2}E_2)\rightarrow (E_j), \] para \(j=3,\ldots, n\) obteniendo la matriz \(\mathbf{A}^{(3)}\): (donde las ecuaciones \(E_j\) se refieren al sistema de ecuaciones con matriz \(\mathbf{A}^{(2)}\))
\[ \mathbf{A}^{(3)}=\begin{bmatrix}a_{11}^{(1)}&a_{12}^{(1)}&a_{13}^{(1)}&\ldots&a_{1n}^{(1)} \\0&a_{22}^{(2)}&a_{23}^{(2)}&\ldots&a_{2n}^{(2)} \\0&0&a_{33}^{(3)}&\ldots&a_{3n}^{(3)} \\\vdots&\vdots&\vdots&\ddots&\vdots \\0&0&a_{n3}^{(3)}&\ldots&a_{nn}^{(3)} \\\end{bmatrix}. \]
Igual que antes, interpretemos este paso desde otro punto de vista. Definimos:
\[ \mathbf{M}^{(2)}=\begin{bmatrix}1&0&0&\ldots&0 \\0&1&0&\ldots&0 \\0&-m_{32}&1&\ldots&0 \\\vdots&\vdots&\vdots&\ddots&\vdots \\0&-m_{n2}&0&\ldots&1 \\\end{bmatrix}, \] cuya inversa es: \[ \left(\mathbf{M}^{(2)}\right)^{-1}=\begin{bmatrix}1&0&0&\ldots&0 \\0&1&0&\ldots&0 \\0&m_{32}&1&\ldots&0 \\\vdots&\vdots&\vdots&\ddots&\vdots \\0&m_{n2}&0&\ldots&1 \\\end{bmatrix}. \] Podemos escribir la matriz \(\mathbf{A}^{(3)}\) como \(\mathbf{A}^{(3)}=\mathbf{M}^{(2)}\cdot \mathbf{A}^{(2)}=\mathbf{M}^{(2)}\mathbf{M}^{(1)}\mathbf{A}\).
Imaginemos que estamos en el paso \(k\)-ésimo del proceso de eliminación de Gauss. Entonces tendremos la matriz:
\[ \mathbf{A}^{(k)}=\begin{bmatrix}a_{11}&\ldots&\ldots&\ldots&\ldots&a_{1n} \\\vdots&\vdots&\ddots&\vdots&\vdots&\vdots \\0&\ldots&0&a_{kk}^{(k)}&\ldots&a_{kn}^{(k)} \\\vdots&\vdots&\vdots&\vdots&\ddots&\vdots \\0&\ldots&0&a_{nk}^{(k)}&\ldots&a_{nn}^{(k)} \\\end{bmatrix}. \]
En este paso, calculábamos los valores \(m_{jk}=\frac{a_{jk}^{(k)}}{a_{kk}^{(k)}}\) y hacíamos las operaciones: \[ (E_j-m_{jk}E_k)\rightarrow (E_j), \] para \(j=k+1,\ldots, n\) obteniendo la matriz \(\mathbf{A}^{(k+1)}\): (donde las ecuaciones \(E_j\) se refieren al sistema de ecuaciones con matriz \(\mathbf{A}^{(k)}\))
\[ \mathbf{A}^{(k+1)}=\begin{bmatrix}a_{11}&\ldots&\ldots&\ldots&\ldots&a_{1n} \\\vdots&\vdots&\ddots&\vdots&\vdots&\vdots \\0&\ldots&0&a_{k+1,k+1}^{(k+1)}&\ldots&a_{k+1,n}^{(k+1)} \\\vdots&\vdots&\vdots&\vdots&\vdots&\vdots \\0&\ldots&0&a_{n,k+1}^{(k+1)}&\ldots&a_{n,n}^{(k+1)} \\\end{bmatrix}. \]
Igual que antes, interpretemos este paso desde otro punto de vista. Definimos:
\[ \mathbf{M}^{(k)}=\begin{bmatrix}1&0&0&0&\ldots&0 \\\vdots&\ddots&0&0&\ldots&0 \\0&\ldots&1&0&\ldots&0 \\0&\ldots&-m_{k+1,k}&1&\ldots&0 \\\vdots&\vdots&\vdots&\vdots&\ddots&\vdots \\0&\ldots&-m_{n,k}&0&\ldots&1 \\\end{bmatrix}, \] cuya inversa es: \[ \left(\mathbf{M}^{(k)}\right)^{-1}=\begin{bmatrix}1&0&0&0&\ldots&0 \\\vdots&\ddots&0&0&\ldots&0 \\0&\ldots&1&0&\ldots&0 \\0&\ldots&m_{k+1,k}&1&\ldots&0 \\\vdots&\vdots&\vdots&\vdots&\ddots&\vdots \\0&\ldots&m_{n,k}&0&\ldots&1 \\\end{bmatrix}. \] Podemos escribir la matriz \(\mathbf{A}^{(k+1)}\) como \(\mathbf{A}^{(k+1)}=\mathbf{M}^{(k)}\cdot \mathbf{A}^{(k)}=\mathbf{M}^{(k)}\mathbf{M}^{(k-1)}\cdots \mathbf{M}^{(1)}\mathbf{A}\).
En el último paso tendremos la expresión siguiente: \[ \mathbf{A}^{(n)}=\mathbf{M}^{(n-1)}\mathbf{M}^{(n-2)}\cdots \mathbf{M}^{(1)}\mathbf{A}, \] donde recordemos que la matriz \(\mathbf{A}^{(n)}\) es triangular superior.
La expresión anterior puede escribirse de la siguiente manera despejando la matriz original del sistema \(\mathbf{A}\): \[ \mathbf{A}=\left(\mathbf{M}^{(1)}\right)^{-1}\left(\mathbf{M}^{(2)}\right)^{-1}\cdots \left(\mathbf{M}^{(n-1)}\right)^{-1}\mathbf{A}^{(n)}. \] Recordemos que las matrices \(\left(\mathbf{M}^{(1)}\right)^{-1}\) eran triangulares inferiores con unos en la diagonal. Como el producto de matrices triangulares inferiores con unos en la diagonal sigue siendo una matriz triangular inferior con unos en la diagonal (ejercicio) tenemos que las matrices \(\mathbf{L}\) y \(\mathbf{U}\) serán:
\[ \mathbf{L}=\left(\mathbf{M}^{(1)}\right)^{-1}\left(\mathbf{M}^{(2)}\right)^{-1}\cdots \left(\mathbf{M}^{(n-1)}\right)^{-1},\ \mathbf{U}=\mathbf{A}^{(n)}. \]
Para acabar la demostración faltaría ver que: \[ \mathbf{L}=\begin{bmatrix}1&0&0&\ldots&0 \\m_{21}&1&0&\ldots&0 \\\vdots&\vdots&\ddots&\vdots&\vdots \\m_{n1}&m_{n2}&m_{n3}&\ldots&1 \\\end{bmatrix}. \]
Ejercicio
Demostrar la última expresión de la matriz \(\mathbf{L}\).
Indicación: Multiplicar primero \(\left(\mathbf{M}^{(1)}\right)^{-1}\left(\mathbf{M}^{(2)}\right)^{-1}\) usando las expresiones de \(\left(\mathbf{M}^{(1)}\right)^{-1}\) y \(\left(\mathbf{M}^{(2)}\right)^{-1}\) vistas en esta demostración para ver cómo se va comportando el producto para después generalizar el resultado.
Una manera de calcular las matrices \(\mathbf{L}\) y \(\mathbf{U}\) es usar el algoritmo de eliminación de Gauss y aplicar las expresiones vistas en el resultado anterior.
Sin embargo, este método es tedioso y requiere realizar todo el proceso de eliminación de Gauss. Veamos un método mucho más directo.
Recordemos que tenemos una matriz \(\mathbf{A}\), \(n\times n\) tal que se pueden realizar todos los pasos del algoritmo de eliminación de Gauss sin permutar filas y queremos hallar las matrices \(\mathbf{L}\) triangular inferior con unos en la diagonal y \(\mathbf{U}\) triangular superior tal que \(\mathbf{A}=\mathbf{L}\mathbf{U}.\)
Para hallar dichas matrices, realizamos los pasos siguientes:
Calculamos la tercera fila de la matriz \(\mathbf{U}\) y a continuación la tercera columna de la matriz \(\mathbf{L}\) con \(l_{33}=1\): \[ \begin{align*} u_{3j} & =a_{3j}-l_{31}u_{1j}-l_{32}u_{2j},\ j=3,\ldots,n,\\ l_{j3} & =\frac{1}{u_{33}}\left(a_{j3}-l_{j1}u_{13}-l_{j2}u_{23}\right),\ j=4,\ldots,n. \end{align*} \]
En general, supongamos que ya hemos hallado las \(i-1\) primeras filas de la matriz \(\mathbf{U}\) y las \(i-1\) primeras columnas de la matriz \(\mathbf{L}\). Entonces, hallamos la fila \(i\)-ésima de la matriz \(\mathbf{U}\) y a continuación la columna \(i\)-ésima de la matriz \(\mathbf{L}\) con \(l_{ii}=1\): \[ \begin{align*} u_{ij} & =a_{ij}-\sum_{k=1}^{i-1}l_{ik}u_{kj},\ j=i,\ldots,n,\\ l_{ji} & =\frac{1}{u_{ii}}\left(a_{ji}-\sum_{k=1}^{i-1}l_{jk}u_{ki}\right),\ j=i+1,\ldots,n. \end{align*} \]
INPUT
matriz del sistema \(\mathbf{A}=(a_{ij})_{i=1,\ldots,n,j=1,\ldots,n}\).Set
\(\mathbf{L}=\mathbf{0}\).Set
\(\mathbf{U}=\mathbf{0}\).For i=1,...n
Set
\(l_{ii}=1\)Set
\(u_{1i}=a_{1i}\) (Calculamos la primera fila de \(\mathbf{U}\))Set
\(l_{i1}=\frac{a_{i1}}{u_{11}}\) (Calculamos la primera columna de \(\mathbf{L}\))For i=2,...n
(Vamos a calcular la fila \(i\) de la matriz \(\mathbf{U}\) y a continuación la columna \(i\) de la matriz \(\mathbf{L}\))
Set
\(u_{ii}=a_{ii}-\sum_{k=1}^{i-1}l_{ik}u_{ki}\).For j=i+1,...,n
Set
\(u_{ij}=a_{ij}-\sum_{k=1}^{i-1}l_{ik}u_{kj}\) (fila \(i\)-ésima de \(\mathbf{U}\))Set
\(l_{ji}=\frac{1}{u_{ii}}\left(a_{ji}-\sum_{k=1}^{i-1}l_{jk}u_{ki}\right)\) (columna \(i\)-ésima de \(\mathbf{L}\))Print
\(\mathbf{L}\), \(\mathbf{U}\) (Damos las matrices \(\mathbf{L}\) y \(\mathbf{U}\))Consideremos el sistema lineal siguiente: \[ \begin{align*} E_1: & x_1 & + x_2 & -3 x_3 & - x_4 & -2 x_5 & = 2,\\ E_2: & x_1 & +2 x_2 & +2 x_3 & & +3 x_5 & = 2,\\ E_3: & x_1 & - x_2 & +3 x_3& +2 x_4& & = 2,\\ E_4: & & x_2 & & +4 x_4 & - x_5 & = 3,\\ E_5: & x_1 & +3 x_2& + x_3 & & +5 x_5 & = 1. \end{align*} \] La matriz del sistema es la siguiente: \[ \mathbf{A}=\begin{bmatrix}1&1&-3&-1&-2&2 \\1&2&2&0&3&2 \\1&-1&3&2&0&2 \\0&1&0&4&-1&3 \\1&3&1&0&5&1 \\\end{bmatrix}. \]
Las matrices resultantes de aplicar el algoritmo de eliminación de Gauss junto con los valores \(m_{ik}\) que vamos escribiendo en la matriz \(\mathbf{L}\) son los siguientes:
Paso 1: \[ \mathbf{A}^{(2)}=\begin{bmatrix}1&1&-3&-1&-2 \\0&1&5&1&5 \\0&-2&6&3&2 \\0&1&0&4&-1 \\0&2&4&1&7 \\\end{bmatrix},\quad \mathbf{L}=\begin{bmatrix}1&0&0&0&0 \\1&1&0&0&0 \\1&*&1&0&0 \\0&*&*&1&0 \\1&*&*&*&1 \\\end{bmatrix} \]
Paso 2: \[ \mathbf{A}^{(3)}=\begin{bmatrix}1&1&-3&-1&-2 \\0&1&5&1&5 \\0&0&16&5&12 \\0&0&-5&3&-6 \\0&0&-6&-1&-3 \\\end{bmatrix},\quad \mathbf{L}=\begin{bmatrix}1&0&0&0&0 \\1&1&0&0&0 \\1&-2&1&0&0 \\0&1&*&1&0 \\1&2&*&*&1 \\\end{bmatrix} \]
Paso 3: \[ \mathbf{A}^{(4)}=\begin{bmatrix}1&1&-3&-1&-2 \\0&1&5&1&5 \\0&0&16&5&12 \\0&0&0&4.5625&-2.25 \\0&0&0&0.875&1.5 \\\end{bmatrix},\quad \mathbf{L}=\begin{bmatrix}1&0&0&0&0 \\1&1&0&0&0 \\1&-2&1&0&0 \\0&1&-0.3125&1&0 \\1&2&-0.375&*&1 \\\end{bmatrix} \]
Paso 4: \[ \mathbf{A}^{(5)}=\begin{bmatrix}1&1&-3&-1&-2 \\0&1&5&1&5 \\0&0&16&5&12 \\0&0&0&4.5625&-2.25 \\0&0&0&0&1.931507 \\\end{bmatrix},\quad \mathbf{L}=\begin{bmatrix}1&0&0&0&0 \\1&1&0&0&0 \\1&-2&1&0&0 \\0&1&-0.3125&1&0 \\1&2&-0.375&0.191781&1 \\\end{bmatrix} \]
La matriz \(\mathbf{U}\) será: \[ \mathbf{U}=\mathbf{A}^{(5)}=\begin{bmatrix}1&1&-3&-1&-2 \\0&1&5&1&5 \\0&0&16&5&12 \\0&0&0&4.5625&-2.25 \\0&0&0&0&1.931507 \\\end{bmatrix}. \]
Calculemos las matrices \(\mathbf{L}\) y \(\mathbf{U}\) aplicando el algoritmo.
\[ \mathbf{A}=\begin{bmatrix}1&1&-3&-1&-2 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\1&3&1&0&5 \\\end{bmatrix},\Rightarrow \mathbf{U}=\begin{bmatrix}1&1&-3&-1&-2 \\0&*&*&*&* \\0&0&*&*&* \\0&0&0&*&* \\0&0&0&0&* \\\end{bmatrix}. \]
\[ \mathbf{U}=\begin{bmatrix}1&1&-3&-1&-2 \\0&1&5&1&5 \\0&0&*&*&* \\0&0&0&*&* \\0&0&0&0&* \\\end{bmatrix}. \]
\[ \mathbf{U}=\begin{bmatrix}1&1&-3&-1&-2 \\0&1&5&1&5 \\0&0&16&5&12 \\0&0&0&*&* \\0&0&0&0&* \\\end{bmatrix}. \]
\[ \mathbf{U}=\begin{bmatrix}1&1&-3&-1&-2 \\0&1&5&1&5 \\0&0&16&5&12 \\0&0&0&4.5625&-2.25 \\0&0&0&0&* \\\end{bmatrix}. \]
Sea \(k\) un entero entre \(1\) y \(n\). Sea \(\mathbf{A}_k\) la submatriz de \(\mathbf{A}\) formada por las \(k\) primeras filas y las \(k\) primeras columnas. De la misma manera, definimos \(\mathbf{L}_k\) y \(\mathbf{U}_k\). Entonces \(\mathbf{A}_k=\mathbf{L}_k\cdot \mathbf{U}_k\), es decir las submatrices \(\mathbf{L}_k\) y \(\mathbf{U}_k\) serían la descomposición \(LU\) de la submatriz \(\mathbf{A}_k\).
Escribimos \(\mathbf{A}=(a_{ij})_{i,j=1,\ldots,n}\), \(\mathbf{L}=(l_{ij})_{i,j=1,\ldots,n}\) y \(\mathbf{U}=(u_{ij})_{i,j=1,\ldots,n}\).
Sea un elemento \(a_{ij}\) de la submatriz \(\mathbf{A}_k\). Como \(\mathbf{A}=\mathbf{L}\cdot\mathbf{U}\), podemos escribir: \(\displaystyle a_{ij}=\sum_{p=1}^n l_{ip}\cdot u_{pj}.\)
Como la matriz \(\mathbf{L}\) es triangular inferior \(l_{ip}=0\), \(p=i+1,\ldots,n\) y como \(\mathbf{U}\) es triangular superior, \(u_{pj}=0\), \(p=j+1,\ldots,n\). Sea \(m=\max\{i,j\}\), entonces \(l_{ip}=u_{pj}=0\), para \(p=m+1,\ldots,n\). Por tanto, \(\displaystyle a_{ij}=\sum_{p=1}^m l_{ip}\cdot u_{pj}\). Ahora bien, como \(a_{ij}\) es un elemento de la submatriz \(\mathbf{A}_k\), entonces \(m=\max\{i,j\}\leq k\) y por tanto: \(\displaystyle a_{ij}=\sum_{p=1}^k l_{ip}\cdot u_{pj}\).
En resumen, hemos demostrado que \(\mathbf{A}_k=\mathbf{L}_k\cdot\mathbf{U}_k.\)
En un ejemplo anterior, considerábamos la matriz:
\[ \mathbf{A}=\begin{bmatrix}1&1&-3&-1&-2 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\1&3&1&0&5 \\\end{bmatrix}, \] cuya descomposición \(LU\) era la siguiente: \[ \mathbf{L}=\begin{bmatrix}1&0&0&0&0 \\1&1&0&0&0 \\1&-2&1&0&0 \\0&1&-0.3125&1&0 \\1&2&-0.375&0.191781&1 \\\end{bmatrix},\quad \mathbf{U}=\begin{bmatrix}1&1&-3&-1&-2 \\0&1&5&1&5 \\0&0&16&5&12 \\0&0&0&4.5625&-2.25 \\0&0&0&0&1.931507 \\\end{bmatrix}. \]
\(k=1\). La submatriz \(A_1\) vale \(A_1=1\) que trivialmente vale: \[ \mathbf{A}_1=\mathbf{L}_1\cdot \mathbf{U}_1,\ \Rightarrow 1=1\cdot 1. \]
\(k=2\). La submatriz \(A_2\) vale \(A_2=\begin{bmatrix}1&1 \\1&2 \\\end{bmatrix}\) y se verifica que: \[ \mathbf{A}_2=\mathbf{L}_2\cdot \mathbf{U}_2,\ \Rightarrow \begin{bmatrix}1&1 \\1&2 \\\end{bmatrix}=\begin{bmatrix}1&0 \\1&1 \\\end{bmatrix}\cdot \begin{bmatrix}1&1 \\0&1 \\\end{bmatrix}. \]
\(k=3\). La submatriz \(A_3\) vale \(A_3=\begin{bmatrix}1&1&-3 \\1&2&2 \\1&-1&3 \\\end{bmatrix}\) y se verifica que: \[ \mathbf{A}_3=\mathbf{L}_3\cdot \mathbf{U}_3,\ \Rightarrow \begin{bmatrix}1&1&-3 \\1&2&2 \\1&-1&3 \\\end{bmatrix}=\begin{bmatrix}1&0&0 \\1&1&0 \\1&-2&1 \\\end{bmatrix}\cdot \begin{bmatrix}1&1&-3 \\0&1&5 \\0&0&16 \\\end{bmatrix}. \]
\(k=4\). La submatriz \(A_4\) vale \(A_4=\begin{bmatrix}1&1&-3&-1 \\1&2&2&0 \\1&-1&3&2 \\0&1&0&4 \\\end{bmatrix}\) y se verifica que: \[ \mathbf{A}_4=\mathbf{L}_4\cdot \mathbf{U}_4,\ \Rightarrow \begin{bmatrix}1&1&-3&-1 \\1&2&2&0 \\1&-1&3&2 \\0&1&0&4 \\\end{bmatrix}=\begin{bmatrix}1&0&0&0 \\1&1&0&0 \\1&-2&1&0 \\0&1&-0.3125&1 \\\end{bmatrix}\cdot \begin{bmatrix}1&1&-3&-1 \\0&1&5&1 \\0&0&16&5 \\0&0&0&4.5625 \\\end{bmatrix}. \]
\(k=5\): no hace falta comprobar nada ya que la condición a comprobar es la condición de descomposición \(LU\) de la matriz \(\mathbf{A}\).
Sea \(k\) un entero entre \(1\) y \(n\). Sea \(\mathbf{A}_k\) la submatriz de \(\mathbf{A}\) formada por las \(k\) primeras filas y las \(k\) primeras columnas.
Entonces, el determinante de \(\mathbf{A}_k\) vale \(\mathrm{det}(\mathbf{A}_k)=a_{11}^{(1)}\cdots a_{kk}^{(k)}\), donde \(a_{ii}^{(i)}\) es el pivote del paso \(i\)-ésimo del algoritmo de descomposición de Gauss.
Demostración
Usando la proposición anterior tenemos que \(\mathbf{A}_k=\mathbf{L}_k\cdot\mathbf{U}_{k}\) donde \(\mathbf{L}_k\) y \(\mathbf{U}_k\) recordemos que son las submatrices formadas por las \(k\) primeras filas y columnas.
Usando un teorema anterior tenemos que las matrices \(\mathbf{L}_k\) y \(\mathbf{U}_k\) son las siguientes:
\[ \mathbf{L}_k=\begin{bmatrix}1&0&0&\ldots&0 \\m_{21}&1&0&\ldots&0 \\\vdots&\vdots&\ddots&\vdots&\vdots \\m_{k1}&m_{k2}&m_{k3}&\ldots&1 \\\end{bmatrix}\quad \mathbf{U}_k = \begin{bmatrix}a_{11}^{(1)}&a_{12}^{(1)}&a_{13}^{(1)}&\ldots&a_{1k}^{(1)} \\0&a_{22}^{(2)}&a_{23}^{(2)}&\ldots&a_{2k}^{(2)} \\\vdots&\vdots&\ddots&\vdots&\vdots \\0&0&0&\ldots&a_{kk}^{(k)} \\\end{bmatrix}. \] Por tanto, \[ \mathrm{det}(\mathbf{A}_k)=\mathrm{det}(\mathbf{L}_k)\cdot\mathrm{det}(\mathbf{U}_k)=a_{11}^{(1)}\cdots a_{kk}^{(k)}, \] tal como queríamos ver.
Hemos visto anteriormente que no siempre existe la descomposición \(\mathbf{L}\mathbf{U}\) para una matriz \(\mathbf{A}\) de un sistema lineal.
Recordemos que para que dicha descomposición exista, es necesario que \(a_{kk}^{(k)}\neq 0\), siendo \(a_{kk}^{(k)}\) el elemento diagonal de la matriz \(\mathbf{A}^{(k)}\) del algoritmo de eliminación de Gauss en el paso \(k\)-ésimo.
Cuando explicamos el algoritmo de eliminación de Gauss, si en el paso \(k\), el elemento \(a_{kk}^{(k)}=0\), necesitábamos realizar una permutación de filas para poder continuar con el algoritmo.
¿A qué equivale realizar una permutación de filas matricialmente hablando?
Para contestar a la pregunta anterior, necesitamos introducir las matrices de permutación.
Ejemplo
Consideremos \(n=5\). A continuación mostramos algunas matrices de permutación:
\[ \mathbf{P}_{14}=\begin{bmatrix}0&0&0&1&0 \\0&1&0&0&0 \\0&0&1&0&0 \\1&0&0&0&0 \\0&0&0&0&1 \\\end{bmatrix},\ \mathbf{P}_{23}=\begin{bmatrix}1&0&0&0&0 \\0&0&1&0&0 \\0&1&0&0&0 \\0&0&0&1&0 \\0&0&0&0&1 \\\end{bmatrix},\ \mathbf{P}_{35}=\begin{bmatrix}1&0&0&0&0 \\0&1&0&0&0 \\0&0&0&0&1 \\0&0&0&1&0 \\0&0&1&0&0 \\\end{bmatrix}. \]
Veamos qué relación existe entre las matrices de permutación y la permutación de filas:
Demostración
Llamamos \(\mathbf{A}=(a_{kl})_{k,l=1,\ldots,n}\), \(\mathbf{P}_{ij}=(p_{kl})_{k,l=1,\ldots,n}\) y \(\mathbf{A}_{ij}=(a_{kl}^{(ij)})_{k,l=1,\ldots,n}\) a las componentes de la matriz \(\mathbf{A}\), \(\mathbf{P}\) y \(\mathbf{A}_{ij}\), respectivamente.
Sea \(k\) una fila de la matriz \(\mathbf{A}_{ij}\) donde \(k\neq i,j\), en este caso, podemos escribir: \[ a_{kl}^{(ij)}=\sum_{m=1}^n p_{km}a_{ml}=a_{kl}, \] ya que \(p_{km}=0\), si \(m\neq k\) y \(p_{kk}=1\) para \(l=1,\ldots,n\). En resumen, la fila \(k\)-ésima de la matriz \(\mathbf{A}_{ij}\) coincide con la fila \(k\)-ésima de la matriz \(\mathbf{A}\).
Demostración (continuación)
Sea \(k=i\) la fila \(i\)-ésima de la matriz \(\mathbf{A}_{ij}\). En este caso \[ a_{il}^{(ij)}=\sum_{m=1}^n p_{im}a_{ml}=a_{jl}, \] ya que \(p_{im}=0\), si \(m\neq j\) y \(p_{ij}=1\) para \(l=1,\ldots,n\). En resumen, la fila \(i\)-ésima de la matriz \(\mathbf{A}^{(ij)}\) coincide con la fila \(j\)-ésima de la matriz \(\mathbf{A}\).
Usando un razonamiento idéntico, podemos ver que la fila \(j\)-ésima de la matriz \(\mathbf{A}_{ij}\) coincide con la fila \(i\)-ésima de la matriz \(\mathbf{A}\).
Acabamos de demostrar que la matriz \(\mathbf{P}_{ij}\cdot\mathbf{A}\) coincide con la matriz \(\mathbf{A}\) en la que hemos permutado las filas \(i\) y \(j\), tal como queríamos demostrar.
Las matrices de permutación tienen las propiedades siguientes:
Ejercicio
Demostrar las dos propiedades anteriores.
Sea \(\mathbf{A}\) la matriz de un sistema lineal de la que no es posible hallar la descomposición \(LU\).
Sin embargo, existe una permutación de filas tal que es posible hallar la descomposición \(LU\) de la matriz resultante de permutar las filas.
Esto es equivalente a decir que existe una matriz de permutación \(\mathbf{P}_{ij}\) tal que existe la descomposición \(LU\) de la matriz \(\mathbf{P}_{ij}\mathbf{A}\).
Recordemos que la descomposición \(LU\) se usaba para resolver un sistema lineal \(\mathbf{A}\mathbf{x}=\mathbf{b}\). Como no podemos descomponer la matriz \(\mathbf{A}\), multiplicando por la matriz de permutación \(\mathbf{P}_{ij}\) la expresión anterior, tenemos que resolver el sistema anterior es equivalente a resolver: \(\mathbf{P}_{ij}\mathbf{A}\mathbf{x}=\mathbf{P}_{ij}\mathbf{b}\).
A continuación, descomponemos la matriz \(\mathbf{P}_{ij}\mathbf{A}=\mathbf{L}\mathbf{U}\) y resolvemos el sistema anterior. Lo único que cambia es que el vector independiente \(\mathbf{b}\) pasa a ser \(\mathbf{P}_{ij}\mathbf{b}\).
Nos planteamos resolver el sistema anterior pero hemos cambiado el valor \(a_{11}\) por el valor \(0\):
\[ \begin{align*} E_1: & & x_2 & -3 x_3 & - x_4 & -2 x_5 & = 2,\\ E_2: & x_1 & +2 x_2 & +2 x_3 & & +3 x_5 & = 2,\\ E_3: & x_1 & - x_2 & +3 x_3& +2 x_4& & = 2,\\ E_4: & & x_2 & & +4 x_4 & - x_5 & = 3,\\ E_5: & x_1 & +3 x_2& + x_3 & & +5 x_5 & = 1. \end{align*} \] La matriz del sistema será: \[ \mathbf{A}=\begin{bmatrix}0&1&-3&-1&-2 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\1&3&1&0&5 \\\end{bmatrix}. \]
Como \(a_{11}=0\), no podemos realizar la descomposición \(LU\).
Entonces nos planteamos hallar la descomposición \(LU\) de la matriz \(\mathbf{P}_{15}\mathbf{A}=\begin{bmatrix}1&3&1&0&5 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\0&1&-3&-1&-2 \\\end{bmatrix}:\) que resulta de permutar las filas \(1\) y \(5\): \[ \mathbf{L}=\begin{bmatrix}1&0&0&0&0 \\1&1&0&0&0 \\1&4&1&0&0 \\0&-1&-0.5&1&0 \\0&-1&1&-0.6&1 \\\end{bmatrix},\quad \mathbf{U}=\begin{bmatrix}1&3&1&0&5 \\0&-1&1&0&-2 \\0&0&-2&2&3 \\0&0&0&5&-1.5 \\0&0&0&0&-7.9 \\\end{bmatrix}. \]
El sistema que tenemos que resolver es el siguiente: \[ \begin{bmatrix}1&3&1&0&5 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\0&1&-3&-1&-2 \\\end{bmatrix}\begin{bmatrix}x_1\\ x_2\\ x_3\\ x_4\\ x_5\end{bmatrix}=\begin{bmatrix}0&0&0&0&1 \\0&1&0&0&0 \\0&0&1&0&0 \\0&0&0&1&0 \\1&0&0&0&0 \\\end{bmatrix}\cdot \begin{bmatrix}2 \\2 \\2 \\3 \\1 \\\end{bmatrix}=\begin{bmatrix}1 \\2 \\2 \\3 \\2 \\\end{bmatrix}. \]
En primer lugar resolvemos \(\mathbf{L}\mathbf{y}=\mathbf{b}\): \[ \begin{bmatrix}1&0&0&0&0 \\1&1&0&0&0 \\1&4&1&0&0 \\0&-1&-0.5&1&0 \\0&-1&1&-0.6&1 \\\end{bmatrix}\cdot\begin{bmatrix}y_1\\ y_2\\ y_3\\ y_4\\ y_5\end{bmatrix}=\begin{bmatrix}1 \\2 \\2 \\3 \\2 \\\end{bmatrix}. \]
\[ \begin{align*} y_1 & =1,\ y_2=2- y_1=1,\ y_3=2-4 y_2- y_1=-3,\ y_4=3+0.5 y_3+ y_2=2.5,\\ y_5 & =2+0.6 y_4- y_3+ y_2=7.5. \end{align*} \]
En segundo lugar, resolvemos \(\mathbf{U}\mathbf{x}=\mathbf{y}\): \[ \begin{bmatrix}1&3&1&0&5 \\0&-1&1&0&-2 \\0&0&-2&2&3 \\0&0&0&5&-1.5 \\0&0&0&0&-7.9 \\\end{bmatrix}\cdot\begin{bmatrix}x_1\\ x_2\\ x_3\\ x_4\\ x_5\end{bmatrix}=\begin{bmatrix}1 \\1 \\-3 \\2.5 \\7.5 \\\end{bmatrix}. \]
La solución del sistema será usando el método de sustitución hacia atrás: \[ \begin{align*} x_5 & =\frac{7.5}{-7.9}=-0.949367,\\ x_4 & =\frac{2.5-(-1.5)\cdot (-0.9493671)}{5}=0.2151899,\\ x_3 & =\frac{-3-3\cdot (-0.9493671)-2\cdot 0.2151899}{-2}=0.2911392,\\ x_2 & =\frac{1-(-2)\cdot (-0.9493671)-0\cdot 0.2151899-1\cdot 0.2911392}{-1}=1.1898734,\\ x_1 & =\frac{1-5\cdot (-0.9493671)-0\cdot 0.2151899-1\cdot 0.2911392-3\cdot 1.1898734}{1}=1.8860759. \end{align*} \]
Veamos que si la matriz del sistema es estrictamente diagonal dominante, el algoritmo de eliminación de Gauss se puede realizar de forma óptima:
Consideremos un sistema lineal de la forma \(\mathbf{A}\mathbf{x}=\mathbf{b}\) cuya matriz del sistema es \(\mathbf{A}\). Entonces el algoritmo de eliminación de Gauss se puede realizar sin permutar filas ni columnas y el método es estable con respecto a los errores de redondeo.
Veamos por reducción al absurdo que la matriz \(\mathbf{A}\) es no singular.
Consideremos el sistema lineal homogéneo \(\mathbf{A}\mathbf{x}=\mathbf{0}\) y supongamos que tenemos una solución \(\mathbf{x}=(x_i)_{i=1,\ldots,n}\neq\mathbf{0}\). Sea \(k\) el índice tal que: \[ 0 < |x_k|=\max_{i=1,\ldots,n}|x_i|. \] Como \(\displaystyle\sum_{j=1}^n a_{ij}x_j=0\), para todo \(i=1,\ldots,n\), tenemos que para \(i=k\), \[ \sum_{j=1}^n a_{kj}x_j=a_{kk}x_k+\sum_{j=1,j\neq k}^n a_{kj}x_j=0,\ \Rightarrow a_{kk}x_k=-\sum_{j=1,j\neq k}^n a_{kj}x_j. \] Usando la desigualdad triangular, tenemos: \[ |a_{kk}||x_k|\leq \sum_{j=1,j\neq k}^n |a_{kj}||x_j|,\ \Rightarrow |a_{kk}|\leq \sum_{j=1,j\neq k}^n |a_{kj}|\frac{|x_j|}{|x_k|}\leq \sum_{j=1,j\neq k}^n |a_{kj}|. \] La última desigualdad contradice que la matriz \(\mathbf{A}\) sea estrictamente diagonal dominante ya que dicha condición fallaría para la fila \(k\)-ésima. Por tanto, la matriz \(\mathbf{A}\) es no singular.
Para ver que podemos realizar el algoritmo de eliminación de Gauss sin permutación de filas ni de columnas, demostraremos que las matrices obtenidas por el algoritmo \(\mathbf{A}^{(2)},\mathbf{A}^{(3)},\ldots,\mathbf{A}^{(n)}\) son todas estrictamente diagonal dominantes. Este hecho asegurará que el valor \(a_{kk}^{(k)}\neq 0\), para \(k=2,\ldots,n\) y por tanto, podemos continuar sin permutar filas ni columnas.
Como la matriz \(\mathbf{A}\) es estrictamente diagonal dominante, \(a_{11}^{(1)}\neq 0\) y podemos calcular la matriz \(\mathbf{A}^{(2)}\): \[ a_{ij}^{(2)}=a_{ij}^{(1)}-\frac{a_{1j}^{(1)}a_{i1}^{(1)}}{a_{11}^{(1)}}, \] para \(j=2,\ldots,n,\ i=2,\ldots,n\).
Consideremos la fila \(i\) de la matriz \(\mathbf{A}^{(2)}\), \(i=2,\ldots,n\). Veamos que \(\displaystyle |a_{ii}^{(2)}|>\sum_{j=2,j\neq i}^n |a_{ij}^{(2)}|\) (pensemos que \(a_{i1}^{(2)}=0,\ i=2,\ldots,n\)) \[ \begin{align*} \sum_{j=2,j\neq i}^n |a_{ij}^{(2)}| & =\sum_{j=2,j\neq i}^n\left|a_{ij}^{(1)}-\frac{a_{1j}^{(1)}a_{i1}^{(1)}}{a_{11}^{(1)}}\right|\leq \sum_{j=2,j\neq i}^n |a_{ij}^{(1)}|+\sum_{j=2,j\neq i}^n\left|\frac{a_{1j}^{(1)}a_{i1}^{(1)}}{a_{11}^{(1)}}\right|\\ & < |a_{ii}^{(1)}|-|a_{i1}^{(1)}|+\frac{|a_{i1}^{(1)}|}{|a_{11}^{(1)}|}(|a_{11}^{(1)}|-|a_{1i}^{(1)}|). \end{align*} \] En la última desigualdad hemos usado que la matriz \(\mathbf{A}^{(1)}=\mathbf{A}\) es estrictamente diagonal dominante y, por tanto, \[ \begin{align*} \sum_{j=2,j\neq i}^n |a_{ij}^{(1)}| & =\sum_{j=1,j\neq i}^n |a_{ij}^{(1)}|-|a_{i1}^{(1)}|< |a_{ii}^{(1)}|-|a_{i1}^{(1)}|,\\ \sum_{j=2,j\neq i}^n |a_{1j}^{(1)}|& =\sum_{j=2}^n |a_{1j}^{(1)}|-|a_{1i}^{(1)}|< |a_{11}^{(1)}|-|a_{1i}^{(1)}|. \end{align*} \]
Hemos demostrado que: \[ \sum_{j=2,j\neq i}^n |a_{ij}^{(2)}|< |a_{ii}^{(1)}|-|a_{i1}^{(1)}|+\frac{|a_{i1}^{(1)}|}{|a_{11}^{(1)}|}(|a_{11}^{(1)}|-|a_{1i}^{(1)}|)=|a_{ii}^{(1)}|-\frac{|a_{i1}^{(1)}|}{|a_{11}^{(1)}|}|a_{1i}^{(1)}|\leq \left|a_{ii}^{(1)}-\frac{a_{i1}^{(1)}}{a_{11}^{(1)}}a_{1i}^{(1)}\right|=|a_{ii}^{(2)}|, \] como queríamos demostrar. Por tanto, la matriz \(\mathbf{A}^{(2)}\) es estrictamente diagonal dominante.
Usando el mismo razonamiento anterior se puede demostrar por inducción que las matrices \(\mathbf{A}^{(k)}\), para \(k=2,\ldots,n\) que se van obteniendo en el algoritmo de eliminación de Gauss son diagonal dominantes y por tanto el proceso de Gauss se puede realizar sin permutar filas ni columnas.
Sea \(\mathbf{A}\) una matriz \(n\times n\) simétrica y estrictamente definida positiva.
Por el criterio de Sylvester sabemos que para todo \(k=1,\ldots,n\), \(\mathrm{det}(\mathbf{A}_k)>0\), donde \(\mathbf{A}_k\) recordemos que es la submatriz formada por las \(k\) primeras filas y columnas de la matriz \(\mathbf{A}\).
Usando una proposición anterior, el valor de \(\mathrm{det}(\mathbf{A}_k)>0\) era \(\mathrm{det}(\mathbf{A}_k)=a_{11}^{(1)}\cdots a_{kk}^{(k)}\) donde \(a_{ii}^{(i)}\) es el pivote del paso \(i\)-ésimo del algoritmo de eliminación de Gauss.
De las dos afirmaciones anteriores, se deduce que, como \(\mathrm{det}(\mathbf{A}_k)=a_{11}^{(1)}\cdots a_{kk}^{(k)} >0\), para \(k=1,\ldots,n\), los pivotes \(a_{kk}^{(k)}\) serán positivos \(a_{kk}^{(k)}>0\) y se puede aplicar por tanto, el algoritmo de eliminación de Gauss sin permutar filas ni columnas.
En el caso en que la matriz del sistema \(\mathbf{A}\) sea simétrica y definida positiva, tenemos el siguiente resultado:
Hemos visto anteriormente que la matriz \(\mathbf{A}\) admite descomposición \(LU\) ya que puede realizarse el algoritmo de eliminación de Gauss sin permutar filas ni columnas.
Entonces \(\mathbf{A}=\mathbf{L}\mathbf{U}\). Como \(\mathbf{A}^\top =\mathbf{A}\), al ser la matriz \(\mathbf{A}\) simétrica, tenemos que: \[ \mathbf{A}=\mathbf{A}^\top = \mathbf{U}^{\top}\cdot \mathbf{L}^\top. \] Ahora escribimos la matriz \(\mathbf{U}^\top\) como \(\mathbf{U}^\top =\mathbf{\tilde{U}}^\top\cdot\mathbf{D}\), donde \(\mathbf{\tilde{U}}^\top\) es una matriz triangular inferior con unos en la diagonal y \(\mathbf{D}\) es la matriz diagonal siguiente:
\[ \mathbf{D}=\begin{bmatrix}u_{11}&0&\ldots&0 \\0&u_{22}&\ldots&0 \\\vdots&\vdots&\ddots&\vdots \\0&\ldots&0&u_{nn} \\\end{bmatrix}. \] Como los elementos de la diagonal de \(\mathbf{D}\) son los elementos diagonales de la matriz \(\mathbf{U}\) y éstos, a su vez, son los pivotes en el algoritmo de eliminación de Gauss, serán positivos.
Entonces tenemos que \(\mathbf{A}=\mathbf{A}^\top =\mathbf{\tilde{U}}^\top\mathbf{D}\mathbf{L}^\top =\mathbf{L}\mathbf{U}.\)
Por la unicidad de la descomposición \(LU\) tenemos que: \(\mathbf{\tilde{U}}^\top =\mathbf{L},\quad \mathbf{D}\mathbf{L}^\top =\mathbf{U}\,\Rightarrow \mathbf{A}=\mathbf{L}\mathbf{D}\mathbf{L}^\top,\) tal como queríamos demostrar.
Sea \(\mathbf{A}\) una matriz simétrica y definida positiva. Vamos a dar el algoritmo para la descomposición \(\mathbf{A}=\mathbf{L}\mathbf{D}\mathbf{L}^\top\).
La idea es ir calculando las columnas de la matriz \(\mathbf{L}\) y los elementos diagonales de la matriz \(\mathbf{D}\).
INPUT
matriz del sistema \(\mathbf{A}=(a_{ij})_{i=1,\ldots,n,j=1,\ldots,n}\).Set
\(\mathbf{L}=\mathbf{Id}_n\).Set
\(d_{11}=\cdots = d_{nn}=0\).For i=1,...n
Set
\(d_{ii}=a_{ii}-\sum_{j=1}^{i-1} l_{ij}^2 d_{jj}\).For j=i+1,...,n
Set
\(l_{ji}=\frac{1}{d_{ii}}\left(a_{ji}-\sum_{k=1}^{i-1}l_{jk}l_{ik} d_{kk}\right)\)Print
\(\mathbf{L}\), \(d_{11},\ldots,d_{nn}\) (Damos la matriz \(\mathbf{L}\) y los valores \(d_{ii}\))Consideremos la matriz simétrica y definida positiva siguiente: \[ \mathbf{A}=\begin{bmatrix}5&2&-2&-1&-1 \\2&7&1&1&6 \\-2&1&9&2&1 \\-1&1&2&11&-1 \\-1&6&1&-1&13 \\\end{bmatrix}. \] Vemos que la matriz anterior es simétrica. Comprobemos, aplicando el criterio de Sylvester que es estrictamente definida positiva: \[ \begin{align*} \mathrm{det}(\mathbf{A}_1) & =5 >0,\quad \mathrm{det}(\mathbf{A}_2) =\mathrm{det}\left(\begin{bmatrix}5&2 \\2&7 \\\end{bmatrix}\right)=31 >0,\\ \mathrm{det}(\mathbf{A}_3) & =\mathrm{det}\left(\begin{bmatrix}5&2&-2 \\2&7&1 \\-2&1&9 \\\end{bmatrix}\right)=238 >0. \end{align*} \]
\[ \begin{align*} \mathrm{det}(\mathbf{A}_4) & =\mathrm{det}\left(\begin{bmatrix}5&2&-2&-1 \\2&7&1&1 \\-2&1&9&2 \\-1&1&2&11 \\\end{bmatrix}\right)=2451 >0,\\ \mathrm{det}(\mathbf{A}_5) & =\mathrm{det}\left(\begin{bmatrix}5&2&-2&-1&-1 \\2&7&1&1&6 \\-2&1&9&2&1 \\-1&1&2&11&-1 \\-1&6&1&-1&13 \\\end{bmatrix}\right)=13247 >0. \end{align*} \]
A continuación apliquemos el algoritmo anterior:
Las matrices \(\mathbf{L}\) y \(\mathbf{D}\) serán: \[ \begin{align*} \mathbf{L} & =\begin{bmatrix}1&0&0&0&0 \\0.4&1&0&0&0 \\-0.4&0.290323&1&0&0 \\-0.2&0.225806&0.155462&1&0 \\-0.2&1.032258&-0.163866&-0.237862&1 \\\end{bmatrix},\\ \mathbf{D} & =\begin{bmatrix}5&0&0&0&0 \\0&6.2&0&0&0 \\0&0&7.677419&0&0 \\0&0&0&10.298319&0 \\0&0&0&0&5.404733 \\\end{bmatrix}. \end{align*} \]
Para resolver un sistema lineal \(\mathbf{A}\mathbf{x}=\mathbf{b}\) donde la matriz \(\mathbf{A}\) es simétrica y estrictamente definida positiva necesitamos realizar los pasos siguentes:
Los pasos 2 y 4 consisten en resolver un sistema lineal triangular inferior y triangular superior. Vimos en su momento que resolver un sistema triangular superior requería \(n^2-n\) operaciones básicas.
Se puede ver de la misma manera que resolver un sistema lineal triangular inferior requiere también \(n^2-n\) operaciones.
El número de operaciones básicas para resolver un sistema diagonal (paso 3) vale \(n\) ya que el sistema a resolver es el siguiente:
\[ \mathbf{D}\mathbf{z}=\mathbf{y},\Rightarrow \begin{bmatrix}d_{11}&0&\ldots&0 \\0&d_{22}&\ldots&0 \\\vdots&\vdots&\ddots&\vdots \\0&\ldots&0&d_{nn} \\\end{bmatrix}\begin{bmatrix}z_1\\\vdots\\ z_n\end{bmatrix}=\begin{bmatrix}y_1\\\vdots\\ y_n\end{bmatrix}. \] La solución del mismo es: \[ z_1=\frac{y_1}{d_{11}},\ldots, z_n=\frac{y_n}{d_{nn}}. \] En total, hemos realizado \(n\) divisiones, lo que equivale a \(n\) operaciones básicas.
En el paso 1 o en la factorización \(\mathbf{L}\mathbf{D}\mathbf{L}^\top\) realizamos las operaciones siguientes en el paso \(i\)-ésimo:
En el paso \(i\)-ésimo, tenemos que realizar un total de \(3i-2+(3i-1)(n-i)\) operaciones básicas.
Como el índice \(i\) va desde \(1\) hasta \(n\), el número total de operaciones básicas a realizar en el paso 1 será: \[ \sum_{i=1}^n (3i-2+(3i-1)(n-i))=\frac{1}{2} n (n (n+2)-1)=\frac{n^3}{2}+n^2-\frac{n}{2}. \]
Pasos | Número de operaciones |
---|---|
\(1\) | \(\frac{n^3}{2}+n^2-\frac{n}{2}\) |
\(2\) | \(n^2-n\) |
\(3\) | \(n\) |
\(4\) | \(n^2-n\) |
Total | \(\frac{n^3}{2}+3n^2-\frac{3n}{2}\) |
Hemos visto que si una matriz \(\mathbf{A}\) es simétrica y definida positiva, se puede descomponer como: \(\mathbf{A}=\mathbf{L}\mathbf{D}\mathbf{L}^\top\), donde \(\mathbf{L}\) es una matriz triangular inferior con unos en la diagonal y \(\mathbf{D}\) es una matriz diagonal con todas sus componentes diagonales positivas.
Usando la descomposición anterior, podemos escribir: \[ \mathbf{A}=\mathbf{L}\mathbf{D}\mathbf{L}^\top=\mathbf{L}\mathbf{D}^{\frac{1}{2}}\mathbf{D}^{\frac{1}{2}}\mathbf{L}^\top, \] donde
\[ \mathbf{D}^{\frac{1}{2}}=\begin{bmatrix}\sqrt{d_{11}}&0&\ldots&0 \\0&\sqrt{d_{22}}&\ldots&0 \\\vdots&\vdots&\ddots&\vdots \\0&\ldots&0&\sqrt{d_{nn}} \\\end{bmatrix}, \]
suponiendo que la matriz diagonal \(\mathbf{D}\) es la siguiente: \[ \mathbf{D}=\begin{bmatrix}d_{11}&0&\ldots&0 \\0&d_{22}&\ldots&0 \\\vdots&\vdots&\ddots&\vdots \\0&\ldots&0&d_{nn} \\\end{bmatrix}. \]
Si llamamos \(\tilde{\mathbf{L}}=\mathbf{L}\mathbf{D}^{\frac{1}{2}}\), tenemos que la matriz \(\mathbf{A}\) puede descomponerse como \(\mathbf{A}=\tilde{\mathbf{L}}\tilde{\mathbf{L}}^\top\). A dicha descomposición se le llama descomposición de Choleski.
Para realizar la descomposición de Choleski usamos un procedimiento similar cuando realizábamos la descomposición \(\mathbf{L}\mathbf{D}\mathbf{L}^\top\).
Es decir, vamos calculando las columnas de \(\tilde{\mathbf{L}}\):
Primer paso: \(\tilde{l}_{11}=\sqrt{a_{11}}\) y a continuación la primera columna de \(\tilde{\mathbf{L}}\): \(\tilde{l}_{j1}=\frac{a_{j1}}{\tilde{l}_{11}}\).
Segundo paso: \(\tilde{l}_{22}=\sqrt{a_{22}-\tilde{l}_{21}}\) y a continuación la segunda columna de \(\tilde{\mathbf{L}}\): \(\tilde{l}_{j2}=\frac{a_{j2}-\tilde{l}_{j1}\tilde{l}_{21}}{\tilde{l}_{22}}\), para \(j=3,\ldots,n\)
\(\vdots\)
*\(\vdots\)
INPUT
matriz del sistema \(\mathbf{A}=(a_{ij})_{i=1,\ldots,n,j=1,\ldots,n}\).Set
\(\tilde{\mathbf{L}}=\mathbf{0}\).Set
\(\tilde{l}_{11}=\sqrt{a_{11}}\).For i=2,...n
Set
\(\tilde{l}_{j1}=\frac{a_{j1}}{\tilde{l}_{11}}\).For i=2,...n
Set
\(\tilde{l}_{ii}=\left(a_{ii}-\sum_{k=1}^{i-1}\tilde{l}_{ik}^2\right)^{\frac{1}{2}}\).For j=i+1,...,n
Set
\(\tilde{l}_{ji}=\frac{\left(a_{ji}-\sum_{k=1}^{i-1}\tilde{l}_{jk}\tilde{l}_{ik}\right)}{\tilde{l}_{ii}}\).Set
\(\tilde{l}_{nn}=\left(a_{nn}-\sum_{k=1}^{n-1}\tilde{l}_{nk}^2\right)^{\frac{1}{2}}\).Print
\(\tilde{\mathbf{L}}\) (Damos la matriz \(\tilde{\mathbf{L}}\)).Vamos a hallar la descomposición de Choleski de la matriz siguiente vista anteriormente: \[ \mathbf{A}=\begin{bmatrix}5&2&-2&-1&-1 \\2&7&1&1&6 \\-2&1&9&2&1 \\-1&1&2&11&-1 \\-1&6&1&-1&13 \\\end{bmatrix}. \]
\[ \tilde{\mathbf{L}}=\begin{bmatrix}2.236068&0&0&0&0 \\0.894427&*&0&0&0 \\-0.894427&*&*&0&0 \\-0.447214&*&*&*&0 \\-0.447214&*&*&*&* \\\end{bmatrix}. \]
\[ \tilde{\mathbf{L}}=\begin{bmatrix}2.236068&0&0&0&0 \\0.894427&2.48998&0&0&0 \\-0.894427&0.722897&*&0&0 \\-0.447214&0.562254&*&*&0 \\-0.447214&2.570302&*&*&* \\\end{bmatrix}. \]
\[ \tilde{\mathbf{L}}=\begin{bmatrix}2.236068&0&0&0&0 \\0.894427&2.48998&0&0&0 \\-0.894427&0.722897&2.770816&0&0 \\-0.447214&0.562254&0.430757&*&0 \\-0.447214&2.570302&-0.454041&*&* \\\end{bmatrix}. \]
\[ \tilde{\mathbf{L}}=\begin{bmatrix}2.236068&0&0&0&0 \\0.894427&2.48998&0&0&0 \\-0.894427&0.722897&2.770816&0&0 \\-0.447214&0.562254&0.430757&3.209099&0 \\-0.447214&2.570302&-0.454041&-0.763323&* \\\end{bmatrix}. \]
\[ \tilde{\mathbf{L}}=\begin{bmatrix}2.236068&0&0&0&0 \\0.894427&2.48998&0&0&0 \\-0.894427&0.722897&2.770816&0&0 \\-0.447214&0.562254&0.430757&3.209099&0 \\-0.447214&2.570302&-0.454041&-0.763323&2.324808 \\\end{bmatrix}. \]
En muchos problemas de ingeniería y de machine learning, nos aparecen sistemas lineales cuya matriz del sistema es tridiagonal:
\[\mathbf{A}=\begin{bmatrix}a_{11}&a_{12}&0&0&\ldots&0 \\a_{21}&a_{22}&a_{23}&0&\ldots&0 \\0&a_{32}&a_{33}&a_{34}&\ldots&0 \\\vdots&\vdots&\vdots&\ddots&\vdots&\vdots \\0&\ldots&0&a_{n-1,n-2}&a_{n-1,n-1}&a_{n-1,n} \\0&\ldots&\ldots&0&a_{n,n-1}&a_{n,n} \\\end{bmatrix}.\]
En este caso, vamos a factorizar la matriz \(\mathbf{A}\) de la forma \(\mathbf{A}=\mathbf{L}\mathbf{U}\) donde las matrices \(\mathbf{L}\) y \(\mathbf{U}\) tienen la forma siguiente:
\[ \mathbf{L}=\begin{bmatrix}l_{11}&0&0&0&\ldots&0 \\l_{21}&l_{22}&0&0&\ldots&0 \\0&l_{32}&l_{33}&0&\ldots&0 \\\vdots&\vdots&\vdots&\ddots&\vdots&\vdots \\0&\ldots&0&l_{n-1,n-2}&a_{n-1,n-1}&0 \\0&\ldots&\ldots&0&l_{n,n-1}&l_{n,n} \\\end{bmatrix},\ \mathbf{U}=\begin{bmatrix}1&u_{12}&0&0&\ldots&0 \\0&1&u_{23}&0&\ldots&0 \\0&0&1&u_{34}&\ldots&0 \\\vdots&\vdots&\vdots&\ddots&\vdots&\vdots \\0&\ldots&0&0&1&u_{n-1,n} \\0&\ldots&\ldots&0&0&1 \\\end{bmatrix}. \]
Usando que \(\mathbf{A}=\mathbf{L}\mathbf{U}\), podemos hallar las componentes de las matrices \(\mathbf{L}\) y \(\mathbf{U}\).
Consideremos la fila \(i\)-ésima de la matriz \(\mathbf{A}\): \[ (0,\ldots,0,a_{i,i-1},a_{i,i},a_{i,i+1},0,\ldots,0), \]
entonces:
\[(0,\ldots,0,\overbrace{l_{i,i-1}}^{i-1},\overbrace{l_{ii}}^{i},0,\ldots,0)\]
por la columna \(i-1\)-ésima de la matriz \(\mathbf{U}\) \[ (0,\ldots,0,\overbrace{u_{i-1,i-2}}^{i-2},\overbrace{1}^{i-1},0,\ldots,0), \]
donde hemos indicado entre llaves las componentes de cada valor: \[ a_{i,i-1}=0\cdot u_{i-1,i-2}+l_{i,i-1}\cdot 1+l_{ii}\cdot 0=l_{i,i-1}. \]
A partir del primero de los tres resultados anteriores, \(a_{i,i-1}=l_{i,i-1},\) podemos calcular los valores \(l_{i,i-1}\) que van por debajo de la diagonal de la matriz \(\mathbf{L}\).
Para \(i=1\) tenemos que \(l_{11}=a_{11}\). Entonces usando los dos resultados últimos \[ \begin{align*} a_{i,i} & =l_{i,i-1}\cdot u_{i-1,i}+l_{i,i},\\ a_{i,i+1} &=l_{i,i}\cdot u_{i,i+1}, \end{align*} \] vamos calculando los valores \(u_{i,i+1}\) y \(l_{ii}\) alternativamente.
Es decir,
\(i=1\): \(l_{11}=a_{11}\), \[ a_{12}=l_{11}\cdot u_{12},\ \Rightarrow u_{12}=\frac{a_{12}}{l_{11}}. \]
\(i=2\): \[ \begin{align*} a_{22} & =l_{21}\cdot u_{12}+l_{22},\ \Rightarrow l_{22}=a_{22}-l_{21}\cdot u_{12},\\ a_{23} & =l_{22}\cdot u_{23},\ \Rightarrow u_{23}=\frac{a_{23}}{l_{22}}, \end{align*} \]
y así sucesivamente hasta llegar a \(i=n\).
INPUT
matriz del sistema \(\mathbf{A}=(a_{ij})_{i=1,\ldots,n,j=1,\ldots,n}\).Set
\(\mathbf{L}=\mathbf{0}\).Set
\(\mathbf{U}=\mathbf{Id}_n\).Set
\(l_{11}=a_{11}\).Set
\(u_{12}=\frac{a_{12}}{l_{11}}\).For i=2,...n-1
Set
\(l_{i,i-1}=a_{i,i-1}\). (fila \(i\)-ésima de \(\mathbf{L}\))Set
\(l_{ii}=a_{ii}-l_{i,i-1}u_{i-1,i}\).Set
\(u_{i,i+1}=\frac{a_{i,i+1}}{l_{i,i}}\). (columna \(i+1\)-ésima de \(\mathbf{U}\))Set
\(l_{n,n-1}=a_{n,n-1}\).Set
\(l_{n,n}=a_{n,n}-l_{n,n-1}u_{n-1,n}\)Print
\(\mathbf{L}\), \(\mathbf{U}\).Nos piden resolver el sistema de ecuaciones siguiente: \[ \begin{align*} E_1: & 5x_1 & +8 x_2 & & & & =& 1,\\ E_2: & 6x_1 & +6 x_2 & +2 x_3 & & & = & -1,\\ E_3: & & 6x_2 & +6 x_3 & +7 x_4 & & = & 4,\\ E_4: &&&+4 x_3&+5 x_4&+5 x_5&=&2,\\ E_5: & & & &6x_4 & +6 x_5 & = & 3. \end{align*} \] La matrix del sistema es tridiagonal: \[ \mathbf{A}=\begin{bmatrix}5&8&0&0&0 \\6&6&2&0&0 \\0&6&6&7&0 \\0&0&4&5&5 \\0&0&0&6&6 \\\end{bmatrix}. \]
Vamos a usar la descomposición de Crout para resolver el sistema:
\[ \mathbf{L}=\begin{bmatrix}5&0&0&0&0 \\*&*&0&0&0 \\0&*&*&0&0 \\0&0&*&*&0 \\0&0&0&*&* \\\end{bmatrix},\quad \mathbf{U}=\begin{bmatrix}1&1.6&0&0&0 \\0&1&*&0&0 \\0&0&1&*&0 \\0&0&0&1&* \\0&0&0&0&1 \\\end{bmatrix}. \]
\[ \mathbf{L}=\begin{bmatrix}5&0&0&0&0 \\6&-3.6&0&0&0 \\0&*&*&0&0 \\0&0&*&*&0 \\0&0&0&*&* \\\end{bmatrix},\quad \mathbf{U}=\begin{bmatrix}1&1.6&0&0&0 \\0&1&-0.555556&0&0 \\0&0&1&*&0 \\0&0&0&1&* \\0&0&0&0&1 \\\end{bmatrix}. \]
\[ \mathbf{L}=\begin{bmatrix}5&0&0&0&0 \\6&-3.6&0&0&0 \\0&6&9.333333&0&0 \\0&0&*&*&0 \\0&0&0&*&* \\\end{bmatrix},\quad \mathbf{U}=\begin{bmatrix}1&1.6&0&0&0 \\0&1&-0.555556&0&0 \\0&0&1&0.75&0 \\0&0&0&1&* \\0&0&0&0&1 \\\end{bmatrix}. \]
\[ \mathbf{L}=\begin{bmatrix}5&0&0&0&0 \\6&-3.6&0&0&0 \\0&6&9.333333&0&0 \\0&0&4&2&0 \\0&0&0&*&* \\\end{bmatrix},\quad \mathbf{U}=\begin{bmatrix}1&1.6&0&0&0 \\0&1&-0.555556&0&0 \\0&0&1&0.75&0 \\0&0&0&1&2.5 \\0&0&0&0&1 \\\end{bmatrix}. \]
\[ \begin{align*} l_{54} & =a_{54}=6,\\ l_{55} & =a_{55}-l_{54}u_{45}=6-6\cdot (2.5)=-9. \end{align*} \]
\[ \mathbf{L}=\begin{bmatrix}5&0&0&0&0 \\6&-3.6&0&0&0 \\0&6&9.333333&0&0 \\0&0&4&2&0 \\0&0&0&6&-9 \\\end{bmatrix},\quad \mathbf{U}=\begin{bmatrix}1&1.6&0&0&0 \\0&1&-0.555556&0&0 \\0&0&1&0.75&0 \\0&0&0&1&2.5 \\0&0&0&0&1 \\\end{bmatrix}. \]
A continuación, vamos a resolver el sistema.
Como hemos descompuesto \(\mathbf{A}\) de la forma \(\mathbf{A}=\mathbf{L}\mathbf{U}\), resolver el sistema \(\mathbf{A}\mathbf{x}=\mathbf{L}\mathbf{U}\mathbf{x}=\mathbf{b}\) con:
\[ \mathbf{A}=\begin{bmatrix}5&8&0&0&0 \\6&6&2&0&0 \\0&6&6&7&0 \\0&0&4&5&5 \\0&0&0&6&6 \\\end{bmatrix},\quad \mathbf{b}=\begin{bmatrix}1 \\-1 \\4 \\2 \\3 \\\end{bmatrix}, \]
recordemos que primero tenemos que resolver el sistema \(\mathbf{L}\mathbf{y}=\mathbf{b}\), y, una vez hallado \(\mathbf{y}\), resolver el sistema \(\mathbf{U}\mathbf{x}=\mathbf{y}\) y hallar la solución \(\mathbf{x}\).
Resolución de \(\mathbf{L}\mathbf{y}=\mathbf{b}\):
\[ \begin{align*} E_1: & 5y_1 & & & & & = & 1,\\ E_2: & 6y_1 & -3.6 y_2 & & & & = & -1,\\ E_3: & & 6y_2 & +9.333333 y_3 & & & = & 4,\\ E_4: &&&+4 y_3&+2 y_4&&=&2,\\ E_5: & & & &6y_4 & -9 y_5 & = & 3. \end{align*} \]
Usamos el método de sustitución hacia adelante:
\[ \begin{align*} y_1 & =\frac{1}{5}=0.2,\\ y_2 & =\frac{-1-6\cdot 0.2}{-3.6}=0.6111111,\\ y_3 & =\frac{4-6\cdot 0.6111111}{9.3333333}=0.0357143,\\ y_4 & =\frac{2-4\cdot 0.0357143}{2}=0.9285714,\\ y_5 & =\frac{3-6\cdot 0.9285714}{-9}=0.2857143. \end{align*} \]
Resolución de \(\mathbf{U}\mathbf{x}=\mathbf{y}\):
\[ \begin{align*} E_1: & x_1 & +1.6 x_2 & & & & =& 0.2,\\ E_2: & & x_2 & -0.555556 x_3 & & & = & 0.6111111,\\ E_3: & & & x_3 & +0.75 x_4 & & = & 0.0357143,\\ E_4: & & & & x_4 & +2.5 x_5&=&0.9285714,\\ E_5: & & & & & x_5 & = & 0.2857143. \end{align*} \]
Usamos el método de sustitución hacia atrás:
\[ \begin{align*} x_5 & =0.2857143,\\ x_4 &=0.9285714-2.5\cdot 0.2857143=0.2142857,\\ x_3 & =0.0357143-0.75\cdot 0.2142857=-0.125,\\ x_2 & =0.6111111-(-0.5555556)\cdot (-0.125)=0.5416667,\\ x_1 & =0.2-1.6\cdot 0.5416667=-0.6666667. \end{align*} \]Los métodos de ortogonalización para resolver un sistema lineal \(\mathbf{A}\mathbf{x}=\mathbf{b}\) consisten en descomponer la matriz del sistema \(\mathbf{A}\), regular \(n\times n\), de la forma \(\mathbf{A}=\mathbf{Q}\mathbf{R}\), donde la matriz \(\mathbf{Q}\) es ortogonal, (\(\mathbf{Q}^\top =\mathbf{Q}^{-1}\)) y la matriz \(\mathbf{R}\) es triangular superior.
Una vez obtenida dicha descomposición, resolver el sistema es sencillo: \[ \mathbf{A}\mathbf{x}=\mathbf{b},\ \Rightarrow \mathbf{Q}\mathbf{R}\mathbf{x}=\mathbf{b},\ \Rightarrow \mathbf{R}\mathbf{x}=\mathbf{Q}^\top\mathbf{b}, \] y solamente tenemos que resolver un sistema triangular superior usando el método de sustitución hacia atrás explicado anteriormente.
Consideremos el siguiente sistema de ecuaciones con \(5\) ecuaciones y \(5\) incógnitas: \[ \begin{align*} E_1: & 5x_1 & + x_2 & -3 x_3 & - x_4 & -2 x_5 & = 2,\\ E_2: & x_1 & +2 x_2 & +2 x_3 & & +3 x_5 & = 2,\\ E_3: & x_1 & - x_2 & +3 x_3& +2 x_4& & = 2,\\ E_4: & & x_2 & & +4 x_4 & - x_5 & = 3,\\ E_5: & x_1 & +3 x_2& + x_3 & & +5 x_5 & = 1. \end{align*} \] La matriz del sistema es la siguiente: \(\begin{bmatrix}5&1&-3&-1&-2 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\1&3&1&0&5 \\\end{bmatrix}\) con la siguiente descomposición \(QR\):
\[ \begin{align*} \mathbf{A} & = \mathbf{Q}\cdot \mathbf{R},\\ \begin{bmatrix}5&1&-3&-1&-2 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\1&3&1&0&5 \\\end{bmatrix}& =\begin{bmatrix}0.944911&-0.167701&-0.278534&0.024779&-0.028702 \\0.188982&0.463645&0.41874&-0.206152&-0.729025 \\0.188982&-0.364997&0.853128&0.202194&0.249705 \\0&0.276214&-0.068225&0.949537&-0.132028 \\0.188982&0.739859&0.120802&-0.11994&0.622828 \\\end{bmatrix}\cdot \\ & \begin{bmatrix}5.291503&1.70084&-1.70084&-0.566947&-0.377964 \\0&3.620379&1.075262&0.542564&5.149422 \\0&0&4.353269&1.71189&2.485526 \\0&0&0&4.177754&-2.217249 \\0&0&0&0&1.116499 \\\end{bmatrix}. \end{align*} \]
El sistema a resolver será: \[ \begin{align*} & \mathbf{R}\mathbf{x} =\mathbf{Q}^\top\cdot\mathbf{b},\\ & \begin{bmatrix}5.291503&1.70084&-1.70084&-0.566947&-0.377964 \\0&3.620379&1.075262&0.542564&5.149422 \\0&0&4.353269&1.71189&2.485526 \\0&0&0&4.177754&-2.217249 \\0&0&0&0&1.116499 \\\end{bmatrix} \begin{bmatrix}x_1\\ x_2\\ x_3\\ x_4\\ x_5\end{bmatrix} = \\ & \begin{bmatrix}0.944911&0.188982&0.188982&0&0.188982 \\-0.167701&0.463645&-0.364997&0.276214&0.739859 \\-0.278534&0.41874&0.853128&-0.068225&0.120802 \\0.024779&-0.206152&0.202194&0.949537&-0.11994 \\-0.028702&-0.729025&0.249705&-0.132028&0.622828 \\\end{bmatrix}\cdot\begin{bmatrix}2 \\2 \\2 \\3 \\1 \\\end{bmatrix}=\begin{bmatrix}2.834734 \\1.430395 \\1.902795 \\2.770313 \\-0.789298 \\\end{bmatrix}, \end{align*} \]
La solución del sistema será usando el método de sustitución hacia atrás: \[ \begin{align*} x_5 & =\frac{-0.789298}{1.116499}=-0.706941,\\ x_4 & =\frac{2.770313-(-2.2172487)\cdot (-0.7069409)}{4.1777542}=0.2879177,\\ x_3 & =\frac{1.9027949-(2.4855259)\cdot (-0.7069409)-1.7118895\cdot 0.2879177}{4.3532693}=0.7275064,\\ x_2 & =\frac{1.4303949-5.1494217\cdot (-0.7069409)-0.5425636\cdot 0.2879177-1.0752624\cdot 0.7275064}{3.6203788}\\ & =1.1413882,\\ x_1 & =\frac{1}{5.2915026}(2.8347335-(-0.3779645)\cdot (-0.7069409)-(-0.5669467)\cdot 0.2879177\\ & \quad -(-1.7008401)\cdot 0.7275064 -1.7008401\cdot 1.1413882)=0.3830334. \end{align*} \]
El método de descomposición \(QR\) se basa en el método de ortogonalización de Gram-Schmidt. Dicho método resuelve el problema siguiente:
Sean \(\mathbf{v}_1,\ldots,\mathbf{v}_{k}\in\mathbb{R}^n\), \(k\) vectores linealmente independientes en el espacio vectorial \(\mathbb{R}^n\) (\(n\geq k\)). Queremos hallar \(\mathbf{u}_1,\ldots,\mathbf{u}_k\in\mathbb{R}^n\), que cumplen lo siguiente:
Paso 1: Elegimos \(\mathbf{u}_1'=\mathbf{v}_1\) y \(\mathbf{u}_1=\frac{\mathbf{u}_1'}{\|\mathbf{u}_1'\|}\).
Paso 2: como \(<\mathbf{u}_1,\mathbf{u}_2>=<\mathbf{v}_1,\mathbf{v}_2>=<\mathbf{u_1},\mathbf{v}_2>\), definimos: \(\mathbf{u}_2'=\mathbf{v}_2+\lambda_{12}\mathbf{u}_1\) y hallamos \(\lambda_{12}\) imponiendo que \(\mathbf{u}_1\) y \(\mathbf{u}_2'\) deben ser ortogonales: \[ \begin{align*} & \mathbf{u}_1^\top\cdot\mathbf{u}_2' =0,\ \Rightarrow \mathbf{u}_1^\top\cdot (\mathbf{v}_2+\lambda_{12}\mathbf{u}_1)=\mathbf{u}_1^\top\cdot\mathbf{v}_2 +\lambda_{12}\cdot\mathbf{u}_1^\top\cdot\mathbf{u}_1 =0,\ \Rightarrow\\ & \lambda_{12} =-\frac{\mathbf{u}_1^\top\cdot\mathbf{v}_2}{\mathbf{u}_1^\top\cdot\mathbf{u}_1}=-\frac{\mathbf{u}_1^\top\cdot\mathbf{v}_2}{\|\mathbf{u}_1\|^2}=-\mathbf{u}_1^\top\cdot\mathbf{v}_2. \end{align*} \]
Entonces, \[ \mathbf{u}_2'=\mathbf{v}_2-(\mathbf{u}_1^\top\cdot\mathbf{v}_2)\cdot\mathbf{u}_1, \]
y por último, para hacer \(\mathbf{u}_2\) ortonormal, o que su norma euclídea sea \(1\), dividimos \(\mathbf{u}_2'\) por su norma: \[ \mathbf{u}_2 =\frac{\mathbf{u}_2'}{\|\mathbf{u}_2'\|}=\frac{\mathbf{v}_2-(\mathbf{u}_1^\top\cdot\mathbf{v}_2)\cdot\mathbf{u}_1}{\|\mathbf{v}_2-(\mathbf{u}_1^\top\cdot\mathbf{v}_2)\cdot\mathbf{u}_1\|} \]
Como \(<\mathbf{u}_1,\ldots,\mathbf{u}_{i-1},\mathbf{u}_i>=<\mathbf{v}_1,\ldots,\mathbf{v}_{i-1},\mathbf{v}_i>=<\mathbf{u}_1,\ldots,\mathbf{u}_{i-1},\mathbf{v}_i>\), definimos: \[ \mathbf{u}_i' =\mathbf{v_i}+\sum_{j=1}^{i-1}\lambda_{ji}\cdot\mathbf{u}_j. \] Vamos a hallar los valores \(\lambda_{ji}\).
Como \(\mathbf{u}_l^\top\cdot\mathbf{u}_i' =0\), para \(l=1,\ldots,i-1\), tenemos que: \[ \mathbf{u}_l^\top\cdot\mathbf{u}_i' =\mathbf{u}_l^\top\cdot\left(\mathbf{v_i}+\sum_{j=1}^{i-1}\lambda_{ji}\cdot\mathbf{u}_j\right)=\mathbf{u}_l^\top\cdot\mathbf{v_i} +\lambda_{li}\cdot(\mathbf{u}_l^\top\cdot\mathbf{u}_l) =0, \] y, por tanto, el valor de \(\lambda_{li}\) vale: \[ \lambda_{li} = -\frac{\mathbf{u}_l^\top\cdot\mathbf{v}_i}{\mathbf{u}_l^\top\cdot\mathbf{u}^l}=-\frac{\mathbf{u}_l^\top\cdot\mathbf{v}_i}{\|\mathbf{u}_l\|^2}=-\mathbf{u}_l^\top\cdot\mathbf{v}_i. \] Por tanto, \[ \mathbf{u}_i' =\mathbf{v_i}-\sum_{j=1}^{i-1}(\mathbf{u}_j^\top\cdot\mathbf{v}_i)\cdot\mathbf{u}_j. \]
y por último, para hacer \(\mathbf{u}_i\) ortonormal, o que su norma euclídea sea \(1\), lo dividimos por su norma: \[ \mathbf{u}_i =\frac{\mathbf{u}_i'}{\|\mathbf{u}_i'\|}=\frac{\mathbf{v_i}-\sum_{j=1}^{i-1}(\mathbf{u}_j^\top\cdot\mathbf{v}_i)\cdot\mathbf{u}_j}{\|\mathbf{v_i}-\sum_{j=1}^{i-1}(\mathbf{u}_j^\top\cdot\mathbf{v}_i)\cdot\mathbf{u}_j\|}. \]
Hallemos los vectores resultantes de aplicar el método de ortogonalización de Gram-Schmidt a las columnas de la matriz del sistema de ecuaciones del ejemplo anterior: \[ \mathbf{A}=\begin{bmatrix}5&1&-3&-1&-2 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\1&3&1&0&5 \\\end{bmatrix} \] Los vectores \(\mathbf{v}_1,\mathbf{v}_2,\mathbf{v}_3,\mathbf{v}_4,\mathbf{v}_5\) serían los siguientes: \[ \mathbf{v}_1=\begin{bmatrix}5 \\1 \\1 \\0 \\1 \\\end{bmatrix},\ \mathbf{v}_2=\begin{bmatrix}1 \\2 \\-1 \\1 \\3 \\\end{bmatrix},\ \mathbf{v}_3=\begin{bmatrix}-3 \\2 \\3 \\0 \\1 \\\end{bmatrix},\ \mathbf{v}_4=\begin{bmatrix}-1 \\0 \\2 \\4 \\0 \\\end{bmatrix},\ \mathbf{v}_5=\begin{bmatrix}-2 \\3 \\0 \\-1 \\5 \\\end{bmatrix}. \]
\[ \begin{align*} -\mathbf{u}_1^\top\cdot \mathbf{v}_2 & =-\begin{bmatrix}0.944911&0.188982&0.188982&0&0.188982 \\\end{bmatrix}\cdot \begin{bmatrix}1 \\2 \\-1 \\1 \\3 \\\end{bmatrix}\\ & =-(0.944911\cdot1+0.188982\cdot2+0.188982\cdot (-1)+0\cdot1+0.188982\cdot3)=-1.70084. \end{align*} \]
El valor de \(\mathbf{u}_2'\) será: \[ \mathbf{u}_2'=\mathbf{v}_2+\lambda_{12}\cdot\mathbf{u}_1 =\begin{bmatrix}1 \\2 \\-1 \\1 \\3 \\\end{bmatrix}-1.70084\cdot \begin{bmatrix}0.944911 \\0.188982 \\0.188982 \\0 \\0.188982 \\\end{bmatrix}=\begin{bmatrix}-0.607143 \\1.678571 \\-1.321429 \\1 \\2.678571 \\\end{bmatrix}. \] Por último, hacemos que el vector \(\mathbf{u}_2\) sea ortonormal o tenga norma euclídea \(1\):
\[ \begin{align*} \mathbf{u}_2 & = \frac{\mathbf{u}_2'}{\|\mathbf{u}_2'\|}=\frac{1}{\|\begin{bmatrix}-0.607143&1.678571&-1.321429&1&2.678571 \\\end{bmatrix}\|}\cdot \begin{bmatrix}-0.607143 \\1.678571 \\-1.321429 \\1 \\2.678571 \\\end{bmatrix}\\ & =\frac{1}{3.620379}\cdot \begin{bmatrix}-0.607143 \\1.678571 \\-1.321429 \\1 \\2.678571 \\\end{bmatrix}=\begin{bmatrix}-0.167701 \\0.463645 \\-0.364997 \\0.276214 \\0.739859 \\\end{bmatrix} \end{align*} \]
El valor de \(\mathbf{u}_3'\) será: \[ \begin{align*} \mathbf{u}_3' & =\mathbf{v}_3+\lambda_{13}\cdot\mathbf{u}_1+\lambda_{23}\cdot\mathbf{u}_2 =\begin{bmatrix}-3 \\2 \\3 \\0 \\1 \\\end{bmatrix}+1.70084\cdot \begin{bmatrix}0.944911 \\0.188982 \\0.188982 \\0 \\0.188982 \\\end{bmatrix}+(-1.075262)\cdot \begin{bmatrix}-0.167701 \\0.463645 \\-0.364997 \\0.276214 \\0.739859 \\\end{bmatrix}\\ & =\begin{bmatrix}-1.212534 \\1.822888 \\3.713896 \\-0.297003 \\0.525886 \\\end{bmatrix}. \end{align*} \]
Por último, hacemos que el vector \(\mathbf{u}_3\) sea ortonormal o tenga norma euclídea \(1\): \[ \begin{align*} \mathbf{u}_3 & = \frac{\mathbf{u}_3'}{\|\mathbf{u}_3'\|}=\frac{1}{\|\begin{bmatrix}-1.212534&1.822888&3.713896&-0.297003&0.525886 \\\end{bmatrix}\|}\cdot \begin{bmatrix}-1.212534 \\1.822888 \\3.713896 \\-0.297003 \\0.525886 \\\end{bmatrix}\\ & =\frac{1}{4.353269}\cdot \begin{bmatrix}-1.212534 \\1.822888 \\3.713896 \\-0.297003 \\0.525886 \\\end{bmatrix}=\begin{bmatrix}-0.278534 \\0.41874 \\0.853128 \\-0.068225 \\0.120802 \\\end{bmatrix} \end{align*} \]
El valor de \(\mathbf{u}_4'\) será: \[ \begin{align*} \mathbf{u}_4' & =\mathbf{v}_4+\lambda_{14}\cdot\mathbf{u}_1+\lambda_{24}\cdot\mathbf{u}_2+\lambda_{34}\cdot\mathbf{u}_3 =\begin{bmatrix}-1 \\0 \\2 \\4 \\0 \\\end{bmatrix}+0.566947\cdot \begin{bmatrix}0.944911 \\0.188982 \\0.188982 \\0 \\0.188982 \\\end{bmatrix}+(-0.542564)\cdot \begin{bmatrix}-0.167701 \\0.463645 \\-0.364997 \\0.276214 \\0.739859 \\\end{bmatrix}\\ & \qquad +(-1.71189)\cdot \begin{bmatrix}-0.278534 \\0.41874 \\0.853128 \\-0.068225 \\0.120802 \\\end{bmatrix} =\begin{bmatrix}0.103523 \\-0.861251 \\0.844716 \\3.96693 \\-0.501078 \\\end{bmatrix}. \end{align*} \]
Por último, hacemos que el vector \(\mathbf{u}_4\) sea ortonormal o tenga norma euclídea \(1\): \[ \begin{align*} \mathbf{u}_4 & = \frac{\mathbf{u}_4'}{\|\mathbf{u}_4'\|}=\frac{1}{\|\begin{bmatrix}0.103523&-0.861251&0.844716&3.96693&-0.501078 \\\end{bmatrix}\|}\cdot \begin{bmatrix}0.103523 \\-0.861251 \\0.844716 \\3.96693 \\-0.501078 \\\end{bmatrix}\\ & =\frac{1}{4.177754}\cdot \begin{bmatrix}0.103523 \\-0.861251 \\0.844716 \\3.96693 \\-0.501078 \\\end{bmatrix}=\begin{bmatrix}0.024779 \\-0.206152 \\0.202194 \\0.949537 \\-0.11994 \\\end{bmatrix}. \end{align*} \]
\[ \begin{align*} \lambda_{45} & = -\mathbf{u}_4^\top\cdot\mathbf{v}_5=-\begin{bmatrix}0.024779&-0.206152&0.202194&0.949537&-0.11994 \\\end{bmatrix}\cdot \begin{bmatrix}-2 \\3 \\0 \\-1 \\5 \\\end{bmatrix}\\ & =-(0.024779\cdot (-2)+(-0.206152)\cdot3+0.202194\cdot 0+0.949537\cdot (-1)+(-0.11994)\cdot5) =2.217249. \end{align*} \]
El valor de \(\mathbf{u}_5'\) será: \[ \begin{align*} \mathbf{u}_5' & =\mathbf{v}_5+\lambda_{15}\cdot\mathbf{u}_1+\lambda_{25}\cdot\mathbf{u}_2+\lambda_{35}\cdot\mathbf{u}_3+\lambda_{45}\cdot\mathbf{u}_4 =\begin{bmatrix}-2 \\3 \\0 \\-1 \\5 \\\end{bmatrix}+0.377964\cdot \begin{bmatrix}0.944911 \\0.188982 \\0.188982 \\0 \\0.188982 \\\end{bmatrix}\\ & \qquad +(-5.149422)\cdot \begin{bmatrix}-0.167701 \\0.463645 \\-0.364997 \\0.276214 \\0.739859 \\\end{bmatrix} +(-2.485526)\cdot \begin{bmatrix}-0.278534 \\0.41874 \\0.853128 \\-0.068225 \\0.120802 \\\end{bmatrix}+2.217249\cdot \begin{bmatrix}0.024779 \\-0.206152 \\0.202194 \\0.949537 \\-0.11994 \\\end{bmatrix} =\begin{bmatrix}-0.032045 \\-0.813955 \\0.278796 \\-0.147409 \\0.695387 \\\end{bmatrix}. \end{align*} \]
Por último, hacemos que el vector \(\mathbf{u}_5\) sea ortonormal o tenga norma euclídea \(1\): \[ \begin{align*} \mathbf{u}_5 & = \frac{\mathbf{u}_5'}{\|\mathbf{u}_5'\|}=\frac{1}{\|\begin{bmatrix}-0.032045&-0.813955&0.278796&-0.147409&0.695387 \\\end{bmatrix}\|}\cdot \begin{bmatrix}-0.032045 \\-0.813955 \\0.278796 \\-0.147409 \\0.695387 \\\end{bmatrix}\\ & =\frac{1}{1.116499}\cdot \begin{bmatrix}-0.032045 \\-0.813955 \\0.278796 \\-0.147409 \\0.695387 \\\end{bmatrix}=\begin{bmatrix}-0.028702 \\-0.729025 \\0.249705 \\-0.132028 \\0.622828 \\\end{bmatrix}. \end{align*} \]
En resumen, hemos convertido las columnas de la matriz \[ \mathbf{A}=\begin{bmatrix}5&1&-3&-1&-2 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\1&3&1&0&5 \\\end{bmatrix}, \] en las columnas de la matriz \[ \mathbf{Q}=\begin{bmatrix}0.944911&-0.167701&-0.278534&0.024779&-0.028702 \\0.188982&0.463645&0.41874&-0.206152&-0.729025 \\0.188982&-0.364997&0.853128&0.202194&0.249705 \\0&0.276214&-0.068225&0.949537&-0.132028 \\0.188982&0.739859&0.120802&-0.11994&0.622828 \\\end{bmatrix}, \] de tal forma que si construimos la submatriz formada por las \(k\) primeras columnas de la matriz \(\mathbf{A}\) y las \(k\) primeras columnas de la matriz \(\mathbf{Q}\), es decir, dicha submatriz tendrá \(5\) filas y \(2k\) columnas, entonces el rango de dicha submatriz será siempre \(k\), con \(k=1,2,3,4,5\).
Ejercicio
Verificar la afirmación anterior para \(k=3\), es decir, demostrar que el rango de la submatriz siguiente es \(3\): \[ \begin{bmatrix}5&1&-3&0.944911&-0.167701&-0.278534 \\1&2&2&0.188982&0.463645&0.41874 \\1&-1&3&0.188982&-0.364997&0.853128 \\0&1&0&0&0.276214&-0.068225 \\1&3&1&0.188982&0.739859&0.120802 \\\end{bmatrix}. \]
El método de ortogonalización de Gram-Schmidt es la clave para hallar la descomposición \(QR\) de una matriz \(\mathbf{A}\):
Sea \(\mathbf{A}\) una matriz cuadrada \(n\times n\) no singular. Aplicamos la ortogonalización de Gram-Schmidt a las columnas de la matriz \(\mathbf{A}\).
La matrices \(\mathbf{Q}\) y \(\mathbf{R}\) de la descomposición \(QR\) de la matriz \(\mathbf{A}\) son las siguientes:
\[ \mathbf{R}=\begin{bmatrix}\|\mathbf{u}_{1}'\|&-\lambda_{12}&\ldots&-\lambda_{1n} \\0&\|\mathbf{u}_{2}'\|&\ldots&-\lambda_{2n} \\\vdots&\vdots&\ddots&\vdots \\0&\ldots&0&\|\mathbf{u}_{n}'\| \\\end{bmatrix}. \] Es decir, la matriz \(\mathbf{R}\) tiene como diagonal la norma euclídea de los vectores \(\mathbf{u}_i'\), \(i=1,\ldots,n\) de la ortogonalización de Gram-Schmidt y \(r_{ij}=-\lambda_{ij}\), para los elementos fuera de la diagonal con \(j>i\).
Sean \(\mathbf{v}_1,\ldots,\mathbf{v}_n\) la columnas de la matriz \(\mathbf{A}\).
Recordemos la relación que hay entre los vectores \(\mathbf{v}_i\) y los vectores \(\mathbf{u}_i\): \[ \mathbf{u}_i'=\mathbf{v}_i+\sum_{j=1}^{i-1}\lambda_{ji}\mathbf{u}_j, \] para \(i=1,\ldots,n\).
Si despejamos \(\mathbf{v}_i\) de la expresión anterior, obtenemos: \[ \mathbf{v}_i=\mathbf{u}_i'-\sum_{j=1}^{i-1}\lambda_{ji}\mathbf{u}_j=\|\mathbf{u}_i'\|\cdot \mathbf{u}_i -\sum_{j=1}^{i-1}\lambda_{ji}\mathbf{u}_j. \] Si escribimos la expresión anterior en componentes, obtenemos: \[ v_{ik} = \|\mathbf{u}_i'\|\cdot u_{ik} -\sum_{j=1}^{i-1}\lambda_{ji}u_{jk}, \] para \(k=1,\ldots,n\), e \(i=1,\ldots,n\), donde \(v_{ik}\) es la componente \(k\)-ésima del vector \(\mathbf{v}_i\) y \(u_{jk}\) es la componente \(k\)-ésima del vector \(\mathbf{u}_j\).
Recordemos que \(\mathbf{v}_i\) era la columna \(i\)-ésima de la matriz \(\mathbf{A}\). Entonces si escribimos \(\mathbf{A}=(a_{ij})_{i,j=1,\ldots,n}\), \(a_{ij}=v_{ji}\).
Sea la matriz \(\mathbf{Q}\) ortogonal cuyas columnas son los vectores ortonormales \(\mathbf{u}_1,\ldots,\mathbf{u}_n\). Entonces si escribimos \(\mathbf{Q}=(q_{ij})_{i,j=1,\ldots,n}\), \(q_{ij}=u_{ji}\).
Por último definimos la matriz \(\mathbf{R}=(r_{ij})_{i,j=1,\ldots,n}\) tal como está definida en la proposición.
Entonces, la expresión anterior puede escribirse de la forma siguiente: \[ a_{ki} = \|\mathbf{u}_i'\|\cdot q_{ki} -\sum_{j=1}^{i-1}\lambda_{ji}q_{kj}=\sum_{j=1}^{i-1}q_{kj}r_{ji}+q_{ki}\cdot r_{ii}=\sum_{j=1}^i q_{kj}r_{ji}. \] La expresión anterior es equivalente a afirmar que \(\mathbf{A}=\mathbf{Q}\mathbf{R}\), tal como queríamos demostrar.
INPUT número de incógnitas y ecuaciones
\(n\), matriz
\(\mathbf{A}=(a_{ij})_{i=1,\ldots,n,j=1,\ldots,n}\), vector de términos independientes
\(\mathbf{b}=(b_i)_{i=1,\ldots,n}\).Set
\(\mathbf{Q}=\mathbf{0}\) (inicializamos la matriz \(\mathbf{Q}\) a \(\mathbf{0}\))Set
\(\mathbf{R}=\mathbf{0}\) (inicializamos la matriz \(\mathbf{R}\) a \(\mathbf{0}\))Set
\(\mathbf{Q}[:,1]=\mathbf{A}[:,1]/\|\mathbf{A}[:,1]\|_2\). (la primera columna de la matriz \(\mathbf{Q}\) es la primera columna de la matriz \(\mathbf{A}\) normalizada)Set
\(\mathbf{R}[1,1]=\|\mathbf{A}[:,1]\|_2\) (definimos \(R[1,1]\) como la norma euclídea de la primera columna de la matriz \(\mathbf{A}\))For i=2,...,n
For j=1,...,i-1
Set
\(\mathbf{R}[j,i]=\mathbf{Q}[:,j]\cdot \mathbf{A}[:,i]\) (la componente \((j,i)\) de la matriz \(R\) es el producto escalar de la columna \(j\)-ésima de la matriz \(\mathbf{Q}\) por la columna \(i\)-ésima de la matriz \(\mathbf{A}\) cambiado de signo.)Set
\(\mathbf{u}_i'=\mathbf{A}[:,i]-\sum_{j=1}^{i-1}\mathbf{R}[j,i]\cdot\mathbf{Q}[:,j]\) (calculamos el vector \(\mathbf{u}_i'\))Set
\(\mathbf{R}[i,i]=\|\mathbf{u}_i'\|_2\) (calculamos \(R[i,i]\))Set
\(\mathbf{Q}[:,i]=\frac{\mathbf{u}_i'}{\|\mathbf{u}_i'\|_2}\) (definimos la columna \(i\)-ésima de la matriz \(\mathbf{Q}\))Resolvemos
\(\mathbf{R}\mathbf{x}=\mathbf{Q}^\top\mathbf{b}\) por sustitución hacia atrás.
Print
\(\mathbf{x}\) (damos la solución del sistema)Para la matriz del ejemplo anterior: \[ \mathbf{A}=\begin{bmatrix}5&1&-3&-1&-2 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\1&3&1&0&5 \\\end{bmatrix}, \] la matriz \(\mathbf{Q}\) sería la matriz cuyas columnas son los vectores \(\mathbf{u}_1,\mathbf{u}_2,\mathbf{u}_3,\mathbf{u}_4\) y \(\mathbf{u}_5\): \[ \mathbf{Q}=\begin{bmatrix}0.944911&-0.167701&-0.278534&0.024779&-0.028702 \\0.188982&0.463645&0.41874&-0.206152&-0.729025 \\0.188982&-0.364997&0.853128&0.202194&0.249705 \\0&0.276214&-0.068225&0.949537&-0.132028 \\0.188982&0.739859&0.120802&-0.11994&0.622828 \\\end{bmatrix}. \]
Los valores \(\lambda_{ij}\) ya fueron calculados y eran: \[ \begin{align*} \lambda_{12} & = -1.70084,\ \lambda_{13}=1.70084,\ \lambda_{14}=0.566947,\ \lambda_{15}=0.377964,\\ \lambda_{23} & = -1.075262,\ \lambda_{24}=-0.542564,\ \lambda_{25}=-5.149422,\\ \lambda_{34} & = -1.71189,\ \lambda_{35}=-2.485526,\\ \lambda_{45} & = 2.217249. \end{align*} \]
Los valores de las normas euclídeas de los vectores \(\mathbf{u}_1',\mathbf{u}_2',\mathbf{u}_3',\mathbf{u}_4'\) y \(\mathbf{u}_5'\) valen:
\[ \|\mathbf{u}_1'\| =\|\mathbf{v}_1\| =5.291503,\ \|\mathbf{u}_2'\| =3.620379,\ \|\mathbf{u}_3'\| =4.353269,\ \|\mathbf{u}_4'\| =4.177754,\ \|\mathbf{u}_5'\| =1.116499. \] La matriz \(\mathbf{R}\) será, entonces, \[ \mathbf{R}=\begin{bmatrix}5.291503&1.70084&-1.70084&-0.566947&-0.377964 \\0&3.620379&1.075262&0.542564&5.149422 \\0&0&4.353269&1.71189&2.485526 \\0&0&0&4.177754&-2.217249 \\0&0&0&0&1.116499 \\\end{bmatrix}. \]Vamos a ver cómo podemos usar las técnicas de resolución de sistemas lineales por métodos directos para calcular:
Dada una matriz cuadrada \(n\times n\) y regular \(\mathbf{A}\), hallar la matriz inversa \(\mathbf{A}^{-1}\) equivale a hallar una matriz \(n\times n\), \(\mathbf{A}^{-1}\) tal que: \[ \mathbf{A}\cdot \mathbf{A}^{-1}=\mathbf{I}_n, \] donde \(\mathbf{I}_n\) es la matriz identidad \(n\times n\):
\[ \mathbf{I}_n=\begin{bmatrix}1&0&\ldots&0 \\0&1&\ldots&0 \\\vdots&\vdots&\ddots&\vdots \\0&0&\ldots&1 \\\end{bmatrix}. \]
Sea \(\mathbf{c}_i\) la columna \(i\)-ésima de la matriz inversa \(\mathbf{A}^{-1}\). Usando la condición anterior, tenemos que dicha columna \(\mathbf{c}_i\) verifica el siguiente sistema lineal: \[ \mathbf{A}\cdot\mathbf{c}_i =\mathbf{e}_i:=\begin{bmatrix}0\\\vdots\\\overbrace{1}^{i)}\\\vdots\\ 0\end{bmatrix}. \]
Dicho de otra manera, hallar la matriz inversa \(\mathbf{A}^{-1}\) es equivalente a resolver \(n\) sistemas lineales todos con la misma matriz del sistema \(\mathbf{A}\) pero con diferentes vectores de términos independientes.
La resolución del sistema anterior corresponde a la columna \(i\)-ésima de la matriz inversa \(\mathbf{A}^{-1}\), \(\mathbf{c}_i\).
La matriz inversa \(\mathbf{A}^{-1}\) será pues: \(\mathbf{A}^{-1}=(\mathbf{c}_1,\ldots,\mathbf{c}_n)\).
Como la matriz del sistema es la misma para los \(n\) sistemas lineales anteriores, podemos hallar la inversa usando los métodos vistos anteriormente:
Vamos a hallar la inversa de la matriz vista anteriormente \[ \mathbf{A}=\begin{bmatrix}5&1&-3&-1&-2 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\1&3&1&0&5 \\\end{bmatrix}, \] usando la descomposición \(LU\). Dicha descomposición es la siguiente: \[ \mathbf{L}=\begin{bmatrix}1&0&0&0&0 \\0.2&1&0&0&0 \\0.2&-0.666667&1&0&0 \\0&0.555556&-0.270833&1&0 \\0.2&1.555556&-0.458333&0.211982&1 \\\end{bmatrix},\quad\mathbf{U}=\begin{bmatrix}5&1&-3&-1&-2 \\0&1.8&2.6&0.2&3.4 \\0&0&5.333333&2.333333&2.666667 \\0&0&0&4.520833&-2.166667 \\0&0&0&0&1.792627 \\\end{bmatrix}. \]
\[ \begin{align*} y_{11} & =1,\ y_{21}=0-0.2 y_{11}=-0.2,\ y_{31}=0+0.666667 y_{21}-0.2 y_{11}=-0.333333,\\ y_{41} & =0+0.270833 y_{31}-0.555556 y_{21}=0.0208333,\\ y_{51} & =0-0.211982 y_{41}+0.458333 y_{31}-1.555556 y_{21}-0.2 y_{11}=-0.0460829. \end{align*} \] El vector \(\mathbf{y}_1\) vale: \(\begin{bmatrix}1 \\-0.2 \\-0.333333 \\0.020833 \\-0.046083 \\\end{bmatrix}.\)
A continuación, calculamos la primera columna \(\mathbf{c}_1\) de la matriz \(\mathbf{A}^{-1}\) resolviendo: \[ \mathbf{U}\cdot\mathbf{c}_1=\mathbf{y}_1,\quad \begin{bmatrix}5&1&-3&-1&-2 \\0&1.8&2.6&0.2&3.4 \\0&0&5.333333&2.333333&2.666667 \\0&0&0&4.520833&-2.166667 \\0&0&0&0&1.792627 \\\end{bmatrix}\cdot\begin{bmatrix}c_{11}\\c_{21}\\c_{31}\\c_{41}\\c_{51}\end{bmatrix}=\begin{bmatrix}1 \\-0.2 \\-0.333333 \\0.020833 \\-0.046083 \\\end{bmatrix}. \]
\[ \begin{align*} c_{51} & =\frac{-0.046083}{1.792627}=-0.025707,\\ c_{41} & =\frac{0.020833-(-2.1666667)\cdot c_{51}}{4.5208333}=-0.0077121,\\ c_{31} & =\frac{-0.3333333-2.6666667\cdot c_{51}-2.3333333\cdot c_{41}}{5.3333333}=-0.0462725,\\ c_{21} & =\frac{-0.2-3.4\cdot c_{51}-0.2\cdot c_{41}-2.6\cdot c_{31}}{1.8}=0.0051414,\\ c_{11} & =\frac{1-(-2)\cdot c_{51}-(-1)\cdot c_{41}-(-3)\cdot c_{31}-1\cdot c_{21}}{5}=0.159383. \end{align*} \]
\[ \begin{align*} y_{12} & =0,\ y_{22}=1-0.2 y_{12}=1,\ y_{32}=0+0.666667 y_{22}-0.2 y_{12}=0.666667,\\ y_{42} & =0+0.270833 y_{32}-0.555556 y_{22}=-0.375,\\ y_{52} & =0-0.211982 y_{42}+0.458333 y_{32}-1.555556 y_{22}-0.2 y_{12}=-1.1705069. \end{align*} \] El vector \(\mathbf{y}_2\) vale: \(\begin{bmatrix}0 \\1 \\0.666667 \\-0.375 \\-1.170507 \\\end{bmatrix}.\)
A continuación, calculamos la segunda columna \(\mathbf{c}_2\) de la matriz \(\mathbf{A}^{-1}\) resolviendo: \[ \mathbf{U}\cdot\mathbf{c}_2=\mathbf{y}_2,\quad \begin{bmatrix}5&1&-3&-1&-2 \\0&1.8&2.6&0.2&3.4 \\0&0&5.333333&2.333333&2.666667 \\0&0&0&4.520833&-2.166667 \\0&0&0&0&1.792627 \\\end{bmatrix}\cdot\begin{bmatrix}c_{12}\\c_{22}\\c_{32}\\c_{42}\\c_{52}\end{bmatrix}=\begin{bmatrix}0 \\1 \\0.666667 \\-0.375 \\-1.170507 \\\end{bmatrix}. \]
\[ \begin{align*} c_{52} & =\frac{-1.170507}{1.792627}=-0.652956,\\ c_{42} & =\frac{-0.375-(-2.1666667)\cdot c_{52}}{4.5208333}=-0.3958869,\\ c_{32} & =\frac{0.6666667-2.6666667\cdot c_{52}-2.3333333\cdot c_{42}}{5.3333333}=0.6246787,\\ c_{22} & =\frac{1-3.4\cdot c_{52}-0.2\cdot c_{42}-2.6\cdot c_{32}}{1.8}=0.9305913,\\ c_{12} & =\frac{0-(-2)\cdot c_{52}-(-1)\cdot c_{42}-(-3)\cdot c_{32}-1\cdot c_{22}}{5}=-0.151671. \end{align*} \]
\[ \begin{align*} y_{13} & =0,\ y_{23}=0-0.2 y_{13}=0,\ y_{33}=1+0.666667 y_{23}-0.2 y_{13}=1,\\ y_{43} & =0+0.270833 y_{33}-0.555556 y_{23}=0.2708333,\\ y_{53} & =0-0.211982 y_{43}+0.458333 y_{33}-1.555556 y_{23}-0.2 y_{13}=0.4009217. \end{align*} \] El vector \(\mathbf{y}_3\) vale: \(\begin{bmatrix}0 \\0 \\1 \\0.270833 \\0.400922 \\\end{bmatrix}.\)
A continuación, calculamos la tercera columna \(\mathbf{c}_3\) de la matriz \(\mathbf{A}^{-1}\) resolviendo: \[ \mathbf{U}\cdot\mathbf{c}_3=\mathbf{y}_3,\quad \begin{bmatrix}5&1&-3&-1&-2 \\0&1.8&2.6&0.2&3.4 \\0&0&5.333333&2.333333&2.666667 \\0&0&0&4.520833&-2.166667 \\0&0&0&0&1.792627 \\\end{bmatrix}\cdot\begin{bmatrix}c_{13}\\c_{23}\\c_{33}\\c_{43}\\c_{53}\end{bmatrix}=\begin{bmatrix}0 \\0 \\1 \\0.270833 \\0.400922 \\\end{bmatrix}. \]
\[ \begin{align*} c_{53} & =\frac{0.400922}{1.792627}=0.22365,\\ c_{43} & =\frac{0.270833-(-2.1666667)\cdot c_{53}}{4.5208333}=0.1670951,\\ c_{33} & =\frac{1-2.6666667\cdot c_{53}-2.3333333\cdot c_{43}}{5.3333333}=0.0025707,\\ c_{23} & =\frac{0-3.4\cdot c_{53}-0.2\cdot c_{43}-2.6\cdot c_{33}}{1.8}=-0.4447301,\\ c_{13} & =\frac{0-(-2)\cdot c_{53}-(-1)\cdot c_{43}-(-3)\cdot c_{33}-1\cdot c_{23}}{5}=0.2133676. \end{align*} \]
\[ \begin{align*} y_{14} & =0,\ y_{24}=0-0.2 y_{14}=0,\ y_{34}=0+0.666667 y_{24}-0.2 y_{14}=0,\\ y_{44} & =1+0.270833 y_{34}-0.555556 y_{24}=1,\\ y_{54} & =0-0.211982 y_{44}+0.458333 y_{34}-1.555556 y_{24}-0.2 y_{14}=-0.2119816. \end{align*} \] El vector \(\mathbf{y}_4\) vale: \(\begin{bmatrix}0 \\0 \\0 \\1 \\-0.211982 \\\end{bmatrix}.\)
A continuación, calculamos la cuarta columna \(\mathbf{c}_4\) de la matriz \(\mathbf{A}^{-1}\) resolviendo: \[ \mathbf{U}\cdot\mathbf{c}_4=\mathbf{y}_4,\quad \begin{bmatrix}5&1&-3&-1&-2 \\0&1.8&2.6&0.2&3.4 \\0&0&5.333333&2.333333&2.666667 \\0&0&0&4.520833&-2.166667 \\0&0&0&0&1.792627 \\\end{bmatrix}\cdot\begin{bmatrix}c_{14}\\c_{24}\\c_{34}\\c_{44}\\c_{54}\end{bmatrix}=\begin{bmatrix}0 \\0 \\0 \\1 \\-0.211982 \\\end{bmatrix}. \]
\[ \begin{align*} c_{54} & =\frac{-0.211982}{1.792627}=-0.118252,\\ c_{44} & =\frac{1-(-2.1666667)\cdot c_{54}}{4.5208333}=0.1645244,\\ c_{34} & =\frac{0-2.6666667\cdot c_{54}-2.3333333\cdot c_{44}}{5.3333333}=-0.0128535,\\ c_{24} & =\frac{0-3.4\cdot c_{54}-0.2\cdot c_{44}-2.6\cdot c_{34}}{1.8}=0.2236504,\\ c_{14} & =\frac{0-(-2)\cdot c_{54}-(-1)\cdot c_{44}-(-3)\cdot c_{34}-1\cdot c_{24}}{5}=-0.066838. \end{align*} \]
\[ \begin{align*} y_{15} & =0,\ y_{25}=0-0.2 y_{15}=0,\ y_{35}=0+0.666667 y_{25}-0.2 y_{15}=0,\\ y_{45} & =0+0.270833 y_{35}-0.555556 y_{25}=0,\\ y_{55} & =1-0.211982 y_{45}+0.458333 y_{35}-1.555556 y_{25}-0.2 y_{15}=1. \end{align*} \] El vector \(\mathbf{y}_5\) vale: \(\begin{bmatrix}0 \\0 \\0 \\0 \\1 \\\end{bmatrix}.\)
A continuación, calculamos la quinta columna \(\mathbf{c}_5\) de la matriz \(\mathbf{A}^{-1}\) resolviendo: \[ \mathbf{U}\cdot\mathbf{c}_5=\mathbf{y}_5,\quad \begin{bmatrix}5&1&-3&-1&-2 \\0&1.8&2.6&0.2&3.4 \\0&0&5.333333&2.333333&2.666667 \\0&0&0&4.520833&-2.166667 \\0&0&0&0&1.792627 \\\end{bmatrix}\cdot\begin{bmatrix}c_{15}\\c_{25}\\c_{35}\\c_{45}\\c_{55}\end{bmatrix}=\begin{bmatrix}0 \\0 \\0 \\0 \\1 \\\end{bmatrix}. \]
\[ \begin{align*} c_{55} & =\frac{1}{1.792627}=0.557841,\\ c_{45} & =\frac{0-(-2.1666667)\cdot c_{55}}{4.5208333}=0.2673522,\\ c_{35} & =\frac{0-2.6666667\cdot c_{55}-2.3333333\cdot c_{45}}{5.3333333}=-0.3958869,\\ c_{25} & =\frac{0-3.4\cdot c_{55}-0.2\cdot c_{45}-2.6\cdot c_{35}}{1.8}=-0.5115681,\\ c_{15} & =\frac{0-(-2)\cdot c_{55}-(-1)\cdot c_{45}-(-3)\cdot c_{35}-1\cdot c_{25}}{5}=0.1413882. \end{align*} \]
La matriz inversa \(\mathbf{A}^{-1}\) será: \[ \mathbf{A}^{-1}=\begin{bmatrix}0.159383&-0.151671&0.213368&-0.066838&0.141388 \\0.005141&0.930591&-0.44473&0.22365&-0.511568 \\-0.046272&0.624679&0.002571&-0.012853&-0.395887 \\-0.007712&-0.395887&0.167095&0.164524&0.267352 \\-0.025707&-0.652956&0.22365&-0.118252&0.557841 \\\end{bmatrix}. \]
El vector \(\mathbf{y}_i\) es de la forma: \[ \mathbf{y}_i =\begin{bmatrix}0\\\vdots\\0\\\overbrace{1}^{i)}\\y_{i+1,i}\\\vdots\\y_{n,i} \end{bmatrix}. \] Por tanto, sólo hace falta hallar \(n-i\) componentes de dicho vector.
Hallemos la inversa de la matriz \(\mathbf{A}=\begin{bmatrix}5&1&-3&-1&-2 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\1&3&1&0&5 \\\end{bmatrix}\) usando la descomposición \(QR\).
La descomposición \(QR\) de la matriz \(\mathbf{A}\) es la siguiente: \[ \begin{align*} \mathbf{Q} & =\begin{bmatrix}0.944911&-0.167701&-0.278534&0.024779&-0.028702 \\0.188982&0.463645&0.41874&-0.206152&-0.729025 \\0.188982&-0.364997&0.853128&0.202194&0.249705 \\0&0.276214&-0.068225&0.949537&-0.132028 \\0.188982&0.739859&0.120802&-0.11994&0.622828 \\\end{bmatrix},\\ \mathbf{R} & =\begin{bmatrix}5.291503&1.70084&-1.70084&-0.566947&-0.377964 \\0&3.620379&1.075262&0.542564&5.149422 \\0&0&4.353269&1.71189&2.485526 \\0&0&0&4.177754&-2.217249 \\0&0&0&0&1.116499 \\\end{bmatrix}. \end{align*} \]
Usamos la técnica de sustitución hacia atrás: \[ \begin{align*} c_{51} & =\frac{-0.028702}{1.116499}=-0.025707,\\ c_{41} & =\frac{0.024779-(-2.2172487)\cdot c_{51}}{4.1777542}=-0.0077121,\\ c_{31} & =\frac{-0.2785341-2.4855259\cdot c_{51}-1.7118895\cdot c_{41}}{4.3532693}=-0.0462725,\\ c_{21} & =\frac{-0.1677015-5.1494217\cdot c_{51}-0.5425636\cdot c_{41}-1.0752624\cdot c_{31}}{3.6203788}=0.0051414,\\ c_{11} & =\frac{0.9449112-(-0.3779645)\cdot c_{51}-(-0.5669467)\cdot c_{41}-(-1.7008401)\cdot c_{31}-1.7008401\cdot c_{21}}{5.2915026}=0.159383. \end{align*} \]
Usamos la técnica de sustitución hacia atrás: \[ \begin{align*} c_{52} & =\frac{-0.729025}{1.116499}=-0.652956,\\ c_{42} & =\frac{-0.206152-(-2.2172487)\cdot c_{52}}{4.1777542}=-0.3958869,\\ c_{32} & =\frac{0.4187401-2.4855259\cdot c_{52}-1.7118895\cdot c_{42}}{4.3532693}=0.6246787,\\ c_{22} & =\frac{0.4636452-5.1494217\cdot c_{52}-0.5425636\cdot c_{42}-1.0752624\cdot c_{32}}{3.6203788}=0.9305913,\\ c_{12} & =\frac{0.1889822-(-0.3779645)\cdot c_{52}-(-0.5669467)\cdot c_{42}-(-1.7008401)\cdot c_{32}-1.7008401\cdot c_{22}}{5.2915026}=-0.151671. \end{align*} \]
Usamos la técnica de sustitución hacia atrás: \[ \begin{align*} c_{53} & =\frac{0.249705}{1.116499}=0.22365,\\ c_{43} & =\frac{0.202194-(-2.2172487)\cdot c_{53}}{4.1777542}=0.1670951,\\ c_{33} & =\frac{0.8531281-2.4855259\cdot c_{53}-1.7118895\cdot c_{43}}{4.3532693}=0.0025707,\\ c_{23} & =\frac{-0.3649973-5.1494217\cdot c_{53}-0.5425636\cdot c_{43}-1.0752624\cdot c_{33}}{3.6203788}=-0.4447301,\\ c_{13} & =\frac{0.1889822-(-0.3779645)\cdot c_{53}-(-0.5669467)\cdot c_{43}-(-1.7008401)\cdot c_{33}-1.7008401\cdot c_{23}}{5.2915026}=0.2133676. \end{align*} \]
Usamos la técnica de sustitución hacia atrás: \[ \begin{align*} c_{54} & =\frac{-0.132028}{1.116499}=-0.118252,\\ c_{44} & =\frac{0.949537-(-2.2172487)\cdot c_{54}}{4.1777542}=0.1645244,\\ c_{34} & =\frac{-0.0682252-2.4855259\cdot c_{54}-1.7118895\cdot c_{44}}{4.3532693}=-0.0128535,\\ c_{24} & =\frac{0.2762142-5.1494217\cdot c_{54}-0.5425636\cdot c_{44}-1.0752624\cdot c_{34}}{3.6203788}=0.2236504,\\ c_{14} & =\frac{0-(-0.3779645)\cdot c_{54}-(-0.5669467)\cdot c_{44}-(-1.7008401)\cdot c_{34}-1.7008401\cdot c_{24}}{5.2915026}=-0.066838. \end{align*} \]
Usamos la técnica de sustitución hacia atrás: \[ \begin{align*} c_{55} & =\frac{0.622828}{1.116499}=0.557841,\\ c_{45} & =\frac{-0.11994-(-2.2172487)\cdot c_{55}}{4.1777542}=0.2673522,\\ c_{35} & =\frac{0.1208024-2.4855259\cdot c_{55}-1.7118895\cdot c_{45}}{4.3532693}=-0.3958869,\\ c_{25} & =\frac{0.7398594-5.1494217\cdot c_{55}-0.5425636\cdot c_{45}-1.0752624\cdot c_{35}}{3.6203788}=-0.5115681,\\ c_{15} & =\frac{0.1889822-(-0.3779645)\cdot c_{55}-(-0.5669467)\cdot c_{45}-(-1.7008401)\cdot c_{35}-1.7008401\cdot c_{25}}{5.2915026}=0.1413882. \end{align*} \]
Para calcular el determinante de una matriz \(\mathbf{A}\) cuadrada \(n\times n\), podemos aprovechar la descomposición \(LU\) de dicha matriz y afirmar que \(\mathrm{det}(\mathbf{A})=\mathrm{det}(\mathbf{L})\cdot\mathrm{det}(\mathbf{U})\).
Ahora bien, como la matriz \(\mathbf{L}\) es triangular inferior con \(1\) en la diagonal, \(\mathrm{det}(\mathbf{L})=1\) y como la matriz \(\mathbf{U}=(u_{ij})_{i,j=1,\ldots,n}\) es triangular superior, \(\mathrm{det}(\mathbf{U})=u_{11}\cdots u_{nn}\).
En resumen, \(\mathrm{det}(\mathrm{A})=u_{11}\cdots u_{nn}\).
Si quisiéramos usar la descomposición \(QR\) de la matriz \(\mathbf{A}\), sólo podemos conocer \(|\mathrm{det}(\mathbf{A})|\) ya que \(\mathrm{det}(\mathbf{A})=\mathrm{det}(\mathbf{Q})\cdot\mathrm{det}(\mathbf{R})\).
La matriz \(\mathbf{Q}\), al ser ortogonal, verifica que \(\mathrm{det}(\mathbf{Q})=\pm 1\) y la matriz \(\mathbf{R}=(r_{ij})_{i,j=1,\ldots,n}\) al ser triangular superior, verifica que \(\mathrm{det}(\mathbf{R})=r_{11}\cdots r_{nn}\).
En resumen, \(\mathrm{det}(\mathrm{A})=\pm r_{11}\cdots r_{nn}\). Por tanto, sólo podemos conocer \(|\mathrm{det}(\mathbf{A})|\).
Vamos a hallar el determinante de la matriz vista anteriormente \[ \mathbf{A}=\begin{bmatrix}5&1&-3&-1&-2 \\1&2&2&0&3 \\1&-1&3&2&0 \\0&1&0&4&-1 \\1&3&1&0&5 \\\end{bmatrix}, \] usando la descomposición \(LU\). Recordemos que dicha descomposición era la siguiente: \[ \mathbf{L}=\begin{bmatrix}1&0&0&0&0 \\0.2&1&0&0&0 \\0.2&-0.666667&1&0&0 \\0&0.555556&-0.270833&1&0 \\0.2&1.555556&-0.458333&0.211982&1 \\\end{bmatrix},\quad\mathbf{U}=\begin{bmatrix}5&1&-3&-1&-2 \\0&1.8&2.6&0.2&3.4 \\0&0&5.333333&2.333333&2.666667 \\0&0&0&4.520833&-2.166667 \\0&0&0&0&1.792627 \\\end{bmatrix}. \]
El determinante de la matriz \(\mathbf{A}\) vale: \[ \mathrm{det}(\mathbf{A})=u_{11}\cdot u_{22}\cdot u_{33}\cdot u_{44}\cdot u_{55}=5\cdot 1.8\cdot 5.333333\cdot 4.520833\cdot 1.792627=389. \]
Cuando resolvemos un sistema lineal \(\mathbf{A}\mathbf{x}=\mathbf{b}\), la matriz del sistema \(\mathbf{A}\) y el vector de términos independientes \(\mathbf{b}\) pueden estar afectados por un error en los datos.
Entonces, en realidad, resolvemos el sistema \[ (\mathbf{A}+\delta(\mathbf{A}))(\mathbf{x}+\delta(\mathbf{x}))=\mathbf{b}+\delta(\mathbf{b}), \] donde \(\mathbf{A}+\delta(\mathbf{A})\) sería la matriz del sistema perturbada o con error y \(\mathbf{b}+\delta(\mathbf{b})\) sería el vector de términos independientes perturbado o con error.
En la expresión anterior, indicamos por \(\mathbf{x}\) la solución exacta o sin errores del sistema lineal y \(\mathbf{x}+\delta(\mathbf{x})\) la solución del sistema lineal perturbado o con error.
La cuestión que nos planteamos es cómo afectan dichos errores a la solución del sistema \(\mathbf{x}+\delta(\mathbf{x})\) o, dicho de otra forma, ¿existe alguna forma de controlar el error de la solución del sistema, \(\delta(\mathbf{x})\) en función de alguna característica de la matriz del sistema \(\mathbf{A}\) y el vector de términos independientes \(\mathbf{b}\)?
Supongamos de cara a simplificar nuestro problema que sólo existe error en los datos de la matriz del sistema \(\mathbf{A}\). En este caso, resolvemos el sistema siguiente: \[ (\mathbf{A}+\delta(\mathbf{A}))(\mathbf{x}+\delta(\mathbf{x}))=\mathbf{b}. \] Si desarrollamos la expresión anterior, obtenemos: \[ \mathbf{A}\mathbf{x}+\mathbf{A}\delta(\mathbf{x})+\mathbf{\delta(A)}\mathbf{x}+\delta(\mathbf{A})\delta(\mathbf{x})=\mathbf{b}. \] Usando que \(\mathbf{A}\mathbf{x}=\mathbf{b}\) y despreciando el término \(\delta(\mathbf{A})\delta(\mathbf{x})\) ya que es el producto de dos errores y su valor será muy pequeño en comparación con los demás, nos queda: \[ \mathbf{A}\delta(\mathbf{x})+\mathbf{\delta(A)}\mathbf{x}\approx \mathbf{0},\ \Rightarrow \mathbf{A}\delta(\mathbf{x})\approx -\mathbf{\delta(A)}\mathbf{x},\ \Rightarrow \delta(\mathbf{x})\approx -\mathbf{A}^{-1}\mathbf{\delta(A)}\mathbf{x}. \]
Tomando una norma vectorial \(\|\cdot\|\) y su normal matricial correspondiente, obtenemos que: \[ \begin{align*} \|\delta(\mathbf{x})\| & \approx \|\mathbf{A}^{-1}\delta(\mathbf{A})\mathbf{x}\|\leq \|\mathbf{A}^{-1}\|\cdot\|\delta(\mathbf{A})\|\cdot\|\mathbf{x}\|\\ & =\|\mathbf{A}^{-1}\|\cdot\|\mathbf{A}\|\frac{\|\delta(\mathbf{A})\|}{\|\mathbf{A}\|}\cdot\|\mathbf{x}\|. \end{align*} \] Es decir, \[ \frac{\|\delta(\mathbf{x})\|}{\|\mathbf{x}\|}\leq \|\mathbf{A}^{-1}\|\cdot\|\mathbf{A}\|\cdot \frac{\|\delta(\mathbf{A})\|}{\|\mathbf{A}\|}. \] La expresión anterior nos dice que el error relativo cometido en la solución del sistema lineal está acotado por la cantidad \(\|\mathbf{A}^{-1}\|\cdot\|\mathbf{A}\|\) por el error relativo de la matriz del sistema.
A la cantidad \(\mu(\mathbf{A}):=\|\mathbf{A}^{-1}\|\cdot\|\mathbf{A}\|\) se le llama número de condición de la matriz \(\mathbf{A}\) y, como hemos visto, juega un papel fundamental a la hora de controlar el error relativo cometido en la solución del sistema.
Es decir, si el número de condición de una matriz es grande, el sistema lineal correspondiente será inestable en el sentido de que una pequeña perturbación en la matriz del sistema dará lugar a una solución con un error relativo grande.
Supongamos ahora que sólo existe error en los datos del vector de términos independientes \(\mathbf{b}\). En este caso, resolvemos el sistema siguiente: \[ \mathbf{A}(\mathbf{x}+\delta(\mathbf{x}))=\mathbf{b}+\delta(\mathbf{b}). \] Si desarrollamos la expresión anterior, obtenemos: \[ \mathbf{A}\mathbf{x}+\mathbf{A}\delta(\mathbf{x})=\mathbf{b}+\delta(\mathbf{b}). \] Usando que \(\mathbf{A}\mathbf{x}=\mathbf{b}\), nos queda: \[ \mathbf{A}\delta(\mathbf{x})=\delta(\mathbf{b}), \Rightarrow \delta(\mathbf{x})= \mathbf{A}^{-1}\delta(\mathbf{b}). \]
Tomando igual que antes una norma vectorial \(\|\cdot\|\) y su normal matricial correspondiente, obtenemos que: \[ \frac{\|\delta(\mathbf{x})\|}{\|\mathbf{x}\|}=\frac{\|\mathbf{A}^{-1}\delta(\mathbf{b})\|}{\|\mathbf{A}^{-1}\mathbf{b}\|}. \] A continuación veamos que \(\frac{1}{\|\mathbf{A}^{-1}b\|}\leq\frac{\|\mathbf{A}\|}{\|\mathbf{b}\|}\): \[ \begin{align*} \|\mathbf{b}\| & =\|\mathbf{A}\mathbf{A}^{-1}\mathbf{b}\|\leq\|\mathbf{A}\|\cdot\|\mathbf{A}^{-1}\mathbf{b}\|,\ \Rightarrow \frac{\|\mathbf{b}\|}{\|\mathbf{A}\|}\leq \|\mathbf{A}^{-1}\mathbf{b}\|,\ \Rightarrow\\ \frac{\|\mathbf{A}\|}{\|\mathbf{b}\|} & \geq\frac{1}{\|\mathbf{A}^{-1}\mathbf{b}\|}. \end{align*} \]
Por tanto, \[ \frac{\|\delta(\mathbf{x})\|}{\|\mathbf{x}\|}=\frac{\|\mathbf{A}^{-1}\delta(\mathbf{b})\|}{\|\mathbf{A}^{-1}\mathbf{b}\|}\leq \|\mathbf{A}^{-1}\|\cdot\|\mathbf{A}\|\cdot\frac{\|\delta(\mathbf{b})\|}{\|\mathbf{b}\|}=\mu(\mathbf{A})\cdot\frac{\|\delta(\mathbf{b})\|}{\|\mathbf{b}\|}. \] Dicho en otras palabras, el error relativo de la solución del sistema es menor que el número de condición de la matriz del sistema por el error relativo del vector de términos independientes.
En resumen, si el número de condición de una matriz es grande, el sistema lineal correspondiente será inestable en el sentido de que una pequeña perturbación en el vector de términos independientes dará lugar a una solución con un error relativo grande.
Supongamos ahora que tenemos error en los datos de la matriz del sistema \(\mathbf{A}\) y en el vector de términos independientes \(\mathbf{b}\). En este caso, resolvemos el sistema siguiente: \[ (\mathbf{A}+\delta(\mathbf{A}))(\mathbf{x}+\delta(\mathbf{x}))=\mathbf{b}+\delta(\mathbf{b}). \] En este caso, puede demostrarse la desigualdad siguiente fijada una norma vectorial junto con la correspondiente norma matricial: \[ \frac{\|\delta(\mathbf{x})\|}{\|\mathbf{x}\|}\leq \mu(\mathbf{A})\left(\frac{\|\delta(\mathbf{b})\|}{\|\mathbf{b}\|}+\frac{\|\delta(\mathbf{A})\|}{\|\mathbf{A}\|}\cdot \frac{\|\mathbf{x}+\delta(\mathbf{x})\|}{\|\mathbf{x}\|}\right). \]
\[ \begin{align*} \mu_2(\mathbf{U}\mathbf{A}) & =\|\mathbf{U}\mathbf{A}\|_2\cdot\|(\mathbf{U}\mathbf{A})^{-1}\|_2\\ &=\sqrt{\rho((\mathbf{U}\mathbf{A})^\top\mathbf{U}\mathbf{A})}\cdot \sqrt{\rho(((\mathbf{U}\mathbf{A})^{-1})^\top(\mathbf{U}\mathbf{A})^{-1})}\\ & = \sqrt{\rho(\mathbf{A}^\top\mathbf{U}^\top\mathbf{U}\mathbf{A})}\cdot\sqrt{\rho((\mathbf{A}^{-1}\mathbf{U}^{-1})^\top \mathbf{A}^{-1}\mathbf{U}^{-1})}\\ & = \sqrt{\rho(\mathbf{A}^\top\mathbf{A})}\cdot\sqrt{\rho((\mathbf{A}^{-1}\mathbf{U}^\top)^\top \mathbf{A}^{-1}\mathbf{U}^\top)}\\ & = \|\mathbf{A}\|_2\cdot\sqrt{\rho(\mathbf{U}(\mathbf{A}^{-1})^\top\mathbf{A}^{-1}\mathbf{U}^\top)}= \|\mathbf{A}\|_2\cdot\sqrt{\rho((\mathbf{A}^{-1})^\top\mathbf{A}^{-1})}\\ & = \|\mathbf{A}\|_2\cdot\|\mathbf{A}^{-1}\|_2=\mu_2(\mathbf{A}), \end{align*} \] donde \(\rho(\cdot)\) representa el radio espectral de una matriz y hemos usado que \(\mathbf{U}^{-1}=\mathbf{U}^\top\).
En el penúltimo paso hemos utilizado que los valores propios de la matriz \(\mathbf{U}(\mathbf{A}^{-1})^\top\mathbf{A}^{-1}\mathbf{U}^\top\) son los mismos que los valores propios de la matriz \(\mathbf{A}^{-1})^\top\mathbf{A}^{-1}\) ya que la primera representa un cambio de base respecto de la segunda matriz. Por tanto, tendrán el mismo radio espectral, como vimos en el capítulo de Preliminares.
Si resolvemos el sistema lineal \(\mathbf{A}\mathbf{x}=\mathbf{b}\) usando la descomposición \(QR\), tenemos que, usando la propiedad anterior, \(\mu_2(\mathbf{R})=\mu_2(\mathbf{Q}^\top\mathbf{A})=\mu_2(\mathbf{A})\) al ser la matriz \(\mathbf{Q}^\top\) ortogonal.
Entonces, cuando resolvemos el sistema triangular superior \(\mathbf{R}\mathbf{x}=\mathbf{Q}^\top\mathbf{b}\), la propagación de los errores de la solución \(\mathbf{x}\) no empeoran con respecto a la resolución del sistema original \(\mathbf{A}\mathbf{x}=\mathbf{b}\) al tener las dos matrices del sistema el mismo número de condición.
Consideremos el sistema de ecuaciones siguiente visto anteriormente:
\[ \left. \begin{align*} 0.010534x_1+0.02x_2= & -1,\\ x_1+2x_2= & 3. \end{align*} \right\} \] La matriz del sistema es \(\mathbf{A}=\begin{bmatrix}0.010534&0.02 \\1&2 \\\end{bmatrix}\) cuya norma euclídea vale \(\|\mathbf{A}\|_2=2.2361822\).
La inversa de la matriz anterior vale \(\mathbf{A}^{-1}=\begin{bmatrix}1872.659176&-18.726592 \\-936.329588&9.863296 \\\end{bmatrix}\) cuya norma euclídea vale \(\|\mathbf{A}^{-1}\|_2=2093.803538.\)
El número de condición de la matriz del sistema vale: \[ \mu_2(\mathbf{A})=\|\mathbf{A}\|_2\cdot \|\mathbf{A}^{-1}\|_2=2.2361822\cdot2093.803538=4682.126158. \] El número de condición anterior es grande. Por tanto, la solución del sistema será inestable y sensible a los errores en la matriz del sistema y al vector de términos independientes.