You are on page 1of 9

3.4.

3 CALCULO DE LA MATRIZ INVERSA CON EL METODO DE GAUSS


Con el método de Gauss Jordan, también podemos calculas la Inversa de la Matriz. Para
esto debemos añadir a nuestra matriz A(n*n) una matriz unitaria de (n*n) y convertir la
matriz A en una matriz unitaria y los valores se la inversa se irán calculando en la
matriz unitaria anexada.
Invirtamos la siguiente matriz( Trabajemos con MatLab):
A=[3,-4,2.4,2;-3,1,4.2,-3;2,1.5,1,6.2;4,-1,-3.4,3]
A=
3.0000 -4.0000 2.4000 2.0000
-3.0000 1.0000 4.2000 -3.0000
2.0000 1.5000 1.0000 6.2000
4.0000 -1.0000 -3.4000 3.0000
Para calcular la matriz inversa de A vamos a utilizar una matriz 4*4 unitaria, para esto
creamos esta matriz con la función eye(n), en donde n es el orden de la matriz, para este
caso específico 4.
B=eye(4)
B=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Vamos a guardar en una variable T, el valor de A(1,1) y luego dividimos tanto la
primera fila de la matriz A, como de la B para esta variable T, pero antes nos ayudamos
con un vector I que servirá de contador.
T=A(1,1)
T=
3
>> I=1:4
I=
1 2 3 4
>> A(1,I)=A(1,I)/T
A=
1.0000 -1.3333 0.8000 0.6667
-3.0000 1.0000 4.2000 -3.0000
2.0000 1.5000 1.0000 6.2000
4.0000 -1.0000 -3.4000 3.0000
>> B(1,I)=B(1,I)/T
B=
0.3333 0 0 0
0 1.0000 0 0
0 0 1.0000 0
0 0 0 1.0000

Ahora vamos a hacer ceros la primer columna de la matriz A. Para esto debemos
realizar los siguientes cálculos, tanto en la matriz A como en la B:
En la F2, reemplazamos por F2-F1*a(2,1);
En la F3, reemplazamos por F3-F1*a(3,1)
En la F4, reemplazamos por F4-F1*a(4,1),
Obviamente antes del cambio debemos almacenar tanto a(2,1); a(3,1); a(4,1) en una
variable temporal.
>> T1=A(2,1);A(2,I)=A(2,I)-A(1,I)*T1;B(2,I)=B(2,I)-B(1,I)*T1;
>> T1=A(3,1);A(3,I)=A(3,I)-A(1,I)*T1;B(3,I)=B(3,I)-B(1,I)*T1;
>> T1=A(4,1);A(4,I)=A(4,I)-A(1,I)*T1;B(4,I)=B(4,I)-B(1,I)*T1;
>> A
A=
1.0000 -1.3333 0.8000 0.6667
0 -3.0000 6.6000 -1.0000
0 4.1667 -0.6000 4.8667
0 4.3333 -6.6000 0.3333
>> B
B=
0.3333 0 0 0
1.0000 1.0000 0 0
-0.6667 0 1.0000 0
-1.3333 0 0 1.0000

Ahora debemos hacer 1 a la posición a(2,2), para esto dividimos la fila 2 de las matrices
A y B para el valor almacenado en esta posición.
>> T=A(2,2)
T=
-3
>> A(2,I)=A(2,I)/T; B(2,I)=B(2,I)/T;
>> A
A=
1.0000 -1.3333 0.8000 0.6667
0 1.0000 -2.2000 0.3333
0 4.1667 -0.6000 4.8667
0 4.3333 -6.6000 0.3333
>> B
B=
0.3333 0 0 0
-0.3333 -0.3333 0 0
-0.6667 0 1.0000 0
-1.3333 0 0 1.0000

