dimanche 26 mai 2013

Algorithme de la Méthode de Puissance pour le calcul des Valeurs Propres d'une Matrice en Matlab

Algorithme de la Méthode de Puissance pour le calcul des Valeurs Propres d'une Matrice en Matlab :

function [lambda ,x,iter]=eigpower (A,tol ,nmax,x0)
%EIGPOWER Evalue numériquement une valeur propre
% d’une matrice
% LAMBDA=EIGPOWER (A) calcule avec la méthode de la
% puissance la valeur propre de A de module maximal
% à partir d’une donnée initial qui par défaut est
% le vecteur constitué de 1
% LAMBDA=EIGPOWER (A,TOL ,NMAX,X0) utilise la tolérance
% TOL pour l’erreur absolue (1.e-6 par défaut), un
% nombre maximal d’itérations NMAX (100 par défaut),
% et démarre d’un vecteur initial X0.
% [LAMBDA,V,ITER]=EIGPOWER (A,TOL ,NMAX,X0) retourne
% aussi le vecteur propre V tel que A*V=LAMBDA*V et le
% numéro de l’itération à laquelle V a été calculé .
[n,m] = size(A);
if n ~= m, error(’Matrices carrées seulement’); end
if nargin == 1
tol = 1.e -06; x0 = ones(n,1); nmax = 100;
end
x0 = x0/norm(x0);
pro = A*x0;
lambda = x0 ’*pro;
err = tol*abs(lambda) + 1;
iter = 0;
while err >tol*abs(lambda) & abs(lambda )~=0 & iter<=nmax
x = pro; x = x/norm(x);
pro = A*x; lambdanew = x’*pro;
err = abs( lambdanew - lambda);
lambda = lambdanew; iter = iter + 1;
end
return

Aucun commentaire:

Enregistrer un commentaire