Méthode de Gauss Seidel - scilab
Bonsoir,
Je me permets de vous consulter car je bloque sur une question de mon TP d'analyse numérique.
Dans ce TP, nous devons implémenter la méthode de Jacobi et de Gauss Seidel.
J'ai donc réussi pour la méthode de Jacobi :
Pouvez-vous me donner une piste de réflexion et/ou corriger mon précédent script ?
Merci par avance !
Chaka
Je me permets de vous consulter car je bloque sur une question de mon TP d'analyse numérique.
Dans ce TP, nous devons implémenter la méthode de Jacobi et de Gauss Seidel.
J'ai donc réussi pour la méthode de Jacobi :
function[x,iter] = jacobi(A,b,x0,nmax,tol) n = size(A,1); iter = 0; r = b-A*x0; normb = norm(b); err = norm(r)/normb; x=x0; while err > tol & iter < nmax iter = iter + 1; xnew = zeros(n,1); for i = 1:n xnew(i)=(b(i)-A(i,[1:i-1 i+1:n])*x([1:i-1 i+1:n]))/A(i,i) end x = xnew; r=b-A*x; err = norm(r)/normb; end endfunctionÀ présent, j'ai besoin de modifier ce script pour obtenir la méthode de Jacobi, voici une de mes tentatives :
function[x,iter] = gaussSeidel2(A,b,x0,nmax,tol) n = size(A,1) x0=zeros(n,1) iter = 0; r = b-A*x0; normb = norm(b); err = norm(r)/normb; x=x0; while err > 10^(-8) & iter < 1000 iter = iter + 1; xnew = zeros(n,1); for i = 1:n xnew(i)=(1/A(i,i))*(b(i)-A(i,1:i-1)*xnew(1:i-1)-A(i,i+1:n)*x(i+1:n)) end x = x; r=b-A*x; err = norm(r)/normb; end endfunctionCependant Scilab me renvoie une erreur...
Pouvez-vous me donner une piste de réflexion et/ou corriger mon précédent script ?
Merci par avance !
Chaka
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
En regardant la page Wikipédia concernée, j'ai fais un code Octave (ne maitrisant pas scilab) qui te montre l'implémentation de ces méthodes. Tu peux essayer de le convertir en Scilab.