You are on page 1of 3

En primer lugar, desarrollamos una funcin como esta (supongamos que guardarlo

como 'mat_inv2.m'):

b = funcin mat_inv2 (a)


% Encontrar dimensiones de la matriz de entrada
[r, c] = tamao (a);
% Si la matriz de entrada no es cuadrada, funcin de parada
si r ~ = c
disp (Cuadrado matrices, por favor ')
b = [];
Retorno
extremo
matriz identidad% Target para transformarse en la salida
de la matriz inversa%
b = ojo (r);
% El siguiente cdigo efecta de hecho la inversin de la matriz al trabajar
% en cada elemento de la entrada
para j = 1: r
para i = j: r
si un (i, j) ~ = 0
para k = 1: r
s = a ( j, k); a (j, k) = a (i, k); a (i, k) = s;
s = b (j, k); b (j, k) = b (i, k); b (i, k) = s;
final
t = 1 / a (j, j);
para k = 1: r
a (j, k) = t * a (j, k);
b (j, k) = t * b (j, k);
terminar
para L = 1: r
si L ~ = j
t = -a (L, j);
para k = 1: R
a (L, k) = a (L, k) + t * a (j, k);
b (L, K) = b (L, K) + b * t (j, k);
final
final
final
final
ruptura
final
advertencia% Pantalla si se encuentra una fila llena de ceros
si a (i, j) == 0
disp (Advertencia: matriz singular ')
b = "error";
volver
extremo
final

% mostrar la evolucin de la matriz de entrada, de modo que podamos


% confirmar que se convirti en una matriz de identidad.
un

Y entonces, podemos llamar a l o probarlo de cualquier otra secuencia de comandos o


desde la ventana de comandos, as:
% de matriz de entrada
a = [3 5 -1 -4
1 4 -.7 -3
0 -2 0 1
-2 6 0 0.3];
% Llame a la funcin de encontrar su inversa
b = mat_inv2 (a)
% Comparar con un resultado generado por Matlab
c = inv (a)

Matlab produce esta respuesta:


En primer lugar, vemos cmo la matriz original se transform en una matriz de
identidad:
a=
1
0
0
0

0
1
0
0

0
0
1
0

0
0
0
1

A continuacin, nuestra funcin para mostrar su resultado:


b=
0,6544
0,1983
0,3683
0,3966

- -0,1912 0,0142 0,9348


-0,2833 -0,1034 0,1558
-1,9547 -4,2635 -0,4249
-0,5666 0,7932 0,3116

por ltimo, esta es la inversin producida por una instruccin de Matlab (inv (a)):
c=
0,6544
0,1983
0,3683
0,3966

-0,9348
-0,2833
-1,9547
-0,5666

Otro ejemplo:

-0,1912 0,0142
-0,1034 0,1558
-4,2635 -0,4249
0,7932 0,3116

% de matriz de entrada
a = [1 1
1 1];
% Llame a la funcin de encontrar su inversa
b = mat_inv2 (a)
% Comparar con un resultado generado por Matlab
c = inv (a)

Y la visualizacin de Matlab es:


Advertencia: matriz singular
b=
error
Advertencia: Matrix es singular precisin de trabajo.
> En test_mat_inv a 42
c=
Inf Inf
Inf Inf
En este caso, nuestro algoritmo encontr una matriz singular , por lo que una inversa
no se puede calcular. Esto concuerda con lo que Matlab encontr con su propia funcin
incorporada.
Si usted est interesado en una modificacin del algoritmo de Gauss-Jordan, se puede
ver este artculo .
Desde 'Matrix Inversion' a la casa
de la "Matriz de Inversin" a "lgebra Lineal '
Ejemplos de Control de Flujo