Adloun

Endomorphismes symétriques et théorème spectral

Cours complet · mathématiques approfondies (ECG 2e année), chapitre 9 · prépa ECG, 2e année

Travailler ce chapitre sur Adloun Exercices corrigés de ce chapitre

Le chapitre 3 a montré qu'un endomorphisme n'est pas toujours diagonalisable, et le chapitre 4 a muni l'espace d'un produit scalaire. En croisant les deux, on obtient le résultat le plus fort de l'année : un endomorphisme symétrique est toujours diagonalisable, et dans une base orthonormée.

C'est le théorème spectral. Il sera l'outil décisif du chapitre 10 — c'est lui qui garantit que la matrice hessienne a des valeurs propres réelles, et donc que le critère d'ordre a un sens.

AttentionCe que le programme demande sur les matrices orthogonales

Rien de plus que . La conclusion du théorème spectral s'écrit donc , ce qui est commode : inverser la matrice de passage, c'est la transposer.

9.1 Endomorphismes symétriques

Définition 9.1Endomorphisme symétrique

Soit un espace euclidien. Un endomorphisme de est symétrique lorsque

◆Théorème 9.2Traduction matricielle

est symétrique si et seulement si sa matrice dans une base orthonormée est symétrique.

Attention« Dans une base orthonormée » n'est pas facultatif

La matrice d'un endomorphisme symétrique dans une base quelconque n'a aucune raison d'être symétrique. C'est l'orthonormalité qui fait le lien, via . Une matrice symétrique lue dans une base oblique ne dit rien.

◆Théorème 9.3Stabilité de l'orthogonal

Si est symétrique et si est un sous-espace stable par (c'est-à-dire ), alors est aussi stable par .

Démonstration

Soit . Pour tout , comme ,

puisque est orthogonal à tout . Donc .

◆Théorème 9.4Orthogonalité des sous-espaces propres

Les sous-espaces propres d'un endomorphisme symétrique sont deux à deux orthogonaux. En particulier, des vecteurs propres associés à des valeurs propres distinctes sont orthogonaux.

Démonstration

Soient et avec . Alors

donc . Comme , on a .

9.2 Projection orthogonale

Définition 9.5Projection orthogonale

Soit un sous-espace d'un espace euclidien . Comme , tout s'écrit d'une unique façon avec et . L'application est la projection orthogonale sur .

◆Théorème 9.6Calcul en base orthonormée

Si est une base orthonormée de , alors

◆Théorème 9.7Caractérisation par la symétrie

Un projecteur (c'est-à-dire ) est un projecteur orthogonal si et seulement si c'est un endomorphisme symétrique.

◆Théorème 9.8Caractérisation par minimisation

Pour tout et tout ,

Autrement dit, est le point de le plus proche de .

Démonstration

Pour , écrivons . Le premier terme est dans , le second dans : ils sont orthogonaux, et Pythagore donne

avec égalité si et seulement si .

ImportantLes moindres carrés sont une projection

Minimiser pour de rang revient à chercher, dans le sous-espace , le point le plus proche de — c'est-à-dire . La droite de régression du chapitre 7 des appliquées n'est rien d'autre. Ce résultat n'est pas exigible, mais il éclaire d'un coup toute la statistique.

9.3 Le théorème spectral

◆Théorème 9.9Théorème spectral, version endomorphisme

Soit un espace euclidien et un endomorphisme symétrique de . Alors est diagonalisable, et il existe une base orthonormée de formée de vecteurs propres de . Ses sous-espaces propres sont deux à deux orthogonaux.

◆Théorème 9.10Version matricielle

Toute matrice symétrique réelle est diagonalisable, et l'on peut choisir la matrice de passage orthogonale :

iRemarqueRésultat admis

Le programme l'admet. Il faut en retenir trois choses : diagonalisable toujours, valeurs propres réelles, base propre orthonormée. Aucune des trois n'est vraie pour une matrice quelconque.

Exemple 9.11Une diagonalisation orthogonale

Soit , symétrique. On vérifie

Les deux directions propres sont orthogonales, conformément au théorème. En les normalisant :

On vérifie , et étant orthogonale, sans avoir à inverser quoi que ce soit.

Python : Diagonaliser orthogonalement


import numpy as np

A = np.array([[3., 1.], [1., 3.]])
# eigh : la version des matrices SYMETRIQUES
vp, P = np.linalg.eigh(A)

print(vp)                          # [2. 4.]
print(np.allclose(P.T @ P, np.eye(2)))    # True  <- P est orthogonale
print(np.allclose(P.T @ A @ P, np.diag(vp))) # True  <- D = tP A P

eigh exploite la symétrie : elle rend des valeurs propres réelles triées et une matrice de passage déjà orthonormée. Sur une matrice non symétrique, elle donnerait un résultat faux sans prévenir — elle ne lit que la moitié de la matrice.

Continuer sur Adloun : animation, QCM, fiches, exercices