Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

21/01/2010

Erreur absolue, relative et propagation des erreurs

next up previous index
suivant: Types composés. monter: Les réels précédent: Erreurs Index

Erreur absolue, relative et propagation des erreurs.

On a vu précédemment que pour représenter un réel, on devait l'arrondir, ce qui introduit une erreur même si le réel est connu exactement (par exemple 1/10). Voyons comment se propagent les erreurs dans les opérations arithmétiques de base : on distingue l'addition, la multiplication et l'inversion. La soustraction se ramène à l'addition car le calcul de l'opposé n'introduit aucune erreur nouvelle. Pour l'addition, si |xx0$ leq$ $ varepsilon_{0}^{}$ et si | yy0$ leq$ $ varepsilon_{1}^{}$ alors par l'inégalité triangulaire ( | ab$ leq$a| + | b|), on a :

 

|(xy) - (x0y0)| $displaystyle leq$xx0| + | yy0$displaystyle leq$ $displaystyle varepsilon_{0}^{}$$displaystyle varepsilon_{1}^{}$

 

on dit que les erreurs absolues s'additionnent.

 

Définition 1 L'erreur absolue est définie comme un majorant de la valeur absolue de la différence entre le nombre réel et son représentant double :

 

xx0$displaystyle leq$ $displaystyle varepsilon$

 

 

Mais comme il faut représenter x0y0 en machine, on doit ajouter une erreur d'arrondi, qui est proportionnelle à la valeur absolue de x0y0 d'où la notion d'erreur relative :

 

Définition 2 L'erreur relative est égale à l'erreur absolue divisée par la valeur absolue du nombre

 

xx0$displaystyle leq$ $displaystyle varepsilon$x0|

 

 

Remarquons au passage que les erreurs de mesure expérimentales sont pratiquement toujours des erreurs relatives.

Donc lorsqu'on effectue une addition (ou une soustraction) de deux réels sur machine, on doit additionner les deux erreurs absolues sur les opérandes et ajouter une erreur d'arrondi (relative de 2-53, à titre d'exercice, on pourra vérifier que cette erreur d'arrondi est majorée par l'erreur absolue de la somme xy dès l'instant où x et y ont eux-même une erreur d'arrondi).

Lorsqu'on effectue une multiplication de deux nombres xy dont les représentants x0y0 sont non nuls, on a

 

$displaystyle leftvertvphantom{ frac{xy-x_0 y_0}{x_0 y_0} }right.$$displaystyle {frac{{xy-x_0 y_0}}{{x_0 y_0}}}$$displaystyle left.vphantom{ frac{xy-x_0 y_0}{x_0 y_0} }rightvert$$displaystyle leftvertvphantom{ frac{x}{x_0} frac{y}{y_0} -1) }right.$$displaystyle {frac{{x}}{{x_0}}}$$displaystyle {frac{{y}}{{y_0}}}$ - 1)$displaystyle left.vphantom{ frac{x}{x_0} frac{y}{y_0} -1) }rightvert$$displaystyle leftvertvphantom{ (frac{x}{x_0}-1)(frac{y}{y_0} -1)+(frac{x}{x_0}-1)+(frac{y}{y_0} -1) }right.$($displaystyle {frac{{x}}{{x_0}}}$ -1)($displaystyle {frac{{y}}{{y_0}}}$ -1) + ($displaystyle {frac{{x}}{{x_0}}}$ -1) + ($displaystyle {frac{{y}}{{y_0}}}$ - 1)$displaystyle left.vphantom{ (frac{x}{x_0}-1)(frac{y}{y_0} -1)+(frac{x}{x_0}-1)+(frac{y}{y_0} -1) }rightvert$

 

l'erreur relative est donc la somme des erreurs relatives et du produit des erreurs relatives (on peut souvent négliger le produit devant la somme). Il faut aussi y ajouter une erreur relative d'arrondi de 2-53 surx0y0.

On observe que la multiplication est une opération posant moins de problèmes que l'addition, car on manipule toujours des erreurs relatives, par exemple si l'erreur relative sur deux doubles x et y non nuls est de 2-53, alors l'erreur relative sur xy sera de

 

2-53 +2-53 +2-106 +2-53 $displaystyle approx$ 3×2-53

 

Lorsque l'erreur relative sur les données est grande devant 2-53, l'erreur relative d'arrondi final est négligeable, on peut alors dire que les erreurs relatives s'additionnent pour un produit (c'est aussi vrai pour un quotient: exercice!). Par contre, si on additionne deux nombres dont le représentant de la somme est proche de 0, la somme des erreurs absolues peut devenir non négligeable par rapport à la somme des représentants, entrainant une erreur relative très grande. Par exemple si x est représenté par x0 = 1 + 2-52 avec une erreur d'arrondi de 2-53 et y par y0 = - 1 avec la même erreur d'arrondi, l'addition de x et yrenvoie 2-52 avec une erreur absolue de 2*2-53 (ici il n'y a pas d'arrondi lorsqu'on fait la somme). C'est une erreur relative de 1 (qui domine largement l'erreur d'arrondi) ce qui signifie que dans la mantisse, seul le premier bit sur les 52 a un sens, la perte de précision est très grande.

Une autre conséquence importante est que l'addition de réels sur machine n'est pas une opération associative, par exemple

 

(2.0-53 +2.0-53) + 1.0 $displaystyle rightarrow$ 1 + 2-52

 

alors que

 

(2.0-53 +1.0) + 2.0-53 $displaystyle rightarrow$ 1

 

Si on a plusieurs termes à additionner, il faut commencer par additionner entre eux les termes les plus petits, pour que les petits termes ne soient pas absorbés un à un dans les erreurs d'arrondi (les petits ruisseaux font les grands fleuves).

Exercice : pour calculer la valeur numérique d'une dérivée de fonction, il vaut mieux calculer (f (xh) - f (xh))/(2h) que (f (xh) - f (x))/h. Attention à ne pas prendre h trop petit, sinon xhx.

Remarquons néanmoins que les erreurs calculées ici sont des majorations des erreurs réelles (ou si on préfère l'erreur obtenue dans le pire des cas), statistiquement les erreurs sur les résultats sont moindres. Il est d'ailleurs souvent trop difficile de calculer la majoration rigoureuse de l'erreur pour des calculs complexes. Lorsqu'on doute de la précision d'un calcul, un test peu couteux consiste à refaire ce calcul en utilisant des flottants en précision plus grande et tester si le résultat varie en fonction du nombre de chiffres significatifs utilisés. On peut aussi faire varier légèrement les données et observer la sensibilité du résultat. Si on veut travailler en toute rigueur sans pour autant calculer les erreurs à priori, il faut utiliser un logiciel utilisant des intervalles pour représenter les réels (par exemple la bibliothèque C MPFI).

 


next up previous index
suivant: Types composés. monter: Les réels précédent: Erreurs Index
Retour à la page principale de mat249
Source : http://www-fourier.ujf-grenoble.fr/~parisse/mat249/mat249...