NumAnalysis / Module Cholesky
⬛ Module

Décomposition Cholesky

Factorisation A = LL᷊ pour les matrices symétriques définies positives — plus efficace que LU dans ce cas particulier.

← Retour à NumAnalysis

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 :

Mathématiques
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

⚠️ 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.

Python
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

ℹ️ 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.