Sunteți pe pagina 1din 18

A MI FAMILIA POR SU INCONDICIONAL

APOYO Y A LOS INGENIEROS DE LA ESCUELA


DE INGENIERIA CIVIL POR SU AVOCADA
LABOR DE COMPARTIR SUS
CONOCIMIENTOS.
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

MATRIZ INVERSA CON MATLAB

I. INTRODUCCIÓN
Es de todos sabido que nuestra vida diaria contemporánea requiere de
una cantidad de conocimientos matemáticos cada vez más importantes,
sin los cuales carece, virtualmente, de significado.
La teoría de matrices permite el manejo de gran cantidad de datos y es
esencial, no sólo para su uso en diferentes modelos matemáticos sino
también para diversos métodos estadísticos.

El objeto de este trabajo es el desarrollo y estudio de un tema básico de


álgebra lineal como es el cálculo de la matriz inversa mediante la
programación de la misma y algunas aplicaciones de ésta a modelos
matemáticos.
El cálculo de la matriz inversa no es un proceso sencillo. Primeramente
se aborda desde el punto de vista del método de Gauss seguida
posteriormente, se hace uso del software Matlab para su cálculo.

II. OBJETIVOS
• Hacer uso del Matlab para programar la matriz inversa haciendo uso
de operaciones básicas y comprobarla con el uso del comando inv.
• Conocer las propiedades de la matriz inversa como es el caso cuando
existe y cuando no.

III. RESUMEN DE CONCEPTOS FUNDAMENTALES

A) Definición de matriz inversa


Se dice que una matriz cuadrada A es inversible, si existe una matriz B
con la propiedad de que
A·B = B·A = I
Siendo I la matriz identidad.
Denominamos a la matriz B la inversa de A y la denotamos por A-1.
Una matriz se dice que es inversible o regular si posee inversa. En caso
contrario, se dice que es singular.

IC-444 2
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

Ejemplo: Supongamos

Entonces:

Puesto que AB = BA = I, A y B son inversibles, siendo cada una la inversa


de la otra.

B) Condición de inversibilidad
El problema de encontrar elementos inversos para el producto de
matrices tiene como primer inconveniente que, para empezar, no
siempre dadas dos matrices A y B, que podamos hacer el producto A·B
significa que podamos hacer el producto B·A. Además, que dos matrices
sean inversas una de la otra significa, en particular, que el producto ha
de dar como resultado la matriz identidad. El hecho de que la matriz
identidad sea cuadrada nos va a restringir mucho el conjunto de
matrices para las que podremos hablar de inversión. Vamos a ver qué
primera condición han de cumplir dos matrices A y B para que sean la
una inversa de la otra. Esto, como sabemos, significa que A·B = B·A = I,
donde I denota a la matriz identidad. Las matrices serán, en principio,
A de orden mxn y B de orden pxq. Sin embargo, por definición del
producto de matrices, se debe cumplir que n=p para poder hacer la
multiplicación A·B. Sabemos, además, que esta matriz será de orden
mxq. Pero también tenemos que poder hacer el producto B·A, lo que
implica que debe ser m=q. Así pues, la matriz A será de orden mxn, y la
matriz B será de orden nxm. El producto A·B será de orden mxm, y el
producto B·A será de orden nxn. Además, ambos productos han de dar
como resultado la matriz identidad, y ésta es cuadrada, lo que obliga a
que m=n, es decir, a que para poder hablar de inversión de una matriz,
la matriz ha de ser cuadrada. Sin embargo, es una condición necesaria
pero no suficiente; esto es, no toda matriz que sea cuadrada tiene
matriz inversa. No es la única condición que se exige a la matriz.

IC-444 3
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

C) Cálculo de inversas

MÉTODO DE GAUSS

Sea A = (ai j ) una matriz cuadrada de orden n. Para calcular la matriz


