Formule de Sherman-Morrison

De testwiki
Aller à la navigation Aller à la recherche

En algèbre linéaire, la formule de Sherman-Morrison, nommée d'après Jack Sherman et Winifred J. Morrison, calcule l'inverse d'une « mise à jour de rang -1 » d'une matrice dont l'inverse a été précédemment calculée[1]Modèle:,[2] C'est-à-dire, étant donné une matrice inversible A et le produit tensoriel uvT des vecteurs u et v, la formule calcule à moindre coût une matrice inverse mise à jour (A+uvT))1.

La formule de Sherman-Morrison est un cas particulier de l'identité de Woodbury. Bien que nommée d'après Sherman et Morrison, elle apparaissait déjà dans des publications antérieures[3]Modèle:,[4]Modèle:,[5].

Enoncé

On suppose An×n est une matrice carrée inversible et u,vn sont des vecteurs colonnes . Alors A+uvT est inversible si et seulement si 1+vTA1u0 . Dans ce cas,

(A+uvT)1=A1A1uvTA11+vTA1u.

Ici, uvT est le produit tensoriel de deux vecteurs u et v . La forme générale présentée ici est celle publiée par Bartlett[6].

Preuve

Pour prouver le sens réciproque 1+vTA1u0A+uvT est inversible avec l'inverse donné comme ci-dessus) est vrai, on vérifie les propriétés de l'inverse. Une matrice Y (dans ce cas, le côté droit de la formule de Sherman-Morrison) est l'inverse d'une matrice X (dans ce cas A+uvT ) si et seulement si XY=YX=I.

On vérifie d’abord que le côté droit ( Y ) satisfait XY=I .

XY=(A+uvT)(A1A1uvTA11+vTA1u)=AA1+uvTA1AA1uvTA1+uvTA1uvTA11+vTA1u=I+uvTA1uvTA1+uvTA1uvTA11+vTA1u=I+uvTA1u(1+vTA1u)vTA11+vTA1u=I+uvTA1uvTA1=I

Pour terminer la preuve de ce sens, il faut montrer que YX=I de la même manière que ci-dessus :

YX=(A1A1uvTA11+vTA1u)(A+uvT)=I.

(En fait, la dernière étape peut être évitée puisque pour les matrices carrées X et Y, XY=I est équivalent à YX=I .)

Réciproquement, si 1+vTA1u=0, alors par le lemme du déterminant, det(A+uvT)=(1+vTA1u)det(A)=0, alors (A+uvT) n'est pas inversible.

Application

Si l'inverse de A est déjà connue, la formule fournit un moyen numériquement peu coûteux de calculer l'inverse de A corrigé par la matrice uvT (selon le point de vue, la correction peut être vue comme une perturbation ou comme une mise à jour de rang 1). En effet, le calcul n'utilise aucune que des produits par A1, la seule division étant celle d'un scalaire .

En utilisant des colonnes unitaires (colonnes de la matrice identité) pour u ou v, les colonnes ou lignes individuelles de A peuvent être manipulées et l'inverse peut être calculé de manière relativement peu coûteuse de cette manière. Dans le cas général, où A1 est une matrice carré de taille n et u et v sont des vecteurs arbitraires de dimension n, la matrice entière est mise à jour [6] et le calcul prend 3n2 multiplications scalaires. Si u est une colonne unitaire, le calcul ne prend que 2n2 multiplications scalaires. Il en va de même si v est une colonne unitaire. Si les deux u et v sont des colonnes unitaires, le calcul ne prend que n2 multiplications scalaires.

Cette formule a également une application en physique théorique. En effet, dans la théorie quantique des champs, on utilise cette formule pour calculer le propagateur d'un champ de spin 1. Le propagateur inverse (tel qu'il apparaît dans le lagrangien) a la forme A+uvT. On utilise la formule de Sherman-Morrison pour calculer l'inverse (satisfaisant certaines conditions limites d'ordre temporel) du propagateur inverse — ou simplement du propagateur (de Feynman) — qui est nécessaire pour effectuer tout calcul perturbatif impliquant le champ de spin 1[7].

L’un des problèmes de cette formule est que l’on sait peu de choses sur sa stabilité numérique. Il n’existe aucun résultat publié concernant ses limites d’erreur. Des preuves anecdotiques [8] suggèrent que l’identité matricielle de Woodbury (une généralisation de la formule de Sherman-Morrison) peut diverger même pour des exemples apparemment bénins (lorsque les matrices originales et modifiées sont bien conditionnées).

Vérification alternative

Voici une vérification alternative de la formule de Sherman-Morrison utilisant l'identité facilement vérifiable

(I+wvT)1=IwvT1+vTw .

Soit

u=Aw,etA+uvT=A(I+wvT),

alors

(A+uvT)1=(I+wvT)1A1=(IwvT1+vTw)A1 .

En substituant w=A1u on a :

(A+uvT)1=(IA1uvT1+vTA1u)A1=A1A1uvTA11+vTA1u

Généralisation (identité matricielle de Woodbury)

Étant données A une matrice carrée inversible n×n, U une matrice n×k, et V une matrice k×n, soit B une matrice n×n telle que B=A+UV. Alors, en supposant que (Ik+VA1U) est inversible, on a

B1=A1A1U(Ik+VA1U)1VA1.

Voir aussi

Références

Modèle:Traduction/Référence Modèle:Références

Modèle:Portail