Algorithme de la Méthode des Itérations QR pour le calcul des valeurs propres d'une matrice en Matlab :
function D=qrbasic (A,tol ,nmax) %QRBASIC calcule les valeurs propres de la matrice A. % D=QRBASIC(A,TOL ,NMAX) calcule par itérations QR % toutes les valeurs propres de A avec une tolérance % TOL en NMAX itérations au maximum. La convergence % de cette méthode n’est pas toujours garantie . [n,m]=size(A); if n ~= m, error(’Matrices carrées seulement’); end T = A; niter = 0; test = norm(tril(A,-1),inf); while niter <= nmax & test >= tol [Q,R]=qr(T); T = R*Q; niter = niter + 1; test = norm(tril(T,-1),inf); end if niter > nmax warning([’La méthode ne converge pas dans le ’ ’nombre d’’itérations maximum voulu\n’]); else fprintf([’La methode converge en ’ ... ’%i itérations\n’],niter); end D = diag(T); return |
Aucun commentaire:
Enregistrer un commentaire