Buscar

programa matlab gausssedel

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

%Este programa aplica o método de Gauss-Jacobi para solução
%de um sistema equações lineares algébricas (SELA)
close all
clear all
clc
%Dados de entrada
A=[9 -4 -2 0;-4 17 -6 -3;-2 -6 14 -6;0 -3 -6 11]
b=[24 -16 0 18]' %[78;-5;8]
tol=1e-8;
kmax=30;
%Matriz e vetor de iteração
n=size(A,1); %length(b)
C=zeros(n);
d=zeros(n,1);
for i=1:n
 for j=1:n
 if i~=j 
 C(i,j)=-A(i,j)/A(i,i);
 end 
 end
 d(i)=b(i)/A(i,i);
end
%Processo iterativo
k=1;
x=zeros(n,1); %aproximação inicial
ER=inf;
delta=sqrt(sum((aux-x).^2))/sqrt(sum((x).^2));
fprintf(' k x(1) x(2) x(3) x(4) ER\n')
fprintf('%3d %14.10f %14.10f %14.10f %14.10f %14.10e\n',k,x,ER)
while delta > tol
%while ER > tol
%while k < kmax
 k=k+1;
 aux=x;
 for i=1:n
 x(i)= C(i,:)*x+d(i);
 end 
 ER=sqrt(sum((aux-x).^2))/sqrt(sum((x).^2)); 
 fprintf('%3d %14.10f %14.10f %14.10f %14.10f %14.10e\n',k,x,ER)
end

Teste o Premium para desbloquear

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

Continue navegando