Matrices symétriques définies positives

Bien que des extensions et des généralisations soient possibles pour le cas hilbertien (hermitien) complexe, nous nous bornons ici à condidérer des matrices réelles symétriques.
Nous savons ce qu'est une forme bilinéaire. Nous savons également ce qu'est la matrice d'une forme bilinéaire. Nous avons donc tout ce qu'il faut pour définir les matrices qui vont faire l'objet de notre étude.
Une matrice A est dite symétrique définie positive (sdf) si elle est symétrique et si la forme bilinéaire associée relativement à la base canonique est définie positive.
Notre définition revient donc à:
A sdf ⇔ tA=A et ∀ X vecteur colonne de ℝn on a tXAX ∈ ℝ et tXAX ≥ 0 et tXAX=0 ⇒ X=0.
Pour des exemples de matrices sdf on peut prendre:
Nous savons déjà beaucoup de choses sur de telles matrices, en particulier qu'elles ont toutes leurs valeurs propres réelles, et qu'elles sont diagonalisables relativement à une base orthonormale. Nous avons tout de suite quelques résultats supplémentaires.
Dans le cas d'une matrice sdf toutes les valeurs propres sont strictement positives.
On voit cela en utilisant les vecteurs propres. En outre l'existence d'une valeur propre nulle entrainerait tXX=||X||2=0, pour un vecteur propre correspondant, ce qui est une contradiction. De fait on peut montrer que:
Cette propriété caractérise les matrices sdf.
Bien que les matrices sdf puissent apparaître très particulières, elles apparaissent souvent naturellement comme matrices de systèmes linéaires, particulièrement pour: Une étude particulière se justifie donc pleinement.

Factorisation de Cholesky

Le théorème principal est dû à André-Louis Cholesky (1875-1918).

Image: Archives de l'Ecole polytechnique (Fonds A. Cholesky).
On peut l'énoncer ainsi:
Toute matrice A sdf possède une factorisation LU du type A=t TT où T est une matrice triangulaire supérieure.
On voit tout de suite l'intérêt pratique d'un tel théorème. En fait dans une factorisation LU classique on recherche deux matrices triangulaires distinctes, n'ayant en fait aucun rapport particulier entre elles. Dans ce cas nous ne cherchons qu'une matrice triangulaire (donc en fait une demi-matrice).
La preuve de cet énoncé est liée aux divers algorithmes de détermination de T.
Ces algorithmes sont nombreux: La plupart de ces algorithmes font intervenir des calculs de racines carrées.
Nous renvoyons le lecteur intéressé aux divers liens vers les (nombreuses) pages web où ces calculs sont détaillés.
Nous choisissons pour notre part, d'exposer une méthode de factorisation sensiblement différente, du type:
A=t TDT, présentant l'avantage de ne pas faire appel à des calculs de racines. Cela peut être intéressant particulièrement dans le cas de résolution sur le corps ℚ des rationnels. L'inconvénient étant que la solution résolution finale du système:
t TDTX=B, passe par la résolution de 3 systèmes:
t TZ=B
DY=Z
TX=Y
dont deux sont triangulaires et un diagonal. Cependant la résolution d'un système diagonal ne nécessite qu'une division par une inconnue. Voici la factorisation dans le cas du rang 3.
A = LD L t = 1 0 0 L 21 1 0 L 31 L 32 1 × D 1 0 0 0 D 2 0 0 0 D 3 × 1 L 21 L 31 0 1 L 32 0 0 1 = D 1 L 21 D 1 L 21 2 D 1 + D 2 L 31 D 1 L 31 L 21 D 1 + L 32 D 2 L 31 2 D 1 + L 32 2 D 2 + D 3
En identifiant il vient les relations de récurrence:
D i = A ii k = 1 i 1 L ik 2 D k
L ij = 1 D j A ij k = 1 j 1 L ik L jk D k
Voici maintenant une appliquette qui vous permettra de visualiser des factorisations de Cholesky pour des matrices d'ordre 4 symétriques définies positives à coefficients réels.
Matrice A
Matrice T

Café Python

Voici une implémentation de la méthode de réduction de Cholesky au moyen d'une matrice diagonale, n'utilisant pas les racines carrées.

Voici un exemple d'utilisation de la bibliothèque scipy.linalg pour la factorisation de Cholesky (classique).

Voici le résultat de l'exécution:
[[ 1. 1. 1. 1.]
[ 0. 2. 2. 2.]
[ 0. 0. 3. 3.]
[ 0. 0. 0. 1.]]
C'est la matrice T, on a donc A=t TT