You are on page 1of 12

3.

8 Cálculo de la inversa de una matriz no singular de orden N

Aunque la división de matrices no está definida, la matriz inversa proporciona el


resultado equivalente. Si el producto de dos matrices cuadradas A y B es la matriz
identidad, que en el caso de tener orden tres está dada por:
1 0 0
 
I   0 1 0 (3.36)
0 0 1
 

Diremos que las matrices son inversas entre sí, cuando se cumple que AB = I , se escribe
B = A-1; también A = B-1, las inversas conmutan con la multiplicación, lo cual no es cierto
para matrices en general, aquí AB = BA = I. No todas las matrices cuadradas tienen
inversa, es el caso de las matrices singulares.
La inversa de una matriz puede calcularse con la técnica de eliminación de Gauss, la
cual puede adaptarse a fin de obtener una forma práctica para invertir una matriz. Esto
aplicando el algoritmo de eliminación para las N filas de la matriz inversa; en este caso,
los elementos de la matriz de términos independientes coinciden con las columnas de
la matriz identidad. Un ejemplo sencillo es el de una matriz cuadrada de orden dos.
La ecuación a resolver es AB = I, donde B = A-1 y sus elementos se desconocen,
entonces escribiendo en notación matricial tenemos:

 a11 a12  b11 b12   1 0 


     
 a 21 a 22  b 21 b 22   0 1 
A . B = I

Desarrollando el producto de matrices se tiene:

 a11b11  a12b 21 a11b12  a12b22   1 0 


    
 a 21b11  a 22b 21 a 21b12  a 22b 22   0 1 

Se han generado dos sistemas de dos ecuaciones, que podemos expresarlo como:

a11b11  a12b 21  1
a11b12  a12b 22  0

a 21b11  a 22b 21  0
a 21b12  a 22b 22  1
En este punto es necesario ordenar estos sistemas de modo que nos permitan calcular
los elementos de B, así los nuevos sistemas son:

a11b11  a12b 21  1
a 21b11  a 22b 21  0

a 21b12  a 22b 22  1
a11b12  a12b 22  0

Entonces para calcular la inversa de una matriz cuadrada no singular de orden N, será
necesario resolver N sistemas de ecuaciones lineales. La implementación de un
programa computacional requerirá la repetición N veces del método de eliminación de
Gauss. Para lograr esto utilizamos la matriz ampliada [A:Ij], que es la unión de términos
de A y la j-esima columna de I; así, en el caso de un sistema de 3 ecuaciones lineales
con 3 incógnitas y resolviendo para la primera columna de I, se tiene:

[E1 ]0   a11 a12 a13 I11 


 
[A : I1 ]0  [E 2 ]0   a 21 a 22 a 23 I 21  (3.37)
[E 3 ]0   a 31 a 32 a 33 I31 

Por eliminaciones sucesivas, se transforma esta matriz ampliada en otra nueva, de


modo que al final se obtenga una matriz triangular superior [A: I1]N-1, es decir:

[A:I1]0 [A: I1]1............[A: I1]N-2  [A: I1]N-1 (3.38)

El método consiste en sustituir los vectores fila [E i]m secuencialmente en dos pasos:

i) [E j ]m  [E j ]m 1 ; (j = 1, 2,….., m)
m1
aim
ii) [ Ei ]m  [ Ei ]m1  m1
[ Em ]m1 ; (i = m+1,……,N) (3.39)
amm
Donde m es el orden de la eliminación y el valor amm es el pivote (primer elemento de la
diagonal). Por aplicaciones sucesivas de la ecuación (3.39), se lleva la matriz ampliada
fila por fila a la representación [A: I1]N-1, que en el caso de ser una matriz triangular
superior de la forma:
 a11N 1 a12
N 1
a13 i11 
N 1 N 1
 N 1 N 1 N 1

[A : I1 ]N 1   0 a 22 a 23 i 21  (3.40)
 N 1 
