Anda di halaman 1dari 3

Inversa de una matriz con el metodo de Gauss-Jordan

Con el metodo de Gauss-Jordan se puede calcular directamente la inversa. Para hacerlo, la matriz de coeficientes se aumenta
con una matriz identidad posteriormente se aplica el metodo de Gauss-Jordan para reducir la matriz de coeficientes a la matriz
identidad. Cuando es completada esta tarea, el lado derecho de la matriz aumentada contiene la matriz inversa.

inv A

Esquema grafico de la metodo de Gauss-Jordan para determinar la inversa de una matriz.

Programa en Matlab
%****************************************************************
%** Calculo de la inversa con el

**

%** Metodo de Gauss Jordan


%**

UdeG **
Maestria en Electronica **

%** Ing. Jesus Norato Valencia

**

%** Materia: Metodos Numericos

**

%** Maestro: M.C. J.Gilberto Mateos Suarez


5/Nov/99 **
%****************************************************************
clear;
clc;
fprintf('Dame la matriz a la que le quieres calcular la inversa\n')
f=input('cuantas filas:');
c=input('cuantas columnas:');

%*********************************************************
%** Los siguientes for anidados son para introducir

**

%** los datos de la matriz a que se quiere calcular

**

%** su inversa
**
%*********************************************************
for k=1:c
for j=1:f
fprintf('fila: %x\n',j)
fprintf('columna: %x',k)
r=input('numero de esta fila y columna');
a(j,k)=r;
j=j+1;
end
k=k+1;

end
a
b=a;
pause

%********************************************************
%** Enseguida se coloca la matriz identidad del grado

**

%** de la martiz a que se quire calcular la inversa

**

%********************************************************

fprintf('dame la matriz identidad del mismo grado que la matriz anterio\n\n')


for k=k:c*2
for j=1:f
fprintf('fila: %x\n',j)
fprintf('columna: %x',k)
r=input('numero de esta fila y columna');
a(j,k)=r;
j=j+1;
end
k=k+1;
end
a
pause

%**********************************************************
%** En la siguiente seccion se normalizan todos los

**

%** pivotes (se hacen 1 los numeros en la diagonal

**

%** principal) y se hacen ceros los valores por debajo


**
%**********************************************************

for k=1:c
a(k,:)=a(k,:)/a(k,k);
for j=k+1:f
a(j,:)=a(j,:)-a(k,:)*a(j,k);
j=j+1;
a
pause
end
k=k+1;
a
pause
end

%***********************************************************
%** Se hacen cero los numeros por encima de la diaonal

**

%** principal de la matriz que se quiere sacar la inversa **


%***********************************************************

for k=f:-1:2
for j=k-1:-1:1
a(j,:)=a(j,:)-a(k,:)*a(j,k);
j=j-1;
a
pause
end
k=k-1;
a
pause
end

%***********************************************************
%** Se calcula la inversa para comprobar el resultado

**

%***********************************************************

fprintf('calculo la inversa para comprobar directo con matlab\n')


c=inv(b);
c

Anda mungkin juga menyukai