inversa de A, que denotaremos como A-1, seguiremos los siguientes
pasos:
Paso 1. Construir la matriz n ´ 2n M = (A I ) esto es, A está en la mitad
izquierda de M y la matriz identidad I en la derecha.
Paso 2. Se deja tal y como está la primera fila de M, y debajo del primer
término de la diagonal principal, a11, que llamaremos pivote, ponemos
ceros. Luego se opera como se indica en el siguiente ejemplo.

Ejemplo:
Consideremos una matriz 3 * 3 arbitraria

Paso 1.

Paso 2.

El siguiente paso es igual que el anterior, pero esta vez se coge como
pivote el segundo término de la diagonal principal.
Al llegar al último término de la diagonal, se procede igual que antes,
pero poniendo los ceros encima del nuevo pivote. Se observa que al
coger como pivote el último término de la diagonal, la matriz A se
transforma en una matriz triangular.
Una vez realizados todos los pasos, la mitad izquierda de la matriz M se
convierte en una matriz diagonal. En este momento hay que proceder a
transformar, si es que no lo está, la mitad izquierda en la matriz
identidad, dividiendo si fuera necesario las filas de M por un escalar.

IC-444 4
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

IV. INVERSA DE UNA MATRIZ CON MATLAB POR EL MÉTODO


DE GAUSS.
Para el cálculo de la inversa de una matriz se ha implementado
tres programas en matlab: INVERSA_GAUSS, INVERSA_DIRECTA
e INVERSAGUI, cada uno con sus respectivas peculiaridades.

4. 1) ALGORITMO
INICIO

f = tamaño de matriz
a= matriz

SI det(a)=0 NO

No existe la matriz i = matriz identidad


inversa a = [a i]

Para k de 1 a f
a(k,:)=a(k,:)/a(k,k)
Para j de k+1 hasta f
a(j,:)=a(j,:)-a(k,:)* a(j,k)
j=j+1
Terminar
K=k+1
Terminar

Para k de f cada -1 hasta 2


Para j de k-1 cada -1 hasta 1
a(j,:)=a(j,:)-a(k,:)* a(j,k)
j=j-1
Terminar
Terminar

m=a(1:f, f+1:2*f)

FIN

IC-444 5
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

4. 2) CODIFICACIÓN EN SCRIB.

a) Programa INVERSA_GAUSS
La peculiaridad de este programa es que desarrolla la inversa de una
matriz y muestra paso a paso el pivote; es decir, toda la secuencia
para encontrar la inversa de una matriz.
En primer término te pide ingresar el tamaño de la matriz cuadrada,
seguidamente de cada elemento correspondiente a dicha matriz.
Una vez ingresada se presiona enter y se observa cada pivote, se
continúa presionando enter hasta llegar a la matriz inversa
solicitada.

CODIFICACION:

clear all;
% PROGRAMA: INVERSA DE UNA MATRIZ POR EL METODO DE GAUSS JORDAN
% DESARROLLADO POR: BAUTISTA ERIK
clc;
f=input('tamano de la matriz:');

for k=1:f
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

d=det(b);
if d==0
fprintf('no existe la matriz inversa');
else
i=eye(f);
a=[a i];
a
pause
for k=1:f
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;

IC-444 6
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

a
pause
end
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
end
pause
n=f+1;
m=a(1:f,n:2*f);
m
pause
fprintf('calculo la inversa para comprobar directo con matlab\n')
c=inv(b);
c

Ejemplos: hallar la inversa de la siguiente matriz:

𝟏 𝟔
1.- a=[ ]; solución:
𝟓 𝟐

IC-444 7
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

−𝟎. 𝟎𝟕𝟏𝟒 𝟎. 𝟐𝟏𝟒𝟑


∴ 𝒍𝒂 𝒊𝒏𝒗𝒆𝒓𝒔𝒂 𝒅𝒆 𝒍𝒂 𝒎𝒂𝒕𝒓𝒊𝒛 𝒂 𝒆𝒔: m=[ ]
𝟎. 𝟏𝟕𝟖𝟔 −𝟎. 𝟎𝟑𝟓𝟕

