function XX=GaussSeidel(M,B,X,k); 

% XX=GaussSeidel(M,B,X,k); 
% Génère l'algorithme itératif de GaussSeidel à
% partir d'une matrice carrée M (réelle ou complexe) inversible dont tous
% les termes diagonaux sont non nuls. Ce programme fournit la solution XX
% du système de Cramer M*XX=B. L'algorithme est initié à X et itéré k fois.
% Cet algorithme converge en particulier si M est à diagonale dominante ou
% si M est une matrice symétrique réelle définie positive

T=tril(M);
F=tril(M)-M; 
XX=X; 
for i=1:k
    XX=T^(-1)*F*XX+T^(-1)*B; 
end