%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Mise en oeuvre et comparaison des 
%méthodes itératives classiques
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all
%La matrice du probleme
n=30;
h=1/(n+1);
dim=2;
if dim==1
    A=gallery('tridiag',n)/h^2;
else
    A=gallery('poisson',n)/h^2;
end
%
%Calcul de D, E et F
%
D=diag(diag(A));E=-tril(A,-1);F=-triu(A,1);
%Définition de la matrice d'itération
MJ=D;%Jacobi
MGS=D-E;%Gauss-Seidel
%Parametres de resolution et initialisation de u0 et b
epsilon=1.e-4;
Nmax=3000;
if dim==1
u0=rand(n,1);b=ones(n,1);
else
u0=rand(n*n,1);b=ones(n*n,1);
end
%Jacobi

[rJ,uJ]=met_iter(A,MJ,b,u0,epsilon,Nmax);
nJ=1:length(rJ);
%Gauss-Seidel
[rGS,uGS]=met_iter(A,MGS,b,u0,epsilon,Nmax);
nGS=1:length(rGS);
%
%Comparaison graphique
%
semilogy(nJ,rJ,'-r',nGS,rGS,'.b')
legend('Jacobi','Gauss-Seidel',-1)