a 33 i31 
N 1
 0 0

Permitirá resolver la ecuación AB1 = I1, que escrita en notación matricial seria:

 a11N 1 a12
N 1
a13  b11  x1   i11 
N 1 N 1
 N 1

N 1    N 1

 0 a22 a23  b21  x2    i21  (3.41)
 N 1   N 1 
 0 0 a33  b31  x3   i31 
El subíndice en la ecuación AB1 = I1, indica que estamos trabajando con los elementos
de la primera columna de las matrices B e I.

El proceso de sustitución regresiva tiene dos partes:

a) Dado que la última ecuación solo involucra a b31 y siendo que aNN N-1  0, debemos
tener:
N 1
i NN11 i 31
bN 1  N 1
ó b 31  N 1
(3.42)
a NN a 33

b) El segundo paso nos permitirá conocer el valor de las incógnitas restantes:

 N
 1
b uj  i ujN 1   a utN 1b tj  N 1 ; (u = N-1,……, 1) (3.43)
 t  u 1  a uu

Donde u va desde N-1 hasta 1 y j cambia según sea la columna evaluada de B e I; es


decir, nos indica el numero de sistema que se está solucionando.

Ejemplo:

Mediante el método de eliminación de Gauss y sustitución regresiva, calcular la


inversa de la siguiente matriz de orden dos:
 7 6
A   
5 9

Escribimos la ecuación matricial a resolver:


 7 6  b11 b12   1 0 
     
 5 9  b 21 b 22   0 1 

Dado que la matriz es de orden dos, deben plantearse dos sistemas de dos ecuaciones
con dos incógnitas, que se pueden escribir en notación matricial como:

 7 6  b11   1   7 6  b12   0 
      y      
 5 9  b 21   0   5 9  b 22   1 

Para solucionar el primer sistema escribimos la matriz ampliada [A: I1].

[E1 ]0   7 6 1 
[A : I1 ]0   
[E 2 ]0   5 9 0 
Los valores de i empiezan en 2, dado que [E1]1 = [E1]0. Ahora, aplicando la ecuación
(3.39), para obtener la segunda fila en primer orden es decir con i = 2 y m = 1 para j =
1, tenemos:
a 21
[E 2 ]1  [E 2 ]0  [E 1 ]0
a 11
5
[E 2 ]1  [5 9 0]  [7 6 1]  [0 4.71  0.71]
7
La nueva matriz ampliada, que en este caso es triangular superior, queda como:
[E1 ]1   7 6 1 
[A : I1 ]1   
[E 2 ]   0 4.71 0.71
1

Aplicando la ecuación (3.42), tenemos que:


1
i 21
b21  1
 0.15
a 22
El siguiente elemento se puede determinar empleando la ecuación (3.43), iniciando para
el valor de u = N-1 = 1 hasta 1 con j = 1 y N = 2.

 1 2
 1
b11  i11   a1t b t1  1
1

 t 11  a11
1 1
b11  [1  a12 b 21 ] 1  [1  6(0.15)]  0.27
1

a11 7
Entonces la primera columna de B, solución del primer sistema es:

 b11  0.27 
 
 b 21  0.15 
Solucionamos el segundo sistema escribiendo la matriz ampliada correspondiente.

[E1 ]0   7 6 0 
[A : I 2 ]0   
[E 2 ]0   5 9 1 

Una vez más sabemos que [E1]1 = [E1]0 y aplicando la ecuación (3.39), obtendremos la
segunda fila en primer orden es decir para i = 2, m = 1, pero ahora con j = 2, así:

a 21
[E 2 ]1  [E 2 ]0  [E1 ]0
a 11
5
[E 2 ]1  [5 9 1]  [7 6 0]  [0 4.71 1]
7

La nueva matriz ampliada, que en este caso es triangular superior, queda como:

[E1 ]1   7 6 0
[A : I 2 ]1   
[E 2 ]   0 4.711 
1
Aplicando la ecuación (3.42), tenemos que:
1
i 22
b 22  1
 0.21
