Octave - Sistemas lineares por Gauss-Seidel
Publicado por Daniel Moreira dos Santos (última atualização em 14/07/2010)
[ Hits: 23.883 ]
Homepage: http://www.danielmoreira.wordpress.com
Resolver o sistema Ax=b pelo método iterativo de Gauss-Seidel.
O método de Gauss-Seidel é um método iterativo para resolução de sistemas de equações lineares. O seu nome é uma homenagem aos matemáticos alemães Carl Friedrich Gauss e Philipp Ludwig von Seidel. É semelhante ao método de Jacobi (e como tal, obedece ao mesmo critério de convergência). É condição suficiente de convergência que a matriz seja estritamente diagonal dominante, i. e., fica garantida a convergência da sucessão de valores gerados para a solução exata do sistema linear.
function [x,Iter,CondErro] = Gauss_Seidel(n,A,b,Toler,IterMax)
%n,A,b,Toler,IterMax = ordem, matriz, vetor independente, tolerancia,
%numero maximo de iteracoes
%x,Iter,CondErro = vetor solucao, numero de iteracoes e condicao de erro
for i=1:n
r=1/A(i,i);
for j=1:n
if i~=j
A(i,j)=A(i,j)*r;
end
end
b(i)=b(i)*r;
x(i)=b(i);
end
Iter=0;
fprintf('\nIter = %d ' ,Iter);
x
while 1
Iter = Iter+1;
for i=1:n
Soma = 0;
for j=1:n
if i~=j
Soma = Soma+A(i,j)*x(j);
end
end
v(i)=x(i);
x(i)=b(i)-Soma;
end
NormaNum=0;
NormaDen=0;
for i=1:n
t=abs(x(i)-v(i));
if t>NormaNum
NormaNum =t;
end
if abs(x(i))>NormaDen
NormaDen = abs(x(i));
end
end
NormaRel=NormaNum/NormaDen;
fprintf('\nIter = %d ' ,Iter);
x
fprintf('NormaRel = %f \n',NormaRel);
if NormaRel<=Toler | Iter>IterMax
break
end
end
if NormaRel<=Toler
CondErro =0;
else
CondErro =1;
end
Algoritmo para calcular a tabuada
Octave - Método de Runge-Kutta
Octave - Calcular raiz pelo método Regula-Falsi
Cálculo da raiz de uma função pelo Método da Bisseção - Octave
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Opções secretas em tema do Cinnamon
Como mapear unidade de rede no Linux
Como quebrar senha usando john the ripper
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (1)
Alguém já testou o novo COSMIC Desktop? O que achou? (4)
Não consigo instalar distro antiga no virtualbox nem direto no hd (29)
queria saber como posso alterar a frequencia do meu ryzen 2300u pro (3)









