
function SORscript(w)

% DEFAULT (vedasi comando NARGIN).
if nargin < 1
    w=input('Fornisci w: ');
end

% KAHAN WARNING.
if ~((w > 0) & (w < 2))
    warning('Il parametro w non e'' nell''intervallo di Kahan.');
end

% DETERMINA PROBLEMA.
n = 50;
A = diag(4*ones(n,1)) + diag(-2*ones(n-1,1),1) + diag(ones(n-1,1),-1);

sol=ones(n,1);
b=A*sol;
x0=zeros(n,1);
toll=10^(-5);
kmax=100;

% TROVA SOLUZIONE GAUSS-SEIDEL.
[x,kSOR,flag] = SOR (A,b,w,x0,toll,kmax);

% CALCOLA ERRORE.
for j=1:kSOR
    errSOR(j)=norm(x(:,j)-sol);
end

% ESEGUI GRAFICO ERRORE.
clf;
title('SOR');
semilogy(1:kSOR,errSOR,'k-');
legend('SOR');

