Livre_silo 30 août 2013 16:32 Page 191
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
191
7 – Pivot de Gauss et résolution de systèmes
7.4 Conditionnement d’une matrice
Les aspects théoriques évoqués dans cette section ne sont pas formellement au programme
et nécessitent des connaissances de deuxième année.
Exercice 7.9 Résoudre les systèmes AX = Y , avec A = H 5 (matrice de Hilbert, voir la section 7.2.3) et
Y =
−7.7
−6
−2.1
−0.5
0
, puis Y =
−7.7
−6
−2.1
−0.4
0
. Que doit-on en conclure ?
7.4.1 Mesurer les propagations d’erreurs
Comme cela a déjà été évoqué, le résultat d’une résolution de AX = Y comporte en
général des erreurs de trois types, même en suivant un algorithme à la lettre : celles sur la
donnée Y , celles sur la matrice A et enfin celles qui vont apparaître en cours d’exécution,
liées aux calculs en arithmétique flottante. À défaut de pouvoir supprimer ces erreurs, on
aimerait avoir un certain contrôle sur leur propagation.
Il est assez délicat de mesurer l’ensemble de ces erreurs, ce qui conduit à quelques raccourcis.
Même en imaginant des données connues exactement, ce qui est une hypothèse très optimiste, les premières opérations arithmétiques induiront possiblement une erreur relative
de l’ordre de 2
−k , avec k la taille de la mantisse. Ceci est vrai pour A comme pour Y .
On cherche donc, ensuite, à contrôler l’erreur (relative) sur X à l’aide des erreurs relatives
sur A et Y .
Pour cela, on munit M n,1 (R) (assimilé à R
n ) d’une norme (par exemple la norme euclidienne canonique) et M n (R) de la norme subordonnée. On suppose que A 0 X 0 = Y 0
(le problème initial) et A 1 X 1 = Y 1 (le système qu’on a résolu), avec δA = A 1 − A 0
et δY = Y 1 − Y 0 respectivement petits devant A 0 et Y 0 . On souhaite, en notant
δX = X 1 − X 0 , majorer
∥δX∥
∥X 0 ∥
à l’aide de
|||δA|||
|||A 0 |||
et
∥δY ∥
∥Y 0 ∥
·
7.4.2 Le conditionnement
Observons ce qui se passe dans un cas très simple.
Exercice 7.10 Conditionnement : cas diagonal, erreur sur le membre de droite.
On suppose que A est une matrice inversible diagonale, A = Diag(λ 1 , ..., λn), avec de plus :
0 < |λ 1 | ⩽ · · · ⩽ |λn| .
On suppose : AX = Y , A(X + δX) = Y + δY et on munit R n de la norme euclidienne canonique.
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
191
7 – Pivot de Gauss et résolution de systèmes
7.4 Conditionnement d’une matrice
Les aspects théoriques évoqués dans cette section ne sont pas formellement au programme
et nécessitent des connaissances de deuxième année.
Exercice 7.9 Résoudre les systèmes AX = Y , avec A = H 5 (matrice de Hilbert, voir la section 7.2.3) et
Y =
−7.7
−6
−2.1
−0.5
0
, puis Y =
−7.7
−6
−2.1
−0.4
0
. Que doit-on en conclure ?
7.4.1 Mesurer les propagations d’erreurs
Comme cela a déjà été évoqué, le résultat d’une résolution de AX = Y comporte en
général des erreurs de trois types, même en suivant un algorithme à la lettre : celles sur la
donnée Y , celles sur la matrice A et enfin celles qui vont apparaître en cours d’exécution,
liées aux calculs en arithmétique flottante. À défaut de pouvoir supprimer ces erreurs, on
aimerait avoir un certain contrôle sur leur propagation.
Il est assez délicat de mesurer l’ensemble de ces erreurs, ce qui conduit à quelques raccourcis.
Même en imaginant des données connues exactement, ce qui est une hypothèse très optimiste, les premières opérations arithmétiques induiront possiblement une erreur relative
de l’ordre de 2
−k , avec k la taille de la mantisse. Ceci est vrai pour A comme pour Y .
On cherche donc, ensuite, à contrôler l’erreur (relative) sur X à l’aide des erreurs relatives
sur A et Y .
Pour cela, on munit M n,1 (R) (assimilé à R
n ) d’une norme (par exemple la norme euclidienne canonique) et M n (R) de la norme subordonnée. On suppose que A 0 X 0 = Y 0
(le problème initial) et A 1 X 1 = Y 1 (le système qu’on a résolu), avec δA = A 1 − A 0
et δY = Y 1 − Y 0 respectivement petits devant A 0 et Y 0 . On souhaite, en notant
δX = X 1 − X 0 , majorer
∥δX∥
∥X 0 ∥
à l’aide de
|||δA|||
|||A 0 |||
et
∥δY ∥
∥Y 0 ∥
·
7.4.2 Le conditionnement
Observons ce qui se passe dans un cas très simple.
Exercice 7.10 Conditionnement : cas diagonal, erreur sur le membre de droite.
On suppose que A est une matrice inversible diagonale, A = Diag(λ 1 , ..., λn), avec de plus :
0 < |λ 1 | ⩽ · · · ⩽ |λn| .
On suppose : AX = Y , A(X + δX) = Y + δY et on munit R n de la norme euclidienne canonique.