a 22

El siguiente elemento se puede determinar empleando la ecuación (3.43), iniciando para


el valor de u = N-1 = 1 hasta 1 con j = 2 y N = 2.

 1 2
 1
b12  I12   a1t b t2  1
1

 t 11  a11
1 1
b12  [0  a12 b 22 ] 1  [0  6(0.21)]  0.18
1

a11 7
La segunda columna de B y solución del segundo sistema es:

 b12  0.18 
 
 b 22  0.21 

Finalmente se conocen los elementos de B y por lo tanto de A-1, es decir la matriz inversa
de A, entonces:
 0.27  0.18 
B  A 1   
  0.15 0.21 

Los resultados computacionales con el programa en Fortran son:

CALCULO DE LA INVERSA DE UNA MATRIZ


===================================

INGRESO DE DATOS (CALCULO DE LA INVERSA DE UNA MATRIZ NxN)


==========================================================
INGRESE LA DIMENSION DE LA MATRIZ
2
INGRESE ELEMENTOS DE LA MATRIZ
ELEMENTOS DE LA FILA: 1
7 6
ELEMENTOS DE LA FILA: 2
5 9
============================================================

RESULTADO MATRIZ INGRESADA


==========================
7.0000 6.0000
5.0000 9.0000

RESULTADO MATRIZ INVERSA


========================
.2727 -.1818
-.1515 .2121
Codificación:

La codificación que genera los resultados mostrados del ejemplo anterior es la


siguiente:

PROGRAM INVERSA

REAL(4) A(100,100),A1(100,100),XSOL(100),D(100,100),RES(100,100)

10 WRITE (*,*)''
WRITE (*,*)' CALCULO DE LA INVERSA DE UNA MATRIZ'
WRITE (*,*)' ==================================='
WRITE (*,*)''
WRITE (*,*)' INGRESO DE DATOS (CALCULO DE LA INVERSA DE UNA
MATRIZ NxN)'
WRITE (*,*)' ==================================================='
WRITE (*,*)' INGRESE LA DIMENSION DE LA MATRIZ '
READ (*,*)M1
WRITE (*,*)' INGRESE ELEMENTOS DE LA MATRIZ'
DO I=1,M1
WRITE(*,11)I
READ(*,*)(A(I,J),J=1,M1)
END DO
11 FORMAT(' ELEMENTOS DE LA FILA: ',I3)
WRITE (*,*)' =================================================='
20 DO I=1,M1
D(I,I)=1.0
END DO
!INICIO DE CICLO
DO JJJ=1,M1
LP=2
LN=LP-1
! COPIANDO EN LA MATRIZ DE PASO
DO I=1,M1
DO J=1,M1
A1(I,J)=A(I,J)
END DO
END DO
DO I=1,M1
A1(I,M1+1)=D(I,JJJ)
END DO
! FIN DEL COPIADO
! HACIENDO LA ELIMINACION
21 DO I=LP,M1
WPASO1=A1(I,LN)
WPASO2=A1(LN,LN)
DO J=1,M1+1
A1(I,J)=A1(I,J)-(WPASO1/WPASO2)*A1(LN,J)
END DO
END DO
! FIN DE LA ELIMINACION
! REPITIENDO EL PROCESO
LP=LP+1

