%****************************************************************
% File: GAUSERI.M
%
% Scopo: Metodo di Gauss Seidel RILASSATO per sist. lin.
%
% Uso:	 [xv,iter]=gauseri(a,f,xin,nmax,toll,omega)
%
% Input: A mat. sistema, F vet. termini noti, XIN vet. iniziale
%	 NMAX numero max iterazioni, TOLL precisione richiesta.
%	 OMEGA fattore di rilassamento
%
% Output: XV vettore soluzione, ITER numero iterazioni
% Richiami:
%
% Commenti: Non si controllano le condizioni di convergenza.
%	    Attenzione: il ciclo for j=1:n .... e' indispensabile
%	    per la corretta eseguzione dell'algoritmo.
%
% Autori: mf
%*****************************************************************

function [xv,iter]=gauseri(a,f,xin,nmax,toll,omega)
%
% Costruzione matrici d'iterazione
[n,m]=size(a);
d=diag(a);
dm1=ones(n,1)./d;
dm1=diag(dm1);
b=eye(a)-dm1*a;
g=dm1*f;
bu=triu(b);
bl=tril(b);
%
% Iterazioni
xv=xin;
xn=xv;
i=0;
while itoll,
     iter=i; i=nmax+1;
  else
     xv=xn; i=i+1;
  end,
end
if i==nmax,
  disp(' *** ERROR *** non converge '),
end
format