Você está na página 1de 2

% UNIVERSIDADE SALVADOR - UNIFACS (CAMPUS FEIRA)

% DISCIPLINA: CLCULO NUMRICO


% AUTOR: MARCELO PEDREIRA
% IMPLEMENTAO DE ROTINA PARA SOLUO DE SISTEMAS LINEARES
% MTODO: ELIMINAO DE GAUSS COM PIVOTAO
function gauss
% 1 - CARREGA MATRIZES a E b
a = load('a.txt');
b = load('b.txt');
% 2 - MONTA MATRIZ AMPLIADA E DIMENSIONA LINHAS E COLUNAS
ab = [a,b];
% VERIFICAO 01
dlmwrite('saida1-ampliada.txt',ab, "delimiter", " " );
[l,c] = size(ab);
% disp(ab);
% disp(l);
% disp(c);
% 3 - PIVOTAO
for j = 1:l-1
if ab(j,j)==0
for k = 1:c-1
if ab(k,j)~=0
aux1 = ab(j,:);
ab(j,:)= ab(k,:);
ab(k,:)= aux1;
break
end
end
end
% VERIFICAO 02
dlmwrite('saida2-pivotao.txt',ab, "delimiter", " " );
% 4 - ELIMINAO DE GAUSS
for i = j+1:l
ab(i,j:c) = ab(i,j:c) - ab(i,j) / ab(j,j) * ab(j,j:c);
end
end
% VERIFICAO 03
dlmwrite('saida3-gauss.txt',ab, "delimiter", " " );
% 5 - SUBSTITUIO REGRESSIVA
x = zeros(l,1);
x(l) = ab(l,c) / ab (l,l);
for i = l-1:-1:1
x(i) = (ab(i,c) - ab(i,i+1:l)*x(i+1:l))/ab(i,i);
end
% VERIFICAO 03
dlmwrite('saida4-soluo.txt',x);
end

Você também pode gostar