
function esercizio3

% DETERMINA PROBLEMA.
n = 1000;
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=10000;

% TROVA SOLUZIONE JACOBI.
[x,kJ,flag] = jacobi (A,b,x0,toll,kmax);

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

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

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

% ESEGUI GRAFICO ERRORE.
clf;
title('Jacobi vs. Gauss-Seidel');
semilogy(1:kJ,errJ,'k-',1:kGS,errGS,'r-');
legend('Jacobi','Gauss-Seidel');

