-
08/03/2008 - 00h36 nubnab
Methode de Jacobi(Matlab)
bonjour
je ne sais pas si je suis dans la bonne rubrique pour poster ce message mais bon je vais essayer
je sollicite votre aide pour ecrire 2 fonctions sous matlab:
j'aimerais aussi sans trop vous en demandez, de m'expliquer les solutions obtenus.
1. ecrire une fonction [r]=Rhoj(A) qui donne le rayon spectrale* de la matrice J associée à la méthode itérative de Jacobi(On pourra utiliser la fonction de Matlab eigs)
(*c'est le module de la plus grande valeur propre de J)
Rappel de la méthode de Jacobi
Pour une matrice A dont les éléments diagonaux sont nuls, on effectue la decomposition A=D - (E+F), avec D la matrice diagonale associée à A,
E l'opposée de la matrice triangulaire strictement inferieure à A, et F l'opposée de la matrice triangulaire strictement superieure associée à A.
on pose alors
J= D-¹(E+F)=I- D-¹A
(D-¹:matrice inverse de D)
resoudre le systeme lineaire AX=b par la méthode de Jacobi, c'est trouver lalimite de la suite Xk definie par, Xo arbitraire et
Xk+1=JXk + D-¹b
la matrice J se calculant de façon rapide et exacte à l'aide de A et D
2eme fonction
ecrire une methode [X,err,it,prec]=[Jacobi(A,b,itm,tol) qui resout le systeme lineaire AX=b par la methode de Jacobi
les arguments d'entrée et de sortie sont:
input
A matrice carré de taille n,n
b matice de taille n,p
itm ||AX - b ||/||b|| recherché
(les deux en normes 2)
output
X matrice n,p solution
err
0 si inversion reussie
1 si nb iteration depassé
2 si rayon spectrale trop grand
it nombre d'iterations effectuées
prec ||AX - b ||/||b|| obtenue
(les deux en normes 2)
| | |