Un ordinateur ne résout jamais un système en calculant un inverse. Il décompose la matrice en un produit de matrices simples : triangulaires (LU: Lower et Upper) ou orthogonale triangulaire (QR). Ces deux décompositions sont le cœur de tout le calcul scientifique. Cinq planches pour les construire pas à pas, et pour voir pourquoi l'ordre des opérations et le choix de la méthode décident de la précision obtenue.
Résoudre Ax = b est facile quand A est triangulaire : on trouve la dernière inconnue, puis on remonte (substitution). C'est facile aussi quand A est orthogonale (QᵀQ = I) : x = Qᵀb. L'idée est donc d'écrire A comme un produit de telles matrices :
| Décomposition | Forme | Fabriquée par | Sert à | Coût pour n × n |
|---|---|---|---|---|
| LU | PA = LU, L triangulaire inférieure à diagonale 1, U triangulaire supérieure | l'élimination de Gauss, avec échanges de lignes P | systèmes carrés, déterminant, plusieurs seconds membres | ≈ 2n³/3 |
| QR | A = QR, Q orthogonale, R triangulaire supérieure | Gram-Schmidt, réflexions de Householder, rotations de Givens | moindres carrés, valeurs propres, bases orthonormées | ≈ 4n³/3 |
Pourquoi garder la trace de l'élimination plutôt que de la refaire ?
Chaque étape de Gauss retranche à la ligne i un multiple mik de la ligne k pour annuler un coefficient. En rangeant les mik sous la diagonale d'une matrice L (avec des 1 sur la diagonale), on obtient exactement A = LU, où U est la matrice triangulaire finale. Une fois L et U connus, chaque nouveau second membre b se traite en deux substitutions : Ly = b, puis Ux = y.
L'élimination sans échange de lignes est exacte en théorie. En machine, elle peut tout perdre.
Prenons A = [[ε, 1], [1, 1]] avec ε minuscule. La solution de Ax = (1 + ε, 2) est exactement x = (1, 1). Sans échange, le multiplicateur vaut 1/ε, gigantesque, et les arrondis de la machine (environ 10⁻¹⁶ en relatif) sont amplifiés d'autant. Avec le pivot partiel, on choisit à chaque étape comme pivot le plus grand coefficient de la colonne : tous les multiplicateurs sont alors au plus égaux à 1 en valeur absolue. On obtient PA = LU, où P est une matrice de permutation.
Le danger vient de la croissance des coefficients pendant l'élimination. Avec pivot partiel, ils peuvent au pire doubler à chaque étape. Wilkinson a exhibé la matrice qui atteint ce pire cas : des 1 sur la diagonale et dans la dernière colonne, des −1 sous la diagonale. Sa croissance vaut 2ⁿ⁻¹.
Comment transformer les colonnes de A en une base orthonormée sans perdre l'information ?
On prend les colonnes a₁, a₂, a₃… une par une. On normalise a₁ pour obtenir q₁. On retire à a₂ sa projection sur q₁, puis on normalise : q₂. On retire à a₃ ses projections sur q₁ et q₂, et ainsi de suite. Les coefficients des projections et les normes forment une matrice triangulaire R, et A = QR. C'est le procédé de Gram-Schmidt.
Gram-Schmidt classique calcule toutes les projections de aj avec les colonnes d'origine. Gram-Schmidt modifié les retire une à une du vecteur déjà corrigé : c'est mathématiquement identique, mais plus robuste numériquement. Householder (planche 4) procède tout autrement, par réflexions. On les compare sur les matrices de Hilbert hᵢⱼ = 1/(i + j − 1), célèbres pour leur mauvais conditionnement κ.
Comment faire apparaître des zéros sous la diagonale avec des matrices orthogonales, qui ne déforment rien ?
Une réflexion de Householder H = I − 2vvᵀ (avec ‖v‖ = 1) renvoie un vecteur a sur ‖a‖e₁ par symétrie par rapport à un miroir bien choisi : elle annule d'un coup toute une colonne sous la diagonale. Une rotation de Givens tourne dans le plan de deux coordonnées pour annuler un seul coefficient. Toutes deux conservent les longueurs, donc les erreurs d'arrondi ne sont jamais amplifiées.
QR résout bien mieux les problèmes de moindres carrés que les équations normales, et, appliquée en boucle, elle trouve les valeurs propres.
On cherche le polynôme de degré d le plus proche, au sens des moindres carrés, de 40 points. La méthode des équations normales résout AᵀAx = Aᵀb : simple, mais le conditionnement de AᵀA est κ(A)², et l'on perd deux fois plus de chiffres. La méthode QR écrit A = QR et résout Rx = Qᵀb, en ne perdant que κ(A). Pour mesurer les erreurs, les données sont tirées exactement d'un polynôme connu, de coefficients 1, 1/2, 1/3, …
On factorise A₀ = Q₀R₀, puis on multiplie dans l'autre ordre : A₁ = R₀Q₀ = Q₀ᵀA₀Q₀. Cette nouvelle matrice est semblable à A₀, donc elle a les mêmes valeurs propres. En recommençant, les coefficients sous la diagonale s'éteignent et la diagonale converge vers les valeurs propres, rangées par ordre décroissant de module. La matrice symétrique ci-dessous cache les valeurs propres 5, 4, 3, 2 et 1.
L'élimination de Gauss, avec ses multiplicateurs gardés dans L. On factorise une fois (2n³/3) et l'on résout ensuite chaque système en 2n². Le pivot partiel est indispensable en machine.
Orthogonale fois triangulaire. Gram-Schmidt est la version des manuels, Householder et Givens celles des logiciels, car les matrices orthogonales n'amplifient pas les erreurs.
Les moindres carrés par QR perdent κ chiffres au lieu de κ². Itérer QR, puis RQ, fait converger la matrice vers ses valeurs propres.
Cholesky. Pour une matrice symétrique définie positive, A = CCᵀ avec C triangulaire : deux fois moins coûteux que LU, et stable sans pivot.
Pivot total, pivot de colonne. Le pivot total (lignes et colonnes) borne mieux la croissance, mais coûte plus cher. La factorisation QR avec pivot de colonnes révèle le rang numérique d'une matrice.
Matrices creuses. Pour les très grandes matrices issues des équations aux dérivées partielles, l'ordre d'élimination décide du « remplissage » de L et U ; on combine alors décompositions et méthodes itératives.
Liens. Systèmes linéaires (VIII.14), matrices et valeurs singulières, espaces euclidiens (VIII.22) pour l'orthogonalité, et la page sur les valeurs singulières pour le conditionnement.