function [x,err,it]=GS(A,b,x0,maxit,tol,omega)
%
% En enkel implementasjon av Gauss-Seidel
% [x,err,it]=GS(A,b,x0,maxit,tol)
%
% Output: Løsning, feilestimat og antall iterasjoner brukt
% Input:  Matrise, høyreside, startverdi, maksantall iterasjoner og
% toleranse. Valgfritt argument, omega for SOR.

if nargin<6, omega=1;end
D=diag(diag(A));
L=D-tril(A);
U=D-triu(A);
M=D-omega*L;

it=0;err=2*tol;x=x0;

while it<maxit & err>tol
    it=it+1;
    
    x_ny=M\(((1-omega)*D+omega*U)*x)+omega*(M\b);
    err=norm(x_ny-x);
    x=x_ny;
end



