Principe
Pour toute matrice symétrique définie positive A, la décomposition de Cholesky garantit l'existence d'une unique matrice triangulaire inférieure L à coefficients diagonaux strictement positifs telle que :
A = L · Lᵀ
⎡l₁₁ 0 ⎤ ⎡l₁₁ l₂₁⎤
L = ⎣l₂₁ l₂₂⎦ , Lᵀ = ⎣ 0 l₂₂⎦
Par rapport à LU, Cholesky exploite la symétrie pour ne calculer que la moitié des coefficients, ce qui le rend environ deux fois plus rapide.
Conditions d'application
- La matrice doit être carrée — vérifiable avec
verifCarre() - La matrice doit être symétrique — vérifiable avec
est_symetrique() - La matrice doit être définie positive — toutes les valeurs propres strictement positives
⚠️
Appeler
cholesky() sur une matrice non définie positive provoque une erreur (racine carrée d'un nombre négatif). Utilisez est_definie_positive() en amont.
cholesky(A)
Retourne la matrice L triangulaire inférieure telle que A = L · LT.
A = [[4, 2], [2, 3]] L = cholesky(A) # L = [[2.0, 0.0 ], # [1.0, 1.414]] # Vérification : L · Lᵀ = A import numpy as np np.allclose(L @ L.T, A) # True
Applications
- Résolution de systèmes linéaires symétriques définis positifs (matrices de covariance, rigidité)
- Calcul du déterminant : det(A) = (∏ lᵢᵢ)²
- Simulation de variables aléatoires corrélées en statistiques
- Méthodes des éléments finis en mécanique des structures
ℹ️
Les matrices de rigidité en mécanique et les matrices de covariance en statistiques sont presque toujours symétriques définies positives — Cholesky est le choix naturel pour ces cas.