function x=Gauss_Seidel(A,b,x0,tol) if (nargin==2) x0=ones(size(b)); tol=1e-6; elseif (nargin==3) tol=1e-6; else sprintf('USAGE:Gauss_Seidel(A,b,x0,tol)') end D=diag(diag(A)); U=triu(A,1); L=tril(A,-1); G=-(D+L)\U; d1=(D+L)\b; x=G*x0+d1; n=1; while norm(x-x0)>=tol x0=x; x=G*x0+d1; n=n+1; end n