Passer au contenu principal
AlgèbreFormule · Glossaire

Sherman-Morrison (formule de)

La formule de Sherman-Morrison permet de calculer efficacement l'inverse d'une matrice obtenue par une mise à jour de rang 1. Si A est une matrice inversible et u, v sont des vecteurs colonne tels que A + uvᵀ est inversible, alors l'inverse de A + uvᵀ s'exprime en fonction de A⁻¹ par la formule (A + uvᵀ)⁻¹ = A⁻¹ − (A⁻¹uvᵀA⁻¹)/(1 + vᵀA⁻¹u). Cette formule évite de recalculer complètement l'inverse et est très utile en optimisation et dans les algorithmes itératifs.
Mise à jour d’un inverse par la formule de Sherman-Morrison L’inverse initial moins une correction de rang un donne l’inverse mis à jour, contrôlé par un produit égal à l’identité. Une correction de rang 1 sur l’inverse Inverse initial A⁻¹ 1/2 0 0 1 Correction C 1/6 0 1/3 0 = Inverse mis à jour 1/3 0 −1/3 1 Contrôle exact [[3, 0], [1, 1]] × [[1/3, 0], [−1/3, 1]] = [[1, 0], [0, 1]]
La correction de rang 1 transforme l’inverse connu : le produit final avec la matrice modifiée redonne l’identité.
Sommaire

Ce que vous allez apprendre

  • Identifier les hypothèses nécessaires à la formule.
  • Calculer une mise à jour d’inverse de rang 1 étape par étape.
  • Détecter le dénominateur nul et les situations numériquement sensibles.

En clair

Imaginez un calcul qui utilise déjà l’inverse d’une grande matrice. Une nouvelle information modifie cette matrice d’une façon très simple : chaque colonne reçoit un multiple du même vecteur. Recommencer toute l’inversion serait coûteux.
La formule de Sherman-Morrison corrige directement l’inverse connu. Elle ne demande que des produits matrice-vecteur, un produit entre deux vecteurs et une division. Cette économie est possible parce que la modification ajoute au plus une direction indépendante : elle est de rang au plus 1.

Définition

La formule de Sherman-Morrison est une identité de mise à jour d’inverse. On part d’une matrice carrée réelle A dont l’inverse A−1 est connu. Deux vecteurs colonnes u et v, de même nombre de composantes que A, forment la matrice uvT. Cette matrice est de rang au plus 1 : toutes ses colonnes sont des multiples de u.
La matrice modifiée est A + uvT. Si le nombre 1 + vTA−1u n’est pas nul, cette matrice est inversible et son inverse s’obtient par une correction de A−1 : (A+uvT)1=A1A1uvTA11+vTA1u(A+uv^T)^{-1}=A^{-1}-\frac{A^{-1}uv^TA^{-1}}{1+v^TA^{-1}u}. Le dénominateur est un scalaire, tandis que le numérateur est une matrice de rang au plus 1.
La formule réutilise donc l’inverse disponible au lieu d’inverser la matrice modifiée depuis le début. Elle concerne précisément une perturbation écrite comme le produit d’un vecteur colonne par un vecteur ligne.

Le principe

Soit A une matrice carrée réelle inversible. Soient u et v deux vecteurs colonnes compatibles. Si le scalaire 1 + vTA−1u est non nul, alors A + uvT est inversible et :
(A+uvT)1=A1A1uvTA11+vTA1u(A+uv^T)^{-1}=A^{-1}-\frac{A^{-1}uv^TA^{-1}}{1+v^TA^{-1}u}
Le terme soustrait est la correction apportée à l’inverse initial. Le calcul s’arrête après cette correction ; aucune nouvelle inversion complète n’est nécessaire.

Quand l'utiliser

La formule s’applique à une matrice carrée A déjà inversible et à une modification exactement écrite sous la forme uvT. Les vecteurs colonnes u et v doivent avoir la dimension de A. Il faut enfin vérifier que le scalaire 1 + vTA−1u est différent de zéro.
Si ce scalaire vaut zéro, la division est impossible et A + uvT n’est pas inversible. Par exemple, avec A égale à la matrice identité, u non nul et v = −u/(uTu), le dénominateur s’annule. Il faut alors renoncer à chercher un inverse ordinaire de la matrice modifiée. Si la modification n’est pas de rang 1, cette formule seule ne suffit pas et un autre calcul d’inversion est requis.

Un exemple, pas à pas

