% Gauss-Seidel (Ejemplo 2.6.1) clear clc A = [3 -1 0 -1; 1 -4 1 1; 0 -1 3 -1; -2 0 -1 4]; b = [-3; 0; 3; 11]; D = diag(diag(A)); E = -tril(A,-1); F = -triu(A,1); k = 0; x = 0*b; diff = inf; Q = (D-E) \ F; r = (D-E) \ b; while diff > 1e-3 && k < 100 vec = Q*x + r; diff = norm(x-vec) x = vec k = k+1; pause end