LN=LP-1
IF (LP.GT.M1)THEN
NK=M1
GOTO 27
ELSE
GOTO 21
END IF
! FIN DE REPETICION
! SUSTITUCION REGRESIVA
27 SUMA=0
DO J=1,M1
SUMA=SUMA+A1(NK,J)*XSOL(J)
END DO
XSOL(NK)=(A1(NK,M1+1)-SUMA)/A1(NK,NK)
NK=NK-1
IF (NK.LE.0) THEN
GOTO 28
ELSE
GOTO 27
END IF
! FIN DE SUSTITUCION REGRESIVA
28 DO I=1,M1
RES(I,JJJ)=XSOL(I)
END DO
DO I=1,M1
XSOL(I)=0
END DO
END DO
! PRESENTACION DE RESULTADOS
WRITE(*,*)' RESULTADO MATRIZ INGRESADA'
WRITE(*,*)' =========================='
DO I=1,M1
WRITE(*,100)(A(I,J),J=1,M1)
END DO
WRITE(*,*)''
WRITE(*,*)' RESULTADO MATRIZ INVERSA'
WRITE(*,*)' ========================'
DO I=1,M1
WRITE(*,100)(RES(I,J),J=1,M1)
END DO
WRITE(*,*)''
! FIN DE PRESENTACION
WRITE(*,*)''
WRITE(*,*)''
WRITE(*,*)''
29 FORMAT (1X,' X',I3,':',F9.5)
100 FORMAT (7(1X,F8.4))
30 WRITE(*,*)' '
END
3.9 Cálculo del determinante

El método usual para calcular el determinante de una matriz, resulta ineficiente cuando
tratamos con sistemas grandes, así en el caso de una matriz de orden 10 serán
necesarias 7x107 multiplicaciones y sustracciones, mientras que con el método de
eliminación de Gauss se requieren alrededor de 380; esto se deriva del hecho de que
el determinante de una matriz triangular (ya sea triangular superior ó inferior) es
simplemente el producto de sus elementos diagonales, esto puede verse fácilmente al
desarrollar por menores respecto a la primera columna en cada paso. El cálculo para
el determinante de una matriz triangular superior de orden tres, resulta:

a 11 a 12 a 13
a a 23 0 a 22 0 a 23
0 a 22 a 23  a 11 22  a 12  a 13  a 11a 22 a 33
0 a 33 0 0 0 a 33
0 0 a 33

Llevar una matriz a una representación triangular superior no altera el resultado ya que
sumar un múltiplo de un renglón a otro de una matriz no cambia el valor de su
determinante.

Las otras transformaciones de renglones cambian el valor de forma predecible,


así: intercambiar dos renglones cambia el signo, y multiplicar un renglón por una
constante multiplica el valor del determinante por la misma constante. Si se perm iten
estos cambios, el empleo del procedimiento de eliminación de Gauss para convertir la
matriz a triangular superior es una forma sencilla de evaluar el determinante.

Ejemplo:

Mediante el método de eliminación de Gauss, calcular el determinante de la


siguiente matriz:
3 5 7
 
A  2 4 9
 6 5 4
 

En este caso la matriz A, actúa como muestra matriz ampliada, entonces dado que [E 1]1
= [E1]0, aplicamos la ecuación (3.39), para obtener la segunda fila en primer orden es
decir con i = 2 y m = 1, así:
a 21
[E 2 ]1  [E 2 ]0  [E 1 ]0
a 11
2
[E 2 ]1  [2 4 9]  [3 5 7]  [0 0.67 4.3]
3

Aplicamos el mismo procedimiento a la tercera fila.


a 31
[E 3 ]1  [E 3 ]0  [E 1 ]0
a 11
6
[E 3 ]1  [6 5 4]  [3 5 7]  [0  5  10]
3

La nueva matriz, aun no es triangular superior y está definida como:

[E1 ]1   3 5 7 
 
[A]  [E 2 ]   0 0.67 4.3 
1 1

[E3 ]1   0  5  10 

Nuevamente aplicamos el procedimiento, pero esta vez para la tercera fila


únicamente, veamos:
1
a
[ E3 ]  [ E3 ]  321 [ E2 ]1
2 1

a22
5
[ E3 ]2  [0  5  10]  [0 0.67 4.3]  [0 0 22.4]
0.67

La matriz resultante, es triangular superior y se escribirá como:

[ E1 ]2   3 5 7 
 
[A]  [ E2 ]   0 0.67 4.3 
2 2

[ E3 ]2   0 0 22.4 

