Bonjour,
J'envoie ce courrier car j'ai à programmer l'algorithme de Gauss Seidel pour la résolution de systèmes Ax=b sur Scilab. Mon programme ne fonctionne pas et je ne sais pas pourquoi.
Le voici :
function [x,i]=gausseidel(A,b,tol,N,x0)
n= size(b) ;
n=max(n);
x=x0 ; //Initialistations
for k=1:N //Itérations
for i=1:n
y(i)=x(i) ; //Stockage de x(i)(k-1) pour le test de sortie
for j=1:i-1 //Calcul de chaque terme de x pour une itération donnée
somme1=A(i,j)*x(j) ;
end
for j=i+1:n
somme2=A(i,j)*x(j) ;
end
x(i)=1/A(i,i)*((-1)*somme1+(-1)*somme2+b(i)) ;
end
if (norm(x-y)/norm(y)<=tol) //Test si le vecteur trouvé est bien dans l'intervalle tolérence
return x ;
end
end
disp('Erreur, la série n''a pas convergé en N itérations') ;
// Si au bout de N itération on n'a rien retourné, message d'erreur
endfunction
Si vous trouvez les erreurs (syntaxe et/ou algorithme) cela m'aiderait bien.
Merci !