La m´ethode de la puissance permet alors d’approcherλ

Download (0)

Full text

(1)

Universit´e de Marseille

Licence de Math´ematiques, analyse num´erique Travaux Pratiques 4, en python

Exercice 1 (M´ethode de la puissance)

SoitA∈ Mn(IR), n≥1. on suppose qu’il existeλ valeur propre simple deA telle que|λ|=ρ(A) et |µ|<|λ|pour toutes les valeurs propres µde Aautres queλ(noter queλest alors n´ecesairement r´eelle).

La m´ethode de la puissance permet alors d’approcherλ. On rappelle que l’id´ee consiste, en partant d’un vecteurx(0) de IRn, `a construire une suite (x(k))k∈IN de vecteurs telle quex(k+1)=Ax(k)/|Ax(k)|. (On rappelle que|x|d´esigne ici la norme euclidienne habituelle du vecteurxde IRn.)

SiAx(k)6= 0 pour toutk(si qui est g´en´eralement le cas), on peut montrer que, sauf pour des choix particuliers dex(0), Ax(k)·x(k) tend versλquand k tend vers +∞.

1. Ecrire en python une fonction ayant pour argument une matrice A et un nombre d’it´erations et donnant en retour la valeur de Ax(k)·x(k) lorsque k est ´egal au nombre d’it´erations (on esp`ere donc que cette valeur est une approximation de la valeur propre deA dont la valeur absolue est le rayon spectral).

2. On consid`ere les deux matrices que nous avons d´ej`a vue dans les tp pr´ec´edents,

A=

10 7 8 7

7 5 6 5

8 6 10 9

7 5 9 10

et, pour n = 10, An donn´ee par An[i, i] = 2/(h2), An[i, j] = −1/(h2) si

|i−j|= 1 etAn[i, j] = 0 si|i−j|>1.

A l’aide de la fonction construite dans la question 1, calculer le rayon spec- tral de la matrice M−1N pour les m´ethodes de Jacobi et de Gauss Seidel appliqu´ees aux deux matricesA etAn (pourn= 10). On rappelle que, avec les notations habituelles, pour la m´ethode de Jacobi,M =D et N =E+F et, pour la m´ethode de Gauss-Seidel,M =D−E etN =F.

3. Dans la m´ethode de la puissance d´ecrite ci dessus, pourquoi ne peut-on rem- placer la norme euclienne (c’est-`a-dire | · |) par une autre norme usuelle de IRn, par exemple la norme not´ee habituellementk · k1 ?

Exercice 2 (M´ethodeQR)

On rappelle que la m´ethodeQRest une m´ethode qui permet de trouver (souvent, mais pas toujours) de mani`ere approch´ee les valeurs propres d’une matrice. Elle utilise la d´ecompositionQR d’une matrice (c’est-`a-dire queA =QR o`u Qest une matrice orthogonale etRune matrice triangulaire sup´erieure). L’algorithme de la m´ethodeQR, pour une matrice donn´ee A, est le suivant, avec une valeur εpetite (par exempleε= 10−6) :

Mettre A dans B. Puis, tant que les coefficients sous la diagonale de B sont sup´erieure `a ε calculer la d´ecomposition QR de B (utilisernumpy.linalg.qr) et poserB=RQ.

Pour de nombreuses matrices, l’algorithme donne, sur la diagonale de B, une approximation des valeurs propres deA.

1

(2)

1. Ecrire en python une fonction ayant pour argument une matrice A et un nombre ε et donnant en retour la matrice B obtenue par la m´ethode QR (mettre dans la fonction un nombre maximum d’it´erations, par exemple 1000, pour le cas o`u la m´ethode ne converge pas).

2. Constuire une matriceM de M4(IR) avec des coefficients al´eatoires [utiliser numpy.random] et poserP =MtM.

3. S’assurer que la matriceP obtenue dans la question 2 est inversible (ce qui est, en g´en´eral, le cas) et poser, pour i= 1,2,3,Ai=P DiP−1avec

D1=

6 0 0 0

0 5 0 0

0 0 2 0

0 0 0 1

 ,D2=

5 0 0 0

0 1 0 0

0 0 2 0

0 0 0 6

 ,D3=

5 0 0 0

0 3 0 0

0 0 2 0

0 0 0 3

 .

4. Utiliser la fonction de la question 1 pour calculer une approximation des valeurs propres deA1,A2 etA3de la question 3.

5. On poseA4=P D4P−1avecPdonn´ee `a la question 2 etD4=

5 0 0 0

0 2 0 0

0 0 0 1

0 0 1 0

 .

Utiliser la fonction de la question 1 avecA4. Trouve-t-on les valeurs propres deA4?

Calculer les valeurs propres de la sous-matrice compos´ee des deux derni`eres colonnes et des deux derni`eres lignes du r´esultat de la fonction de la question 1 avecA4. Retrouve-t-on les valeurs propres deA4?

2

Figure

Updating...

References

Related subjects :