You are on page 1of 4

a continuación, se le muestra el listado de instrucciones en Matlab, para el Método Gauss con

pivoteo.

a) Interprete, averigüe y comprenda la instrucción o grupo de instrucciones y detállelas


en un documento en forma clara y precisa.
b) Haga un diagrama de flujo de la secuencia e indique si el procedimiento mostrado es
correcto. ¿Qué cambios o mejoras haría?
c) Ejecute el código y pruebe para un sistema de ecuación es algebraicas lineales e
indique las respuestas correctas. Comente.
clear all
clc
A=input('Ingresar A=')
b=input('Ingresar b=');
[n,m]=size(A);
det=1;
r=0;
for i=1:n-1
piv=A(i,i);
p=i;
for j=i+1:m
if piv<A(j,i)
piv=A(j,i);
p=j;
end
end
if piv~=0
if p~=i
for j=1:n
t=A(i,j);
A(i,j)=A(p,j);
A(p,j)=t;
s=b(i);
b(i)=b(p);
b(p)=s;
end
r=r+1;
else
det=det*A(i,i);
end
for k=i+1:n
frd=A(k,i)/A(i,i);
for j=i:n
A(k,j)=A(k,j)-A(i,j)*frd;
end
b(k)=b(k)-b(i)*frd;
end
else
%disp('matriz singular')
det=det*A(i,i);
end
end
det=det*A(n,n)*(-1)^r;
if det~=0
x(n)=b(n)/A(n,n);
for i=n-1:-1:1
x(i)=b(i);
for j=i+1:n
x(i)=x(i)-A(i,j)*x(j);
end
x(i)=x(i)/A(i,i);
end
x'
det
else
disp('matriz singular')
end
interprete, ejecute e indique que realizan las instrucciones desde la línea 15 en adelante del
código Matlab. La zona sombreada ya ha sido desarrollada en clase. Comente.

fprntf('MÉTODO DE GAUSS-JORDAN\n')

n=input('Ingrese el orden de la matriz cuadrada: ');

M=zeros(n,n+1);

for i=1:n

for j=1:n+1

if j<n+1

M(i,j)=input(['Ingrese el elemento a(' num2str(i) ','


num2str(j) '): ']);

else

M(i,j)=input(['Ingrese el elemento r(' num2str(i) '): ']);

end

end

end

MATRIZGAUSS=rref(M)

if n<=3

for i=1:n

fprintf('%s',char(i+119),'=',num2str(MATRIZGAUSS(i,n+1)),' ')

end

fprintf('\n')

Y=MATRIZGAUSS(:,n+1)';

VX=[MATRIZGAUSS(1,n+1) MATRIZGAUSS(1,n+1)];

VY=[0 MATRIZGAUSS(2,n+1)];

HX=[0 MATRIZGAUSS(1,n+1)];

HY=[MATRIZGAUSS(2,n+1) MATRIZGAUSS(2,n+1)];

subplot(1,2,1),plot(VX,VY,HX,HY),axis([min(HX)-1 max(HX)+1 min(VY)+1


max(VY)+1]),grid on,title('Método de Gauss-Jordan),xlabel('valor de
x','position',[MATRIZGAUSS(1,n+1)+1,0,1]),ylabel('valor de
y','position',[0.1,MATRIZGAUSS(2,n+1),1])

ax=gca;

ax.XAxisLocation='origin';

ax.YAxisLocation='origin';
subplot(1,2,2),bar(Y),xticklabels({'x','y','z','p','q','r','s','t','u'
,'v','w'}),grid on,title('Metodo de Gauss-
Jordan'),xlabel('varibles'),ylabel('valores de las variables')

else

for i=1:3

fprintf('%s',char(i+119),'=',num2str(MATRIZGAUSS(i,n+1)),' ')

end

for i=1:n-3

fprintf('%s',char(i+111),'=',num2str(MATRIZGAUSS(i,n+1)),' ')

end

fprint('\n')

Y=MATRIZGAUSS(:,n+1)';

bar(Y),xticklabels({'x','y','z','p','q','r','s','t','u','v','w'}),

end

You might also like