El determinante de A, se calculara multiplicando los elementos de la diagonal de la


nueva matriz triangular [A]2, así:

3 5 7
det A  2 4 9  (3)(0.67)( 22.4)  45.0
6 5 4

Los resultados computacionales con el programa en Fortran son:

CALCULO DEL DETERMINANTE METODO DE ELIMINACION DE GAUSS


=======================================================
INGRESE DIMENSION DE LA MATRIZ
3
ELEMENTOS DE LA MATRIZ DE COEFICIENTES
3 5 7
2 4 9
6 5 4
=======================================================

MATRIZ TRIANGULAR SUPERIOR PRELIMINAR


=====================================
3.00000 5.00000 7.00000
.00000 .66667 4.33333
.00000 -5.00000 -10.00000
MATRIZ TRIANGULAR SUPERIOR PRELIMINAR
=====================================
3.00000 5.00000 7.00000
.00000 .66667 4.33333
.00000 .00000 22.50000

MATRIZ INGRESADA
================
3.00000 5.00000 7.00000
2.00000 4.00000 9.00000
6.00000 5.00000 4.00000

MATRIZ TRIANGULAR SUPERIOR


==========================
3.00000 5.00000 7.00000
.00000 .66667 4.33333
.00000 .00000 22.50000

DETERMINANTE = 45.00000
==========================

Codificación:

La codificación que genera los resultados mostrados del ejemplo anterior es la


siguiente:

PROGRAM DETERMINANTE

REAL(4) A(100,100),A1(100,100)

10 WRITE (*,*)''
WRITE (*,*)' CALCULO DEL DETERMINANTE ELIMINACION DE GAUSS'
WRITE (*,*)' ==================================================='
WRITE (*,*)' INGRESE DIMENSION DE LA MATRIZ'
READ (*,*)M1
WRITE(*,*)' ELEMENTOS DE LA MATRIZ DE COEFICIENTES'
DO I=1,M1
READ (*,*)(A(I,J),J=1,M1)
END DO
WRITE (*,*)' ==================================================='
WRITE (*,*)''
! COPIANDO EN LA MATRIZ DE PASO
20 LP=2
LN=LP-1
DO I=1,M1
DO J=1,M1
A1(I,J)=A(I,J)
END DO
END DO
! FIN DEL COPIADO
! HACIENDO LA ELIMINACION
21 DO I=LP,M1
WPASO1=A1(I,LN)
WPASO2=A1(LN,LN)
DO J=1,M1
A1(I,J)=A1(I,J)-(WPASO1/WPASO2)*A1(LN,J)
END DO
END DO
! FIN DE LA ELIMINACION

! REPITIENDO EL PROCESO
WRITE(*,*)''
WRITE(*,*)' MATRIZ TRIANGULAR SUPERIOR PRELIMINAR'
WRITE(*,*)' ====================================='
DO MI=1,M1
WRITE(*,100)(A1(MI,MJ),MJ=1,M1)
END DO
WRITE(*,*)''
LP=LP+1
LN=LP-1
IF (LP.GT.M1)THEN
NK=M1
GOTO 27
ELSE
GOTO 21
END IF
! FIN DE REPETICION
! PRESENTACION DE RESULTADOS
27 DET=1
DO I=1,M1
DET=DET*A1(I,I)
END DO
WRITE(*,*)' MATRIZ INGRESADA'
WRITE(*,*)' ================'
DO I=1,M1
WRITE(*,100)(A(I,J),J=1,M1)
END DO
WRITE(*,*)''
WRITE(*,*)' MATRIZ TRIANGULAR SUPERIOR'
WRITE(*,*)' =========================='
DO I=1,M1
WRITE(*,100)(A1(I,J),J=1,M1)
END DO
WRITE(*,*)''
WRITE(*,101)DET
WRITE(*,*)' =========================='
100 FORMAT (15(3X,F11.5))
101 FORMAT(1X,' DETERMINANTE = ',F9.5)
END

You might also like