190
6 Valeurs propres et vecteurs propres
% à partir d ’ une donnée initial qui par défaut est
% le vecteur c o n stitu é de 1
% LAMBDA = EIGPOWER (A , TOL , NMAX , X0) utilise la t o l é rance
% TOL pour l ’ erreur absolue (1.e -6 par défaut ) , un
% nombre maximal d ’ i t é ra tions 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 ’ i t é r ation à laquelle V a été calculé .
[n , m] = size ( A );
if n ~= m , error ( ’ Matrices carrées s e u l ement’ ); 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;
l a m bd anew = x ’* pro ;
err = abs( l a m bdane w - lambda );
lambda = l a m b danew;
iter = iter + 1;
end
return
Exemple 6.1 Considérons la famille de matrices
A(α) =
⎡
⎢
⎢
⎣
α 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
⎤
⎥
⎥
⎦ ,
α∈ R.
On veut approcher la valeur propre de plus grand module par la méthode de
la puissance. Quand α = 30, les valeurs propres de la matrice sont données par
λ1 = 39.396, λ2 = 17.8208, λ3 = −9.5022 et λ4 = 0.2854 (où on se limite aux
4 premiers chiffres après la virgule). La méthode approche λ1 en 22 itérations
avec une tolérance ε = 10
−10 et x
(0) = 1
T . Cependant, si α = −30, il faut 708
itérations. Cette différence de comportement peut s’expliquer en remarquant
que dans le dernier cas on a λ1 = −30.643, λ2 = 29.7359, λ3 = −11.6806 et
λ4 = 0.5878. Donc, |λ2|/|λ1| est proche de un (0.9704).
Exemple 6.2 (Connections interurbaines) On note A∈ R
11×11 la matrice associée au réseau ferroviaire de la Figure 6.2, i.e. la matrice dont les
coefficients aij sont égaux à un s’il y a une connexion directe entre la ville
i et la ville j, et à zéro sinon. En posant tol=1.e-12 et x0=ones(11,1), le
Programme 6.1 retourne, après 26 itérations, l’approximation suivante d’un
vecteur propre (de norme 1) associé à la valeur propre de A de plus grand
module :
x’ =
Columns 1 through 8
0.5271 0.1590 0.2165 0.3580 0.4690 0.3861 0.1590 0.2837
Précédent

- 201/374

Suivant