Chapitre 5 Calcul des valeurs propres et des vecteurs propres 5.1 Introduction Une méthode de calcul des valeurs propres d’une matrice est nécessairement une méthode itérative. En effet, tout polynôme peut être considéré comme le polynôme caractéristique de la matrice compagnon qui lui est associée. Donc s’il était possible d’avoir une méthode directe de calcul des valeurs propres, ceci signifierait que l’on peut extraire toutes les racines d’un polynôme de degré arbitraire en un nombre fini d’opérations ce qui est impossible grâce notamment à la célèbre théorie de Galois. Une première classe de méthode itérative de calcul de valeurs propres d’une matrice A, consiste à déterminer une suite de matrices inversibles {Pk }∞ k=1 telle que Ak = Pk−1 APk −→ R, k→∞ qui converge vers une matrice R pour laquelle il est facile de calculer ses valeurs propres. Par exemple, il peut s’agir d’une matrice diagonale ou d’une matrice triangulaire. Etant donné que les matrices sont tous semblables à la matrice originale A, ils admettent tous 59 60 Calcul des valeurs propres le même polynôme caractétistique PA . PAk = PA −→ PR k→∞ =⇒ P R = PA car la suite des PAk est constante. C’est l’idée de base de toutes les méthodes que nous allons voir par la suite. Une deuxième classe de méthodes s’applique à la recherche de certaines valeurs propres particulières comme la plus grande en module ou la plus petite. Ce sont les méthodes de puissance. 5.2 Méthode de Jacobi On fait l’hypothèse que la matrice A est symétrique réelle, donc ceci assure des valeurs propres réelles. L’idée consiste à trouver une suite de matrices orthogonales {Ok }∞ k=1 de sorte que la suite Ak+1 = Okt AOk −→ D k→∞ converge vers une matrice diagonale D qui va contenir, selon l’introduction 5.1, les valeurs propres de A. A chaque étape, Ok est choisie de façon à augmenter les termes diagonaux, i.e. la diagonale de Ak+1 sera plus grande que celle de Ak dans un sens qui reste à préciser. Voici le choix de la matrice de rotation O 0 I 0 cos θ p O= 0 0 0 − sin θ q 0 0 0 0 I 0 0 0 0 sin θ 0 0 0 cos θ 0 0 I 61 Calcul des valeurs propres Par exemple, avec n = 5, p = 2 et q = 4 1 0 0 cos θ 0 0 0 − sin θ 0 0 0 0 0 sin θ 0 0 0 cos θ 0 0 1 0 1 0 0 Posons B = O t AO. Pour calculer les entrées de B, interchangeons les lignes et les colonnes correspondant I 0 0 I 0 0 0 0 0 0 aux indices p et q . On obtient 0 0 0 Âpq 0 0 0 0 0 I 0 cos θ − sin θ 0 0 sin θ cos θ .. . api .. . app apq .. . 0 0 I 0 0 aqi 0 I 0 0 0 .. . 0 0 I 0 0 apq 0 0 0 cos θ sin θ aqq 0 0 0 − sin θ cos θ où Âpq désigne la sous-matrice extraite de A en retranchant les colonnes et lignes p, q. La multiplication par blocs conduit à cos θ sin θ a a cos θ − sin θ b b pp pq pp pq = − sin θ cos θ apq aqq sin θ cos θ bpq bqq L’identification des composantes donne bpp = app cos2 θ + aqq sin2 θ − apq sin 2θ bqq = app sin2 θ + aqq cos2 θ + apq sin 2θ app − aqq bpq = apq cos 2θ + sin 2θ 2 aussi bij = aij bpi = api cos θ − aqi sin θ bqi = api sin θ + aqi cos θ ∀i 6= p, q 62 Calcul des valeurs propres Or, si apq 6= 0 il existe toujours un angle θ compris entre −π/4 < θ ≤ π/4 définie par cot 2θ = aqq − app 2apq Cette valeur de θ rend bpq = 0 de sorte que b2pp + b2qq = a2pp + a2qq + 2a2pq =⇒ n X b2ii = X b2ii + b2pp + b2qq X a2ii + a2pp + a2qq + 2a2pq i6=p,q i=1 = = i6=p,q n X a2ii + 2a2pq > i=1 n X a2ii i=1 Revenons à la méthode de Jacobi. Supposons que Ak a déjà été calculé. Comment choisir la matrice unitaire Ok de sorte que Ak+1 = Okt Ak Ok – Méthode de Jacobi classique : on choisit le couple (p, q) tel que (k) |a(k) pq | = max aij i6=j – Méthode de Jacobi cyclique : on fait un balayage cyclique des éléments hors diagonaux. (1, 2), (1, 3), . . . , (1, n), (2, 3), . . . , (2, n), . . . , (n − 1, n) Montrons la convergence de la méthode dans le cas classique. Pour cela, posons Ak = Dk + Bk où Dk représente la diagonale de Ak . Montrons que Bk −→ 0. k→∞ Considérons la norme de Frobenius ||Bk ||E de Bk et posons ²k = ||Bk ||2E = X i6=j (k) |aij |2 63 Calcul des valeurs propres Or ||Ak+1 ||E = ||Ak ||E car la norme de Frobenius est invariante sous l’action des matrices unitaires. Ceci se traduit par ⇐⇒ ²k+1 + (k+1) 2 X i,j |aij X |aii i | = X i,j (k+1) 2 (k) |aij |2 | = ²k + X i (k) |aii |2 Or on a que X i (k+1) 2 |aii | = X i (k) 2 |aii |2 + 2|a(k) pq | 2 =⇒ ²k+1 = ²k − 2|a(k) pq | De plus, par le choix du couple (p, q) , on a l’inégalité 2 ²k ≤ n(n − 1)|a(k) pq | = Mais 1 − 2 n(n−1) n(n − 1) 2 (²k − ²k+1 ) =⇒ ²k+1 ≤ (1 − )²k 2 n(n − 1) < 1, d’où le résultat. Nous allons diviser la preuve en plusieurs étapes. – Montrons que la suite Dk est bornée. On a que ||Dk ||E ≤ ||Ak ||E ≤ ||A||E Ainsi il existe au moins une sous-suite Dnk convergente vers la matrice diagonale D. Or Dn k → D B nk → 0 =⇒ A nk → D Or le polynôme caractéristique de Ank est le même que celui de la matrice originale A, i.e. PA = PAnk → PD ce qui entraı̂ne que PD = PA , donc D contient les valeurs propres de A. Ceci montre aussi qu’il y a un nombre fini de valeurs d’adhérence de la suite Dk . – Montrons que Dk+1 − Dk −→ 0. k→∞ (k) On introduit la notation Dk = (aii ). Selon la formule ci-dessus, on a que 0 i 6= p, q (k+1) (k) (k) aii − aii = − tan θk apq i = p − tan θ a(k) i=q k pq 64 Calcul des valeurs propres (k) Aussi |apq | ≤ ||Bk ||E → 0 et | tan θk | ≤ 1 car −π/4 ≤ θk ≤ π/4. Donc − akii −→ 0 ak+1 ii ∀i k→∞ Si on a une telle suite Dk possédant les propriétés suivantes : 1. Dk est bornée, 2. Dk possède un nombre fini de valeurs d’adhérence, 3. Dk+1 − Dk −→ 0 k→∞ alors la suite Dk converge vers la matrice diagonale D formée des valeurs propres de A. Consulter Ciarlet [1] pour la preuve. Ce qui implique que toute la suite Ak converge vers D car Ak = Dk + B k =⇒ ↓ ↓ D 0 =⇒ Ak −→ 0 k→∞ Passons à la convergence des vecteurs propres par la méthode de Jacobi classique. Le résultat sera démontré que sous l’hypothèse que toutes les valeurs propres sont distinctes. Par construction de la suite Ak , on a que Ak+1 = Okt Ak Ok = = t Okt Ok−1 Ak−1 Ok−1 Ok .. . t = Okt Ok−1 . . . O2t O1t AO1 O2 . . . Ok−1 Ok Ωtk AΩk = avec la notation Ωk = O1 O2 . . . Ok−1 Ok . La suite Ωk vérifie les propriétés suivantes : – La suite Ωk est bornée. ||Ωk ||E = ||I||E = √ n ∀k – La suite Ωk possède un nombre fini de valeurs d’adhérence. 65 Calcul des valeurs propres En effet, la suite Ωk admet une sous-suite Ωnk qui converge vers Ω. Donc Ank = Ωtnk AΩnk Ωtk AΩk −→ Ωt AΩ ↓ D D = Ωt AΩ =⇒ Ceci signifie que la matrice unitaire Ω contient les vecteur propres. – Finalement , montrons que Ωk+1 − Ωk −→ 0. k→∞ Le choix de l’angle θk est fournie par la relation (k) tan 2θk = (k) 2apq (k) (k) aqq − app (k) Or |apq |2 ≤ ²k ||Bk ||2E −→ 0. Ceci entraı̂ne que apq −→ 0. Aussi Ak −→ D avec le choix de δ = 1 2 =⇒ (k) |a(k) qq − app | > δ ∀k mini6=j |λi − λj |. Donc θk −→ 0 et Ok −→ I. Or Ωk+1 − Ωk = Ωk Ok+1 − Ωk = Ωk (Ok+1 − I) ||Ωk+1 − Ωk ||2 ≤ ||Ωk ||2 ||Ok+1 − I||2 = ||Ok+1 − I||2 −→ 0 La suite Ωk vérifie toutes les hypothèses pour conclure à la convergence de la suite Ωk −→ Ω où la matrice Ω contient les vecteurs propres. 5.3 Méthode de Givens-Householder L’idée de la méthode consiste à trouver une matrice orthogonale P telle que P t AP soit tridiagonale. Cette étape constitue la méthode de Householder de réduction d’une matrice symétrique à la forme tridiagonale. 66 Calcul des valeurs propres Théorème 22 Etant donné une matrice A carrée symétrique, il existe une matrice P inversible produit de n − 2 matrices de Householder telle que P t AP soit une matrice tridiagonale. Passons à la méthode de Givens pour calculer les valeurs propres d’une matrice tridiagonale symétrique de la forme b c 0 .............. 1 1 c 1 b2 c 2 0 . . . . . . . . . . 0 c 2 b3 c 3 . . . . . . . . . . B=. ... ... . . ... . . . . . . . . . . 0 . . . . . . . . . . . . bn−1 cn−1 0 . . . . . . . . . . . . cn−1 bn Supposons que les ci sont tous différents de zéros, i.e. ci 6= 0 ∀i. Si un des ci = 0, on peut partitionner la matrice en blocs diagonaux telles que l’hypothèse ci 6= 0 soit vérifiée. Le polynôme caractéristique de B vérifie des identités remarquables. Théorème 23 Les polynômes caractéristiques pi (λ) ≡ PBi (λ) ∀i = 0, 1, . . . , n vérifient : 1. On pose p0 = 1. On a que p1 = b1 − λ et la relation de récurrence pi (λ) = (bi − λ)pi−1 (λ) − c2i−1 pi−2 (λ) ∀i = 2, 3, . . . , n 2. lim pi (λ) = ∞ λ−→−∞ ∀i = 1, 2, . . . , n 3. pi (λ0 ) = 0 =⇒ pi−1 (λ0 )pi+1 (λ0 ) < 0 ∀i = 1, 2, . . . , n − 1 4. Le polynôme pi possède i racines réelles distinctes qui séparent les i + 1 racines de pi+1 pour tous les i = 1, 2, . . . , n − 1. 67 Calcul des valeurs propres Preuve de (1) : b1 − λ c1 0 ... ... ... c1 b2 − λ c2 0 ... ... 0 .. . c2 b3 − λ c 3 ... ... ... ... ... ... ... 0 . . . . . . . . . . . . . . . . . . bi−1 − λ 0 .................. ci−1 ci−1 bi − λ b1 − λ c1 0 ... ... ... c1 b2 − λ c2 0 ... ... 0 .. . c2 b3 − λ c 3 ... ... ... ... ... ... = (bi − λ) ... 0 . . . . . . . . . . . . . . . . . . bi−2 − λ 0 .................. −ci−1 ci−2 ci−2 bi−1 − λ b1 − λ c1 0 ... ... 0 c1 b2 − λ c2 0 ... ... 0 .. . c2 b3 − λ c 3 ... ... ... ... ... ... ... 0 . . . . . . . . . . . . . . . . . . bi−2 − λ 0 .................. ci−2 0 ci−1 = (bi − λ)pi−1 (λ) − c2i−1 pi−2 (λ) Preuve de (2) : par induction sur i. Le terme dominant λi de pi est (−1)i λi λi −→ ∞ i pair λ −→ −∞ =⇒ −λi −→ ∞ i impair Preuve de (3) : Si pi (λ0 ) = 0 =⇒ pi+1 (λ0 ) = (bi+1 − λ0 )pi (λ0 ) − c2i pi−1 (λ0 ) =⇒ pi+1 (λ0 ) = −c2i pi−1 (λ0 ) 68 Calcul des valeurs propres donc de signes opposées. De plus. si pi+1 (λ0 ) = 0, on aura pi+1 (λ0 ) = pi (λ0 ) = pi−1 (λ0 ) = 0. Ce qui implique que pi−2 (λ0 ) = 0 et ainsi de suite jusqu’à p0 (λ0 ) = 0. Ceci est en contradiction avec le fait que p0 ≡ 1. Preuve de (4) : est une conséquence de (2) et (3). En fait la propriété (4) permet de trouver un intervalle [a, b] tel que p i (a)pi (b) < 0 ce qui nous assure l’existence d’une racine dans ]a, b[ du polynôme pi . Pour calculer cette racine, on peut utiliser la méthode de la bissection. 5.4 Méthode QR Cette méthode s’applique aux matrices quelconques. Voici le principe de base de cette méthode. Posons A1 = A. On écrit la factorisation QR de A1 A 1 = Q 1 R1 et on forme A2 = R1 Q1 = Qt1 A1 Q1 A l’étape k, A k = Q k Rk on pose Ak+1 = Rk Qk = Qtk Ak Qk Par induction, on obtient Ak+1 = (Q1 Q2 . . . Qk )t A(Q1 Q2 . . . Qk ) ce qui montre que Ak+1 est semblable à A donc admet les mêmes valeurs propres. Théorème 24 convergence de la méthode QR 69 Calcul des valeurs propres Soit A une matrice carrée inversible et ayant des valeurs propres différentes en module. C’està-dire qu’il existe une matrice P inversible vérifiant λ1 ... et |λ1 | > |λ2 | > . . . > |λn | > 0 P −1 AP = λn De plus, on fait l’hypothèse que la matrice P −1 admet une factorisation LU, alors la suite Ak telle que définie ci-dessus vérifie (Ak )ii −→ λi ∀i = 1, 2, . . . , n (Ak )ij −→ 0 ∀j < i k→∞ k→∞ Remarques : 1. On ne peut rien dire sur la convergence de la partie supérieure j > i. 2. Si A est réelle et que les valeurs propres sont différentes en module, ceci entraı̂ne que les valeurs propres sont tous réelles car sinon les valeurs propres complexes apparaissent par paires de racines conjuguées, donc de même module ce qui est exclu par hypothèse du théorème. Preuve : Posons Ωk = Q1 Q2 . . . Qk et Rk = Rk . . . R2 R1 . On a que Ak+1 = Ωtk AΩk L’idée de la preuve consiste à étudier le comportement asymptotique de la suite Ωk . Pour cela, on va utiliser le fait qu’on a déjà une factorisation QR de la matrice Ak ≡ A . . . A (k fois) fournit par A k = Ωk Rk En effet Ω1 R1 = Q1 R1 = A Ω2 R2 = Q1 Q2 R2 R1 = Q1 R1 Q1 R1 = AA = A2 Ω3 R3 = Q1 Q2 (Q3 R3 )R2 R1 = Q1 Q2 (R2 Q2 )R2 R1 = Q1 (Q2 R2 )(Q2 R2 )R1 = (Q1 R1 )(Q1 R1 )(Q1 R1 ) = A3 70 Calcul des valeurs propres et ainsi de suite. Maintenant,nous allons chercher une autre factorisation QR avec Rii > 0 de sorte qu’on pourra utiliser l’unicité pour déduire le résultat final. λ 1 ... Posons P −1 = LU , P = QR et Λ = λn . Ceci entraı̂ne que Ak = P Λk P −1 = QRΛk LU = QR(Λk LΛ−k )Λk U Or (Λk LΛ−k )ij = X λki δik Lkl 1 λi δ = ( )k Lij k lj λj λl 0 i<j k,l = 1 ( λi ) k L ij λj i=j i>j car la matrice L est triangulaire inférieure et Lii = 1. Λk LΛ−k −→ I =⇒ par hypothèse sur les λi k→∞ Λk LΛ−k = I + Fk ⇐⇒ =⇒ k RΛ LΛ −k où Fk −→ 0 k→∞ −1 = (I + RFk R )R Les matrices I + RFk R−1 admettent une factorisation QR avec Rii > 0 car R est inversible I + RFk R−1 = Q̃k R̃k La suite Q̃k étant borné, ceci implique l’existence d’une sous-suite convergente. Par abus de langage, on notera de nouveau cette suite par Q̃k −→ Q̃. Donc, R̃k −→ R̃ avec R̃ii > 0 71 Calcul des valeurs propres et I = Q̃R̃. Par unicité de la factorisation QR, on a que Q̃ = R̃ = I. On notera que toutes les sous-suites convergent vers la matrice identité I. Donc la suite entière converge vers I. Revenons à l’expression de Ak Ak = Q(RΛk LΛ−k )Λk U = Q(Q̃k R̃k R)Λk U = (QQ̃k )(R̃k RΛk U ) qui est une autre factoristion QR de la matrice Ak . Toutefois, rien garantie que le facteur R vérifie Rii > 0. Pour cela, intercalons une matrice diagonale Dk avec |(Dk )ii = 1| de sorte que la matrice triangulaire supérieure (Dk R̃k RΛk U )ii > 0, ∀i = 1, . . . , n. On peut donc conclure par unicité que QQ̃k Dk = Ωk Passons à l’étape finale qui consiste à étudier la suite Ak . On a Ak+1 = Ωtk Ak Ωk = (Dk∗ Q̃∗k Q∗ )(QRΛR−1 Q−1 )(QQ̃k Dk ) = Dk∗ Q̃∗k RΛR−1 Q̃k Dk car A = P ΛP −1 et P = QR. Or Dk ≡ Q̃∗k RΛR−1 Q̃k −→ RΛR−1 k→∞ dont le résultat est de la forme RΛR−1 λ1 . . . . . . . . . 0 = 0 0 λ2 . . . . . . ... . . . ... . . . . . . λn 72 Calcul des valeurs propres D’autre part h i (Dk∗ Dk Dk )ij = Dk∗ Q̃∗k RΛR−1 Q̃k Dk = (D̄k )ii (Dk )jj (Dk )ij ij Cette égalité se traduit par les relations i=j i=j (Dk∗ Dk Dk )ii = (Dk )ii −→ (RΛR−1 )ii = λi (Dk∗ Dk Dk )ij = (D̄k )ii (Dk )jj (Dk )ij −→ 0 Remarques : 1. Dans le cas où plusieurs valeurs propres ont le même module (cas des valeurs propres complexes pour une matrice réelle), moyennant une hypothèse de factorisation LU par blocs par P −1 , on peut montrer que le comportement asymptotique des matrices Ak a l’allure suivante. Par exemple |λ1 | = |λ2 | = |λ3 | > |λ4 | > λ5 | > |λ6 | = |λ7 | = |λ8 | x x x x x x x x x x x x x x x x x x x x x x x x 0 0 0 x x x x x 0 0 0 0 x x x x 0 0 0 0 x x x x 0 0 0 0 x x x x 0 0 0 0 x x x x Les (Ak )ij ne converge pas nécessairement mais les valeurs propres de chaque sous-matrices convergent vers les valeurs propres du module considéré. 2. Dans la pratique, on commence par mettre la matrice A sous une forme plus simple dite 73 Calcul des valeurs propres de Hessenberg x x ... ... x x x . . . . . . x .. . . A = 0 x . ... . .. . . . . . . .. . . . . . 0 ... 0 x x Cette mise préliminaire s’effectue avec des matrices de Householder d’une façon analogue à la réduction à la forme tridiagonale dans le cas symétrique. L’avantage provient du fait que la suite Ak reste sous la forme de Hessenberg. 5.5 Méthodes de puissance Supposons que l’on désire calculer un seul vecteur propre correspondant à une valeur propre λ déjà connue. La méthode des itérations inverses est définie par u = donné 0 u −1 k+1 = (A − λ̄I) uk (5.1) où λ̄ est une valeur proche de λ. Le calcul de uk+1 s’obtient en résolvant le système linéaire (A − λ̄I)uk+1 = uk . Notons que la matrice A − λ̄I n’est pas inversible si λ̄ est une valeur propre de A. Voici comment la suite des uk peut être utilisé pour approcher un vecteur propre correspondant à la valeur propre λ. Théorème 25 Convergence de la méthode des itérations inverses Soit A une matrice carrée diagonalisable et λ une valeur propre de A. On se donne un nombre complexe λ̄ vérifiant λ̄ 6= λ et |λ̄ − λ| < |λ̄ − µ| ∀µ ∈ sp(A) \ {λ} (5.2) 74 Calcul des valeurs propres De plus, supposons que le vecteur initial u0 n’est pas contenu dans le sous-espace propre associé à λ, alors (λ − λ̄)k uk =q k→∞ |λ − λ̄|k ||uk || lim est un vecteur propre lié à λ. Preuve : soit B = {pi }ni=1 une base de vecteurs propres de A associée aux valeurs propres {λi }ni=1 . On a que u0 = n X αi pi = X αi pi + λi =λ i=1 X αi pi λi 6=λ = p̃ + X αi pi λi 6=λ Par hypothèse, p̃ 6= 0. uk = (A − λ̄I)−1 uk−1 =⇒ −k uk = (A − λ̄I) u0 = uk = n X uk = X i=1 (λ1 − λ̄) −k 0 .. . (λ2 − λ̄)−k 0 ... ... (λi − λ̄)−k αi pi λi =λ (λi − λ̄)−k αi pi + X λi 6=λ (λi − λ̄)−k αi pi X αi pi p̃ + uk = (λ − λ̄)k λ 6=λ (λi − λ̄)k i =⇒ X (λ − λ̄)k (λ − λ̄)k uk = p̃ + α p −→ p̃ k i i (λ − λ̄) i λ 6=λ i =⇒ =⇒ 0 |λ − λ̄|k ||uk || −→ ||p̃|| (λ − λ̄)k uk p̃ −→ ||p̃|| = q |λ − λ̄|k ||uk || et q fait partie du sous-espace propre associé à λ. ... 0 ... 0 ... .. . . . . (λn − λ̄)−k B α1 .. . .. . αn B 75 Calcul des valeurs propres A noter que si λ > λ̄, on a que uk ||uk || −→ q. Sinon λ < λ̄, on a que (−1)k ||uukk || −→ q. Remarques : 1. En pratique, on ne sait pas si λ > λ̄ ou λ < λ̄. Il faut étudier la convergence des deux suites uk ||uk || (−1)k ou bien uk ||uk || 2. On sait qu’il faut prendre λ̄ 6= λ. Par contre, selon l’expression de (λ − λ̄)k uk ci-dessus, il est préférable de prendre λ̄ aussi voisin que possible de λ pour accélérer la convergence. Toutefois, la matrice A − λ̄I devient mal conditionné. 3. Si on choisit λ̄ = 0, l’hypothèse (5.2) devient |λ| < |µ| ∀µ ∈ sp(A) \ {λ} ce qui revient à dire que la méthode itérative va converger vers le vecteur propre correspondant à la plus faible valeur propre en module. Algorithme de puissance inverse : u 0 Au = k+1 donné = uk 4. Prenons A−1 au lieu de A et aussi λ̄ = 0. L’hypothèse (5.2) s’écrit maintenant 1 1 < |λ| |µ| ∀µ ∈ sp(A) \ {λ} |µ| < |λ| ∀µ ∈ sp(A) \ {λ} ce qui est équivalent à donc l’algorithme converge vers le vecteur propre de plus grand module. L’algorithme s’écrit. Algorithme de puissance ordinaire : u 0 u k+1 = donné = Auk 76 Calcul des valeurs propres 5. Pour calculer la valeur propre correspondant au vecteur propre q, il suffit de calculer son quotient de Rayleigh λk = (Aqk , qk ) (qk , qk ) Si qk est une bonne approximation de q, alors λk sera une bonne appproximation λ. 6. Finalement, l’hypothèse sur u0 est en général satisfaite car il est peu probable que la composante de u dans l’espace propre correspondant à λ soit égal à zéro.