Ahora vamos a hacer ceros la primer columna de la matriz A. Para esto debemos
realizar los siguientes cálculos, tanto en la matriz A como en la B:
En la F1, reemplazamos por F1-F2*a(1,2);
En la F3, reemplazamos por F3-F2*a(3,2)
En la F4, reemplazamos por F4-F2*a(4,2),
Obviamente antes del cambio debemos almacenar tanto a(1,2); a(3,2); a(4,2) en una
variable temporal.
>> T1=A(1,2);A(1,I)=A(1,I)-A(2,I)*T1;B(1,I)=B(1,I)-B(2,I)*T1;
>> T1=A(3,2);A(3,I)=A(3,I)-A(2,I)*T1;B(3,I)=B(3,I)-B(2,I)*T1;
>> T1=A(4,2);A(4,I)=A(4,I)-A(2,I)*T1;B(4,I)=B(4,I)-B(2,I)*T1;
>> A
A=
1.0000 0 -2.1333 1.1111
0 1.0000 -2.2000 0.3333
0 0 8.5667 3.4778
0 0 2.9333 -1.1111
>> B
B=
-0.1111 -0.4444 0 0
-0.3333 -0.3333 0 0
0.7222 1.3889 1.0000 0
0.1111 1.4444 0 1.0000
Ahora seguimos el mismo procedimiento para la columna 3.
>> T=A(3,3)
T=
8.5667
>> A(3,I)=A(3,I)/T;B(3,I)=B(3,I)/T;
>> A
A=
1.0000 0 -2.1333 1.1111
0 1.0000 -2.2000 0.3333
0 0 1.0000 0.4060
0 0 2.9333 -1.1111
>> B
B=
-0.1111 -0.4444 0 0
-0.3333 -0.3333 0 0
0.0843 0.1621 0.1167 0
0.1111 1.4444 0 1.0000
>> T1=A(1,3);A(1,I)=A(1,I)-A(3,I)*T1;B(1,I)=B(1,I)-B(3,I)*T1;
>> T1=A(2,3);A(2,I)=A(2,I)-A(3,I)*T1;B(2,I)=B(2,I)-B(3,I)*T1;
>> T1=A(4,3);A(4,I)=A(4,I)-A(3,I)*T1;B(4,I)=B(4,I)-B(3,I)*T1;
>> A
A=
1.0000 0 0 1.9772
0 1.0000 0 1.2265
0 0 1.0000 0.4060
0 0 0 -2.3019
>> B
B=
0.0687 -0.0986 0.2490 0
-0.1479 0.0233 0.2568 0
0.0843 0.1621 0.1167 0
-0.1362 0.9689 -0.3424 1.0000

Y por último para la columna 4


>> T=A(4,4)
T=
-2.3019
>> A(4,I)=A(4,I)/T;B(4,I)=B(4,I)/T;
>> A
A=
1.0000 0 0 1.9772
0 1.0000 0 1.2265
0 0 1.0000 0.4060
0 0 0 1.0000
>> B
B=
0.0687 -0.0986 0.2490 0
-0.1479 0.0233 0.2568 0
0.0843 0.1621 0.1167 0
0.0592 -0.4209 0.1487 -0.4344
>> T1=A(1,4);A(1,I)=A(1,I)-A(4,I)*T1;B(1,I)=B(1,I)-B(4,I)*T1;
>> T1=A(2,4);A(2,I)=A(2,I)-A(4,I)*T1;B(2,I)=B(2,I)-B(4,I)*T1;
>> T1=A(3,4);A(3,I)=A(3,I)-A(4,I)*T1;B(3,I)=B(3,I)-B(4,I)*T1;
>> A
A=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> B
B=
-0.0482 0.7336 -0.0451 0.8589
-0.2204 0.5396 0.0744 0.5328
0.0603 0.3330 0.0563 0.1764
0.0592 -0.4209 0.1487 -0.4344
Esta última matriz es la matriz inversa de A calculada. Claro está que podíamos haber
calculado esta matriz en solo dos pasos:
>> A=[3,-4,2.4,2;-3,1,4.2,-3;2,1.5,1,6.2;4,-1,-3.4,3]
A=
3.0000 -4.0000 2.4000 2.0000
-3.0000 1.0000 4.2000 -3.0000
2.0000 1.5000 1.0000 6.2000
4.0000 -1.0000 -3.4000 3.0000
>> B=inv(A)
B=
-0.0482 0.7336 -0.0451 0.8589
-0.2204 0.5396 0.0744 0.5328
0.0603 0.3330 0.0563 0.1764
0.0592 -0.4209 0.1487 -0.4344
Si usted revisa cada una de las sentencias dadas, prácticamente es el algoritmo necesario
para realizar este cálculo.
3.4.4 DESCOMPOSICION LU
Este método trata de la descomposición de la matriz de coeficientes A en dos matrices
que multiplicadas dan como resultado la matriz A
A=L*U (L de Low y U de Up), las cuales tienen ciertas características:
La matriz inferior L, está formado por una matriz triangular inferior en la cual la
diagonal principal es 1 y los demás valores del triángulo inferior se deben calcular para
cumplir que la multiplicación con la otra matriz sea igual a A

 1 0 0
 L21 1 0 
 
 L31 L32 1 

