Buscar

metodo gauss

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

clc
clear
//Verificar sempre se a diagonal principal é dominante sobre a diagonal secundária
A = [-4,1 ,1 ,0,0,0,0,0 ;1 ,-4 ,0 ,1,0,0,0,0 ; 1 ,0 ,-4 ,1,0,1,0,0 ;0 ,1 ,1 ,-4, 1, 1,0,0; 0,0,0,1,-4,0,0,1; 0,0,1,0,0,-4,1,0; 0,0,0,1,0,1,-4,1; 0,0,0,0,1,0,1,-4]; //coeficientes do sistema
I = eye(A);
n = 8;
b = [-95,-50,-80 ,0 ,-30 ,-190 ,-110 ,-120 ]; //vetor de termos independentes
eps=10^(-6); //Precisão
x0 = [0;0;0;0;0;0;0;0]; //Solução inicial
p = 10;
x = x0;
x1 = x;
it=0;
i=0; s=0;
for i=1:n
 bc(i) = b(i)/A(i, i);
end;
big = 0;
num = 0;
while p > eps & it<=1000
 for i=1:n 
 num = 0;
 for j=1:n
 if j <> i then
 num = num + A(i,j)*x(j);
 end;
 end;
 x(i) = (1/A(i,i))*(b(i)-num);
 end;
 p = norm((A*x)-b');
 it = it+1;
end;
disp(x)
if(it>999) then
 printf("Não converge nesse intervalo");
 abort;
else
 printf("Sucesso! Total de iteracoes %f", it);
end;

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando