Metodos Matrices
Metodos Matrices
Metodos Matrices
ETN-505
Pactica No 3
MATRICES Y SISTEMAS DE ECUACIONES
LINEALES
Docente:
Ing. Ramiro Puch
Estudiante:
Univ: Marcos Daniel Vasquez Chuquimia
Verano/ 2017
1. CALCULO DE LA INVERSA DE UNA MATRIZ POR EL MTODO DE GAUSS:
Para calcular la inversa de una matriz cuadrada A, aplicando
el mtodo de Gauss, construimos, en primer lugar, la matriz
( A | I ), siendo I la matriz identidad del mismo orden que A.
Despus de realizar diversas operaciones sobre las filas de
sta nueva matriz, tendremos que conseguir que se transforme en
la siguiente ( I | B ). La matriz B ser la inversa de la
matriz A, es decir: B = A-1.
while (menor<=np)
for r = 1 : np
for c = 1 : np
if((r==c)&&(r>parcon)&&(c>parcon))
ren=np;
end
if((r==c)&&(m(r,c)==0))
for indar=1: np
temporal=m(r,:);
m(r,:)=m(ren,:);
m(ren,:)=temporal;
temporaliden=n(r,:);
n(r,:)=n(ren,:);
n(ren,:)=temporaliden;
end
o=[m n];
o
end
if((r==c)&&(r<parcon)&&(c<parcon))
ren=ren+1;
end
end
end
ren=np-increm;
increm=increm+1;
menor=menor+1;
parcon=parcon+1;
end
ren=reiniciar;
if(r==fila)
n(fila,:)=n(fila,:)/m(fila,fila);
m(fila,:)=m(fila,:)/m(fila,fila);
end
if(r==x)
n(x,:)=n(x,:)-(n(a,:)*m(x,fila));
m(x,:)=m(x,:)-(m(a,:)*m(x,fila));
end
repeticiones=repeticiones+1;
end
if(r==i)
x=i;
end
o=[m n];
o
x=x+1;
end
if (r==ren&&c==ren)
a=a+1;
b=b+1;
fila=fila+1;
x=b+1;
i=i+1;
end
end
ren=reiniciar;
% PROCESO PARA COMPLETAR LA MATRIZ INVERSA
disp('para diagonal superior')
while(0<ren)
for r =ren :-1: 1
for c =ren :-1: 1
if((r-1)==y)
n(y,:)=n(y,:)-(n(dec,:)*m(y,dec));
m(y,:)=m(y,:)-(m(dec,:)*m(y,dec));
end
repeticiones2=repeticiones2+1;
acu=c;
end
o=[m n];
o
y=y-1;
if(y==0)
ren=0;
end
end
ren=lim-dar;
if (r==1&&acu==1)
dar=dar+1;
dec=dec-1;
au=au-1;
y=au;
end
if(au==0)
ren=0;
end
end
% AQUI VA REPETICIONES 1 Y 2
else
disp('NO EXISTE LA MATRIZ INVERSA');
end
disp('SU MATRIZ FINAL ES:');
o=[m n];
o
Calculo de laa Matriz Inversa 4x4 con el anterior programa:
1 0 -2 7
A = 1 1 2 5
0 1 3 2
2 2 4 9
if n==m
for k=1:(n-1)%instruccion iterativa que permite repetir pasos un
numero
%determinado de veces
fprintf('\n ETAPA %g=\n\n',k)
fprintf('\nLa matriz correspondiente a esta etapa antes del
proceso:\n')
disp(C)
fprintf('\nLos Multiplicadores correpondientes a esta etapa
son:\n')
for i=(k+1):n
m(i,k)=C(i,k)/C(k,k); %formula para hallar los
multiplicadores
fprintf('\nm(%g,%g)=',i,k)
disp(m(i,k));
for j=k:(n+1)
C(i,j)= C(i,j) - m(i,k)*C(k,j); %formula de la nueva fila
end
end
fprintf('\nLa matriz correspondiente a esta etapa despues del
proceso:\n')
disp(C)
end
for i=n:-1:1
suma=0;
for p=(i+1):n
suma = suma + C(i,p)*X(p);
end
X(i)=(C(i,n+1)-suma)/C(i,i);
%formula de la susticion regresiva y solucion de las variables
end
else %funcion asignada del if, en caso de que este sea falso
fprintf('\nERROR: La matriz NO es cuadrada\n');
end
fprintf('\n\n\nSOLUCIN:\n');
fprintf('\n\nLa matriz Ab final:\n');
disp(C)
fprintf('\n\nLa solucion de X1 hasta Xn es:\n');
%a continuacion de utiliza una instruccion for, para mostrar el usuario,
%los resultados de una manera mas ordena
for i=1:n
Xi=X(1,i);
fprintf('\nX%g=',i)
disp(Xi);
end
ETAPA 1=
La matriz correspondiente a esta etapa antes del proceso:
1 -1 -4 1
2 3 4 24
3 5 7 38
Los Multiplicadores correpondientes a esta etapa son:
m(2,1)= 2
m(3,1)= 3
La matriz correspondiente a esta etapa despues del proceso:
1 -1 -4 1
0 5 12 22
0 8 19 35
ETAPA 2=
La matriz correspondiente a esta etapa antes del proceso:
1 -1 -4 1
0 5 12 22
0 8 19 35
Los Multiplicadores correpondientes a esta etapa son:
m(3,2)= 1.600000000000000
La matriz correspondiente a esta etapa despues del proceso:
1.000000000000000 -1.000000000000000 -4.000000000000000 1.000000000000000
0 5.000000000000000 12.000000000000000 22.000000000000000
0 0 -0.200000000000003 -0.200000000000003
SOLUCIN:
La matriz Ab final:
1.000000000000000 -1.000000000000000 -4.000000000000000 1.000000000000000
0 5.000000000000000 12.000000000000000 22.000000000000000
0 0 -0.200000000000003 -0.200000000000003
La solucion de X1 hasta Xn es:
X1= 7
X2= 2
X3= 1
function y = eliminacion(A,B)
[n n]=size(A);
A=[A';B']';
x=zeros(n,1);
for p=1:n
for k=[1:p-1,p+1:n];
m=-A(k,p)/A(p,p);
A(k,:)=A(k,:)+m*A(p,:)
end
end
x=A(:,n+1)./diag(A)
A =
1 -1 -4
2 3 4
3 5 7
>> B=[1;24;38]
B =
1
24
38
Solucion:
>> Eliminacion_Gaussiana(A, B)
A =
1 -1 -4 1
0 5 12 22
3 5 7 38
A =
1 -1 -4 1
0 5 12 22
0 8 19 35
A =
A =
A =
1.000000000000000 0 0 7.000000000000000
0 5.000000000000000 12.000000000000000 22.000000000000000
0 0 -0.200000000000003 -0.200000000000003
A =
1.000000000000000 0 0 7.000000000000000
0 5.000000000000000 0 10.000000000000000
0 0 -0.200000000000003 -0.200000000000003
x =
7
2
1