On part de la matrice A et des deux vecteurs colonnes u et v suivants. L’inverse de A est déjà connu. Toutes les valeurs restent exactes pendant le calcul :
A=(2001),A1=(12001),u=(11),v=(10)A=\begin{pmatrix}2&0\\0&1\end{pmatrix},\quad A^{-1}=\begin{pmatrix}\frac12&0\\0&1\end{pmatrix},\quad u=\begin{pmatrix}1\\1\end{pmatrix},\quad v=\begin{pmatrix}1\\0\end{pmatrix}
1. La mise à jour et la matrice modifiée valent :
uvT=(1010)uv^T=\begin{pmatrix}1&0\\1&0\end{pmatrix} et A+uvT=(3011)A+uv^T=\begin{pmatrix}3&0\\1&1\end{pmatrix}.
2. Le dénominateur est non nul : 1+vTA1u=1+12=321+v^TA^{-1}u=1+\frac12=\frac32.
3. La correction vaut A1uvTA13/2=(160130)\frac{A^{-1}uv^TA^{-1}}{3/2}=\begin{pmatrix}\frac16&0\\\frac13&0\end{pmatrix}.
4. On la soustrait à A−1 :
(A+uvT)1=(130131)(A+uv^T)^{-1}=\begin{pmatrix}\frac13&0\\-\frac13&1\end{pmatrix}
Le contrôle consiste à multiplier la matrice modifiée par le résultat. On obtient exactement la matrice identité : (3011)(130131)=(1001)\begin{pmatrix}3&0\\1&1\end{pmatrix}\begin{pmatrix}\frac13&0\\-\frac13&1\end{pmatrix}=\begin{pmatrix}1&0\\0&1\end{pmatrix}.

En pratique

En optimisation, une itération peut modifier une matrice par une information de rang 1. Si l’inverse précédent est disponible et que le dénominateur reste non nul, Sherman-Morrison met cet inverse à jour sans reprendre toute l’inversion.
Dans un algorithme itératif, le même geste se répète : on forme les produits avec A−1, on contrôle le scalaire au dénominateur, puis on applique la correction. Une inversion directe reste l’alternative lorsque la modification n’a pas la forme uvT ou lorsque l’inverse initial n’est pas disponible.
Un dénominateur très proche de zéro constitue aussi un signal d’alerte en calcul numérique : la division amplifie les erreurs d’arrondi. Dans cette situation, mieux vaut employer une méthode numérique adaptée plutôt que la formule telle quelle.

À ne pas confondre

Une mise à jour de rang 1 ne signifie pas que la matrice modifiée a elle-même le rang 1. Dans l’exemple, uvT est de rang 1, mais A + uvT est inversible et possède donc le rang 2. Le rang décrit ici la correction, pas la matrice finale.
La formule ne doit pas non plus être confondue avec une méthode générale pour calculer un premier inverse. Elle suppose A−1 déjà connu. Si seul A est donné, il faut d’abord obtenir son inverse par une méthode d’inversion adaptée.

Limites et pièges

Dénominateur nul. Le seuil exact est 1 + vTA−1u = 0. La formule présente alors une division par zéro et la matrice A + uvT est singulière ; aucun inverse ordinaire ne peut être produit.
Dénominateur presque nul. La formule reste algébriquement valable si le scalaire n’est pas exactement nul, mais le quotient peut devenir très sensible aux erreurs numériques. Il faut surveiller sa taille à l’échelle des données et préférer un calcul numériquement plus stable si nécessaire.
Mauvaise factorisation. Modifier un seul coefficient donne bien une mise à jour de rang au plus 1, mais modifier plusieurs coefficients arbitraires ne le garantit pas. Avant d’appliquer la formule, il faut vérifier que toute la perturbation est exactement égale à uvT.
Matrice initiale non inversible. L’absence de A−1 bloque la formule, même si la matrice modifiée devient inversible. Il faut alors traiter directement la nouvelle matrice au lieu de forcer une mise à jour inexistante.

Pour aller plus loin

La fiche matrice inverse replace A−1 dans son cadre général et rappelle ce que signifie annuler l’action d’une matrice par multiplication.
La formule invite ensuite à étudier les mises à jour de rang supérieur : la même question demeure, mais une correction construite avec plusieurs directions demande un cadre plus général que le produit uvT.
Continuez avec Tangente

Explorez les mathématiques autrement

Retrouvez nos magazines, podcasts et jeux pour explorer les mathématiques autrement.

Découvrir les offres