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)