La matriz superior U, es una matriz triangular con valores Uij tales que al multiplicarse
por los términos de la matriz L, dan como resultado la matriz A.

 u11 u12 u13 


 0 u22 u23 
 
 0 0 u33 
Como en nuestro sistema de ecuaciones a resolver [A].{X}={B}, entonces
reemplazando tenemos que [L].[A].{X}={B}.
Si suponemos que al multiplicar la matriz [U] por el vector {x} obtendremos otro vector
{d}, entonces podemos exprezar lo siguiente:

 u11 u12 u13 =


 0 u22 u23  x1
   x2  d1 
 0 0 u33    d2 
 x3  
 d3 
Entonces estos valores se pueden calcular utilizando el método de eliminación simple de
Gauss, siendo los valores di serán calculados en base a los valores de términos
independientes.
Para ir comprendiendo mejor vamos a descomponer la matriz A en LU. Esto lo haremos
utilizando nuevamente MatLab.
Supongamos la siguiente Matriz:
>> A=[3 -0.1 -0.2;0.1 7 -0.3;0.3 -0.2 10]
A=
3.0000 -0.1000 -0.2000
0.1000 7.0000 -0.3000
0.3000 -0.2000 10.0000
Y el siguiente vector de términos independientes:
B=[7.85;-19.3;71.4]
B=
7.8500
-19.3000
71.4000
Ahora nos toca aplicar Gauss simple para obtener la matriz U:
En primer lugar generamos un contador de 1 a 3
>> I=1:3
I=
1 2 3
El privote es el término a11, el cual almacenamos en una variable T
>> T=A(1,1)
T=
3
A continuación hacemos ceros la primera columna. Obviamente cambiamos también al
vector B de términos independientes:
>> T1=A(2,1);A(2,I)=A(2,I)-A(1,I)/T*T1;B(2)=B(2)-B(1)/T*T1;
(Esto es : )
F1
F2 = F2 − * T1
T

>> T1=A(3,1);A(3,I)=A(3,I)-A(1,I)/T*T1;B(3)=B(3)-B(1)/T*T1; Obtenemos los


siguientes resultados:
A=
3.0000 -0.1000 -0.2000
0 7.0033 -0.2933
0 -0.1900 10.0200
>> B
B=
7.8500
-19.5617
70.6150

Hacemos lo mismo con la segunda columna:


T=A(2,2);
>> T1=A(3,2);A(3,I)=A(3,I)-A(2,I)/T*T1;B(3)=B(3)-B(2)/T*T1;
>> A
A=
3.0000 -0.1000 -0.2000
0 7.0033 -0.2933
0 0 10.0120 , ESTA MATRIZ OBTENIDA ES LA MATRIZ U
>> B
B=
7.8500
-19.5617
70.0843 EL VECTOR OBTENIDO ES EL VECTOR D.
Para el cálculo de la matriz L se debe realizar la multiplicación y obtener las igualdades
de cada una de ellas con los términos de la matriz inicial A:
Para el ejemplo dado la matriz L será:

 1 0 0

L := 0.0333 1 0
 
 0.1 −0.02713 1 
Si bien hemos revisado como podemos hacer la descomposición LU, en MatLab
también podríamos hacer esto en forma rápida utilizando la función lu(matriz), tal como
se puede observar en el ejemplo siguiente:
>>A=[3 -0.1 -0.2;0.1 7 -0.3;0.3 -0.2 10]
A=
3.0000 -0.1000 -0.2000
0.1000 7.0000 -0.3000
0.3000 -0.2000 10.0000
>> [L,U]=lu(A)
L=
1.0000 0 0
0.0333 1.0000 0
0.1000 -0.0271 1.0000
U=
3.0000 -0.1000 -0.2000
0 7.0033 -0.2933
0 0 10.0120

You might also like