% 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