b) Programa INVERSA_DIRECTA
La peculiaridad de este programa es que desarrolla la inversa de una
matriz y muestra inmediatamente la inversa requerida.
En primer término te pide ingresar el tamaño de la matriz cuadrada,
seguidamente de cada elemento correspondiente a dicha matriz.
Una vez ingresada se presiona enter y se observa inmediatamente la
matriz inversa de la matriz ingresada.

CODIFICACIÓN:
clear all;
% PROGRAMA: INVERSA DE UNA MATRIZ POR EL METODO DE GAUSS JORDAN
% DESARROLLADO POR: BAUTISTA ERIK
clc;
f=input('tamano de la matriz:');

for k=1:f
for j=1:f

IC-444 8
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

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;

d=det(b);
if d==0
fprintf('no existe la matriz inversa');
else
i=eye(f);
a=[a i];
a;

for k=1:f
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;

end
k=k+1;
a;

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

end
k=k-1;
a;

end
end

n=f+1;
m=a(1:f,n:2*f);
m
fprintf('calculo la inversa para comprobar directo con matlab\n')
c=inv(b);
c

Ejemplos: hallar la inversa de la matriz siguiente:

IC-444 9
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

𝟏 𝟖 𝟐
2.- a=[𝟐 𝟖 𝟔]; solución:
𝟑 𝟖 𝟑

IC-444 10
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

−0.4286 −0.1429 0.5714


∴ 𝑙𝑎 𝑖𝑛𝑣𝑒𝑟𝑠𝑎 𝑑𝑒 𝑙𝑎 𝑚𝑎𝑡𝑟𝑖𝑧 𝑎 𝑒𝑠: m=[ 0.2143 −0.0536 −0.0357]
−0.1429 0.2857 −0.1429

Observación: para ambos programas si la matriz ingresada no es


invertible, entonces saldrá un mensaje advirtiendo que dicha matriz no
tiene inversa. Ejemplo:

𝟖 𝟖 𝟖
3.- a=[𝟖 𝟖 𝟖]; solución:
𝟖 𝟖 𝟖

∴ 𝒍𝒂 𝒎𝒂𝒕𝒓𝒊𝒛 𝒂 𝒏𝒐 𝒆𝒔 𝒊𝒏𝒗𝒆𝒓𝒕𝒊𝒃𝒍𝒆.

IC-444 11
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

4. 3) CODIFICACIÓN EN ENTORNO GRAFICO (GUI).

Programa: INVERSAGUI

Este programa esta implementada para calcular la inversa de una


matriz de cualquier tamaño en un entorno grafico para una mayor
comodidad.
En primer término se ingresa el tamaño de la matriz cuadrada,
seguidamente se ingresan los elementos correspondiente a dicha
matriz en la tabla.
Una vez ingresada se presiona en la opción CALCULAR INVERSA y
se observa inmediatamente la matriz inversa de la matriz ingresada
en la siguiente tabla.

ENTORNO GRÁFICO:

IC-444 12
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

CODIFICACIÓN:

function varargout = INVERSAGUI(varargin)


% INVERSA DE UNA MATRIZ POR GAUSS O PIVOTE
% DESARROLLADO POR BAUTISTA ERIK

gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @INVERSAGUI_OpeningFcn, ...
'gui_OutputFcn', @INVERSAGUI_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end

function INVERSAGUI_OpeningFcn(hObject, eventdata, handles, varargin)

img=imread('unsch','jpg');
axes(handles.axes1);
imshow(img)
img=imread('estruct','jpg');
axes(handles.axes2);
imshow(img)
handles.output = hObject;
handles.output = hObject;
handles.output = hObject;
guidata(hObject, handles);

function varargout = INVERSAGUI_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

function edit1_Callback(hObject, eventdata, handles)


