Skip to content

Instantly share code, notes, and snippets.

@senhorinha
Created March 24, 2015 17:59
Show Gist options
  • Save senhorinha/ca211342b7e4fd81b32a to your computer and use it in GitHub Desktop.
Save senhorinha/ca211342b7e4fd81b32a to your computer and use it in GitHub Desktop.
Método de Gauss Seidel
clc
clear
format long
% O algoritmo do gauss seidel é semelhante ao de jacobi porém utiliza as variáveis atualizadas
% Gauss Seidel para função:
% 3*x1 - x2 - x3 = 1
% x1 + 3*x2 + x3 = 5
% 2*x1 - 2*x2 + 4*x3 = 4
function xi = gaussSeidel(numeroPassos, criterio)
passo = 0;
xi = [0,0,0];
x = xi;
dif = 1;
while(passo < numeroPassos && dif > criterio)
x(1) = (1 + x(2) + x(3))/3;
x(2) = (5 - x(1) - x(3))/3;
x(3) = (4 - 2*x(1) + 2*x(2))/4;
dif = max(abs(x - xi));
xi = x;
passo++;
end
end
xAproximadoMenosPreciso = gaussSeidel(30, 1e-4)
xAproximadoMaisPreciso = gaussSeidel(60, 1e-8)
erroTruncamentoEstimado = max(abs(xAproximadoMaisPreciso - xAproximadoMenosPreciso))
% erroArredondamento = max(abs(valorAproximadoEmFloat - valorAproximadoEmDouble))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment