NumAnalysis / Module LU
🔢 Module

Décomposition LU

Factorisation d'une matrice carrée sous la forme A = LU, avec L triangulaire inférieure à diagonale unité et U triangulaire supérieure.

← Retour à NumAnalysis

Principe

La décomposition LU exprime toute matrice carrée inversible A comme le produit de deux matrices triangulaires :

Mathématiques
A = L · U

      ⎡1   0⎤   ⎡u₁₁  u₁₂⎤
L =   ⎣l₂₁  1⎦ , U = ⎣ 0   u₂₂⎦

llu_unit(A)

Calcule la matrice L de la décomposition LU. La diagonale est fixée à 1 et les coefficients sous-diagonaux sont calculés par élimination de Gauss.

Python
A = [[4, 3],
     [6, 3]]

L = llu_unit(A)
# L = [[1.0,  0.0],
#      [1.5,  1.0]]

ulu_unit(A)

Calcule la matrice U correspondante. Une fois L et U obtenus, on peut vérifier que leur produit reconstitue la matrice originale.

Python
U = ulu_unit(A)
# U = [[4.0,   3.0],
#      [0.0,  -1.5]]

# Vérification : L · U = A
import numpy as np
np.allclose(np.dot(L, U), A)  # True

Applications

ℹ️ La décomposition LU est préférable à Cholesky pour les matrices qui ne sont pas symétriques définies positives.