tamano=str2double(get(handles.edit1, 'String'));
num_elem=cell(tamano,tamano);
num_elem(:,:)={''};
set(handles.uitable1, 'Data',num_elem);
set(handles.uitable2, 'Data',num_elem);
set(handles.uitable2,'ColumnEditable',true(1,tamano))

function edit1_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

IC-444 13
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

function pushbutton1_Callback(hObject, eventdata, handles)

a=str2double(get(handles.uitable1,'data'));
f=str2double(get(handles.edit1,'string'));
b=a;

d=det(b);
if d==0
set(handles.edit2,'String','LA MATRIZ NO ES INVERTIBLE')
else

set(handles.edit2,'String','LA INVERSA DE LA MATRIZ ES')


i=eye(f);
a=[a i];
a;

for k=1:f
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;

end
k=k+1;
a;

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

end
k=k-1;
a;

end
end

n=f+1;
m=a(1:f,n:2*f);
m;
set(handles.uitable2, 'Data',m);

function edit2_Callback(hObject, eventdata, handles)

function edit2_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function axes1_CreateFcn(hObject, eventdata, handles)

IC-444 14
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

Ejemplos: hallar la inversa de las siguientes matrices

𝟏 𝟏 𝟎
4.- A=[𝟏 𝟎 𝟏]
𝟎 𝟏 𝟎

𝟏 𝟎 −𝟏
∴ 𝒍𝒂 𝒊𝒏𝒗𝒆𝒓𝒔𝒂 𝒅𝒆 𝒍𝒂 𝒎𝒂𝒕𝒓𝒊𝒛 𝑨 𝒆𝒔: B=[ 𝟎 𝟎 𝟏]
−𝟏 𝟏 𝟏

IC-444 15
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

𝟏 −𝟏 𝟎
5.- A=[𝟎 𝟏 𝟎]
𝟐 𝟎 𝟏

𝟏 𝟏 𝟎
∴ 𝒍𝒂 𝒊𝒏𝒗𝒆𝒓𝒔𝒂 𝒅𝒆 𝒍𝒂 𝒎𝒂𝒕𝒓𝒊𝒛 𝑨 𝒆𝒔: B=[ 𝟎 𝟏 𝟎]
−𝟐 −𝟐 𝟏

IC-444 16
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

Observación: si la matriz ingresada no es invertible, entonces saldrá


un mensaje advirtiendo que dicha matriz no tiene inversa.

𝟏 𝟎 −𝟏
6.- A=[𝟎 𝟏 𝟐]
𝟎 𝟎 𝟎

∴ 𝒍𝒂 𝒎𝒂𝒕𝒓𝒊𝒛 𝑨 𝒏𝒐 𝒕𝒊𝒆𝒏𝒆 𝒊𝒏𝒗𝒆𝒓𝒔𝒂.

IC-444 17
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL
EFP. INGENIERÍA CIVIL
“Año de la consolidación del Mar de Grau”

V) BIBLIOGRAFÍA

 Montes Lozano, A (1998): "Álgebra", Ediciones UOC, Módulo 3:


"Matrices, vectores y sistemas de ecuaciones lineales", 55-58

 H. Benker (1999): "Practical use of Mathcad. Solving mathematical


problems with a computer algebra system", Springer-Verlag New
York, Inc., 174

 J. A. Moreno, D. Ser (1999): "Mathcad 8. Manual de usuario y guía


de referencia de Mathcad 8", ediciones Anaya Multimedia, S.A., 480

 https://es.wikipedia.org/wiki/Matriz_invertible

 http://recursostic.educacion.es/descartes/web/materiales_didac
ticos/matrices/inversa_de_una_matriz.htm

VI) CONCLUCIONES

• Se puede desarrollar la inversa de una matriz en matlab haciendo uso


de operaciones básicas e iteraciones, además de tener conocimiento de
los distintos métodos para su desarrollo.

• La inversa de una matriz no es una propiedad para todas las matrices,


para poseerla, una matriz debe cumplir condiciones.

IC-444 18

S-ar putea să vă placă și