Chapitre 2 : Analyse d’erreurs
Maarten Jansen Table de mati `eres
•Introduction au calcul num ´erique
•Analyse d’erreurs
•R ´esolution des syst `emes lin ´eaires
•Interpolation
•Lissage (Curve fitting, Smoothing)
•R ´esolution num ´erique des ´equations diff ´erentielles ordinaires
•R ´esolution des ´equations non lin ´eaires
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.1
Aperc¸u du chapitre 2
1. Illustrations(Slide 3)
2. Typologie des erreurs(Slide 7)
3. Repr ´esentation des nombres en machine(Slide 14) 1. Notation `a virgule fixe.
2. Notation `a virgule flottante.
4. Les erreurs au fil des calculs num ´eriques(Slide 50)
1 : QUELQUES ILLUSTRATIONS
Arithm ´etique et calcul num ´erique
Il fait combien le calcul2.6 + 0.2 + 0.2 + 0.2?
>> format long e
>> 2.6+0.2 ans =
2.800000000000000e+000
>> ans+0.2 ans =
3.000000000000000e+000
>> ans+0.2 ans =
3.200000000000001e+000
Explication: la repr ´esentation de 0.2 en machine est hexad ´ecimale : 1/5 = 3/16 + 1/16∗1/5 = (0.3333333333. . .)H
Probl `eme derepr ´esentation
Arithm ´etique et calcul num ´erique
Il fait combien le calcul√ 2∗√
2−2?
>> sqrt(2)*sqrt(2)-2 ans =
4.440892098500626e-016
Explication: probl `eme d’arrondi suite `a uncalcul
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.4
Arithm ´etique et calcul num ´erique
Il fait combien le calcul1−3∗(4/3−1)?
>> a=4/3 a =
1.33333333333333
>> b=a-1 b =
0.33333333333333
>> c=1-3*b c =
2.220446049250313e-016
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.5
Arithm ´etique et calcul num ´erique
Supposons que je somme un nombre positif `a1un milliard de fois. Est-ce que le r ´esultat sera plus grand que1?
format long x=1;
delta=eps/2;
delta>0 no_iter=1e8;
for (i=1:no_iter) x=x+delta;
end x x>1 pause
(x+delta*no_iter)>1
2 : TYPOLOGIE DES ERREURS
Erreurs
•Chaque analyse num ´erique doit se confronter avec une certaine dose d’erreurs.
•Qu’est-ce qu’une erreur ?
•D’o `u viennent les erreurs ?
•Quelles cons ´equences ont-elles ?
•Comment analyser leurs effets ?
Nombre approch ´e
•Un nombre approch ´exbest un nombre l ´eg `erement diff ´erent du nombre exactxet qui dans le calcul remplace ce dernier.
•Si l’on sait quex < xb ,xbest dit valeur approch ´ee du nombrexpar d ´efaut ;
•sibx > x,bxest une valeur approch ´ee par exc `es.
•Soit x = √
2. Le nombre xb = 1.41 est une valeur approch ´ee par d ´efaut, alors que le nombrexb = 1.42 est une valeur approch ´ee par exc `es.
•Sixbest une valeur approch ´ee dexon notexb≈x
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.8
Erreur absolue
D ´efinitionOn appelle erreur absolueδxd’un nombre approch ´e bxla valeur absolue de la diff ´erence entre le nombre exactxcorrespondant et le nombre approch ´e donn ´e δx=|xb−x|.
D ´efinition : L’ ´ecart relatifd’un nombre approch ´ebxest le rapport ρx= bx−x x . Cette relation peut aussi ˆetre ´ecrite sous la forme bx=x(1 +ρx).
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.9
Erreur relative
D ´efinition : L’erreur relativeεxd’un nombre approch ´exbest la valeur absolue de l’ ´ecart relatif, c.- `a-d. le rapport de l’erreur absolueδxde ce nombre et du module du nombre exact correspondant (six6= 0)
εx=|ρx|= xb−x
x = δx
|x|
L’erreur relative fournit une information plus pertinente sur la grandeur r ´eelle de l’erreur. Cependant, elle n’est d ´efinie que pourx6= 0.
D ´efinition : La borne sup ´erieure d’erreur relativeud’un nombre approch ´e b
xdonn ´e est un nombre quelconque sup ´erieur ou ´egal `a l’erreur relative de ce nombre εx=|ρx| ≤u
Sources d’erreurs : erreurs de mod ´elisation
Les erreurs commises dans les probl `eme math ´ematiques peuvent ˆetre en principe class ´ees en cinq cat ´egories.
Les deux premiers types d’erreur sont regroup ´es sous le nom d’erreurs de mod ´elisationtandis que les trois derniers sont appel ´eserreurs num ´eriques.
•Erreurs de mod `ele: ces erreurs sont dues au fait que les mod `eles math ´ematiques sont plus ou moins id ´ealis ´es, ce qui donne lieu `a plusieurs erreurs. Un exemple est l’erreur du mod `ele du pendule qui ne tient pas en consid ´eration la force de friction.
•Erreurs de mesure : ces erreurs sont dues `a la pr ´esence dans le mod `ele math ´ematique de param `etres num ´eriques dont les va- leurs ne peuvent ˆetre observ ´ees ou d ´etermin ´ees qu’approximative- ment suite `a des mesures exp ´erimentales. Telles sont toutes les constantes physiques, comme, par exemple, la longueur l dans le mod `ele du pendule.
Sources d’erreurs : erreurs num ´eriques
•Erreurs d’approximation ou de troncature : ces sont les erreurs associ ´ees aux processus infinis en analyse math ´ematique (par exemple les s ´eries num ´eriques).e= 1 + 1
1!+ 1 2!+ 1
3!+. . .
•Erreurs d’arrondi : ce sont les erreurs associ ´ees au syst `eme de num ´eration. Elles sont dues au fait qu’un ordinateur ne peut prendre en consid ´eration qu’un nombre fini de chiffres.
•Erreurs de propagation et g ´en ´eration : ces sont les erreurs qui apparaissent dans le r ´esultat d’une op ´eration comme cons ´equence des erreurs des op ´erandes.
Dans ce qui suit nous allons nous int ´eresser aux deux derniers types d’erreur.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.12
Les erreurs num ´eriques et les propri ´et ´es d’un algorithme
•Voir chapitre 1
•Erreurs d’approximation ou de troncature: mesur ´ees par laconsis- tancede l’algorithme
•Erreurs de propagation: li ´ees auconditionnementde l’algorithme
•Erreurs de g ´en ´eration: li ´ees `a lastabilit ´ede l’algorithme
•Erreurs d’arrondi : li ´ees `a larepr ´esentationdes nombres en ma- chine (voir page suivante)
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.13
3 : REPRESENTATION DES NOMBRES EN MACHINE
Probl ´ematique
•Un ordinateur ne peut repr ´esenter qu’un sous-ensemble fini de l’en- semble des nombres r ´eels.
•Toute op ´eration d’un ordinateur est entach ´ee par des erreurs d’ar- rondi.
•Notationsadopt ´ees pour repr ´esenter les nombres r ´eels sur ordina- teur :
1. Syst `eme `a virgule fixe.
2. Syst `eme `a virgule flottante.
•Le syst `eme de notations d ´efinit l’ensembleFdes nombres repr ´esent ´es sans arrondi.
Carat ´eristiques deF: epsilon machine+wobling precision
•Les arrondis lors de la repr ´esentation des nombres r ´eels hors deF overflow, underflow, la pr ´ecision machine
La notation `a virgule fixe
Soitxun nombre r ´eel. Sa repr ´esentation en virgule fixe est {[anan−1. . . a1a0,a−1a−2. . . a−m], b, s}avec les d ´efinitions suivantes
•La baseb∈N,b≥2
La base n’est jamais repr ´esent ´ee de mani `ere explicite, il s’agit d’une convention implicite
•Le signes∈ {0,1}
•Les symbolesai∈N,0≤ai< b,i=−m, . . . , n
•md ´esigne le nombre de chiffresapr `es la virgule
•n+ 1est le nombre de chiffresavant la virgule La valeurx∈Restx= (−1)s
Xn k=−m
akbk
.Sis= 0,xest un nombre positif, autrement il est un nombre n ´egatif.
Exemples
Soientb= 10,n= 3,m= 6,s= 0. Alors
•l’ ´ecriture `a virgule fixe[0030,421000]d ´esigne le r ´eelx= 3·101+ 0· 100+ 4·10−1+ 2·10−2+ 1·10−3= 30.421
•l’ ´ecriture[0000,043700]d ´esigne le r ´eelx= 0.0437. Soientb= 16,n= 3,m= 6,s= 0. Alors
•l’ ´ecriture[0030,421000]d ´esigne le r ´eel3·161+ 0·160+ 4·16−1+ 2· 16−2+ 1·16−3= 48.258
•l’ ´ecriture[0000,043700]d ´esigne le r ´eelx= 0.0165.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.16
Symboles et nombres
Il est important de remarquer la diff ´erence qui existe entre symboles et nombres.
•[111,101]→nombre111.101si et seulement sib= 10, autrement
•[111,101]→nombre7.625pourb= 2
•[111,101]→nombre13.3704pourb= 3
N.B : Le nombre0.1 a une repr ´esentation finie en baseb = 10mais il a une repr ´esentation infinie p ´eriodique en baseb= 2.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.17
Bases
Les ordinateurs emploient souvent trois bases :
•b= 10
— syst `eme d ´ecimal
— symboles :0,1,2,3,4,5,6,7,8,9
— affichage des r ´esultats
•b= 2
— syst `eme binaire
— symboles :0,1(bits)
— calcul.
•b= 16
— syst `eme hexad ´ecimal
— symboles :0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F
— repr ´esentation compacte des binaires par quadruplets.
Du binaire `a l’hexad ´ecimal
0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F
Propri ´et ´es
•La chaˆıne de caract `eres n ´ecessaire `a la repr ´esentation d’un m ˆeme nombre est autant plus longue quela base est petite.
•Les nombres en virgule fixe sont ´equir ´epartis le long de la droite r ´eelle.
•L’ ´ecart entre deux nombres cons ´ecutifs r ´eels qui peuvent ˆetre repr ´esent ´es en notation `a virgule fixe est ´egal `ab−m.
•L’utilisation de la virgule fixe limite consid ´erablement les valeurs maxi- males et minimales des nombres repr ´esent ´es par l’ordinateur.
•Dans le cas binaire, le nombre plus grande que peut ˆetre repr ´esent ´e en notation fixe est pr ´es de2n+1−1o `un+ 1est le nombre de cases avant la virgule.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.20
Notation en virgule flottante
´etant donn ´e un nombre r ´eel non nul x, sa repr ´esentation en virgule flottante est{[a1a2. . . at], e, b, s}avec les d ´efinitions suivantes :
•La base:b∈N,b≥2(convention implicite)
•L’exposant:e∈Z,L≤e≤U (convention implicite)
•Le signe:s∈ {0,1}
•Le nombre de chiffres significatifs:t
•Les symbolesai∈N; 0≤a1< b
•Notation normalis ´ee:ai∈N, 0<a1< b, 0≤ai< b, i= 2, . . . , t Sans normalisation, la notation en virgule flottante n’est pas unique.
•La mantisse:
la quantit ´em∈Nm=m[x] = Xt
i=1
aibt−i=a1bt−1+a2bt−2+· · ·+at
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.21
Notation en virgule flottante (II)
•Nous ne consid ´erons que le cas normalis ´e, c.- `a-d. a1>0 qui im- plique la relation suivante bt−1≤m≤bt−1
•La notation{[a1a2. . . at], e, b, s}est utilis ´ee pour encoder le nombre r ´eel x= (−1)sbe
Xt i=1
aib−i= (−1)smbe−t
Attention : avant la multiplication avec be, toute la mantisse n’ap- paraˆıt qu’apr `es la virgule, y compris le premier chiffre significatif. Ceci est en contraste avec la notation scientifique.
Exemple(Matlab) La notation (scientifique)1.e-3repr ´esente le nombre 0.001. La repr ´esentation de ce nombre en machine d ´epend de la machine. Avec une baseb= 10, on aurait un exposant dee=−2. La valeur de la mantisse d ´epend du nombre de chiffres significatifs.
Exemples
•La notation `a virgule flottante{[3,4], e= 1, b = 10, s= 0}d ´esigne le r ´eel
x= (−1)sbe Xt
i=1
aib−i= 101(3·10−1+ 4·10−2) = 0.34·101= 3.4 qui peut ˆetre obtenu aussi par
x= (−1)smbe−t=
" t X
i=1
aibt−i
#
be−t= 34·101−2= 3.4
•La notation{[3,4], e=−1, b= 10, s= 1}d ´esigne le r ´eel x=−0.34·10−1= 0.034
•La notation{[3,4], e=−1, b= 16, s= 1}d ´esigne le r ´eel x= (−1)116−1(3·16−1+ 4·16−2) =−0.0127
Propri ´et ´es nombres `a virgule flottante
•Notons parF(b, t, L, U)l’ensemble des nombres r ´eels qui sont repr ´esent ´es par une notation `a virgule flottante en baseb, comportanttchiffres significatifs et dont l’exposant varie dans l’intervalle[L, U].
•L’ensembleFne contient pas le z ´ero si la repr ´esentation est norma- lis ´ee.
•L’ensembleFdes nombres `a virgule flottante est un sous-ensemble fini deR F(b, t, L, U)⊂R
•Une relation int ´eressante est la suivante x∈F(b, t, L, U)⇒b(L−1)≤ |x| ≤bU(1−b−t)
La relation⇐n’est pas correcte puisqueFest un ensemble fini.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.24
Propri ´et ´es nombres `a virgule flottante (II)
•On peut montrer que#(F) = 2(b−1)bt−1(U−L+ 1)o `u#(E)d ´enote le cardinal d’un ensembleE.
•A la diff ´erence des nombres `a virgule fixe, les nombres r ´eels qui appartienent `a l’ensemble Fne sont pas ´equir ´epartis le long de la droite r ´eelle.
•Donc, il est important d’ ´evaluer l’ ´ecart entre deux nombres cons ´ecutifs.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.25
Exemple :
F(10, 1, − 1, 1)
[a1] =m e x=mbe−t
1 -1 0.01
2 -1 0.02
3 -1 0.03
. . . -1 . . .
9 -1 0.09
1 0 0.1
2 0 0.2
. . . 0 . . .
9 0 0.9
1 1 1
2 1 2
. . . 1 . . .
9 1 9
Notons que #(F) = 2(b−1)bt−1(U −L+ 1) = 2(9)100(3) = 54(positifs et n ´egatifs confondus) et que l’ ´ecart entre deux nombres cons ´ecutifs est ´egal `a be−t.
Fonction MATLAB
function r=flo2real(m,e,b,s)
% flo2real: from Floating Point notation to
% real notation
%
% FLO2REAL(M,E,B,S)
% M - [1,T] vector of significant digits
% E - [1,1] exponent
% B - [1,1] base
% S - [1,1] signum: 0 for positive, 1 for negative
%
% Returns R [1,1] real number in decimal format
Exemple MATLAB
>> flo2real([3 4],1,10,0) ans =
3.4000
>> flo2real([3 4],-1,10,0) ans =
0.0340
>> flo2real([3 4],-1,16,1) ans =
-0.0127
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.28
Fonction MATLAB
function [F,card]=floset (b,t,L,U)
% floset: returns the set of real numbers represented
% by the floating point notation
%
% FLOSET(B,T,L,U)
% b- [1,1] base
% t- [1,1] number of significant digits
% L- [1,1] lower bound exponent
% U- [1,1] upper bound exponent
%
% Returns:
% F- [card,1] set of real numbers represented by the normalised
% floating point notation
%
% card: cardinality of the set F
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.29
Distances absolues
Les nombres `a virgule flottante ne sont pas ´equir ´epartis le long de la droite r ´eelle (s floset.m).
>> b=10; t=1; L=-1;U=1;
>> [f,c]=floset(b,t,L,U);
>> plot(f,zeros(size(f)),’*’)
-10 -8 -6 -4 -2 0 2 4 6 8 10
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
b=10 t=1 L=-1 U=1
Distance relative
Nous d ´efinissons ladistance relativeentre2nombres cons ´ecutifsxi∈Fet xi+1∈Fpar η(xi) =
xi+1−xi
xi
Cette distance peut ˆetre d ´eriv ´ee en fonction des param `etres du syst `eme de notation sixi+1etxiont le m ˆeme exposant
η(xi) =
xi+1−xi xi
=m[xi+1]be−t−m[xi]be−t
m[xi]be−t = be−t
m[xi]be−t = 1 m[xi], o `um[xi]est la mantisse du nombre r ´eelxi.
Notons que le r ´esultat est valable aussi sixi+1 a un exposant plus grand que xi. Dans ce cas
xi+1 = bt−1be+1−t=be
xi = (bt−1)be−t=be−be−t et doncxi+1−xi=be−t
Conclusion pour toutexi: η(xi) =m[x1i]
Distance relative (II)
Puisquebt> m≥bt−1⇒b−t< 1
m≤b1−t,on obtientǫ b <
xi+1−xi xi
≤ǫ, c. `a-d. ǫb < η(xi)≤ǫ o `u ǫ=b1−t est dit l’epsilon machine(epsen MATLAB)
L’epsilon machine ǫ est la distance relative maximale entre deux nombres cons ´ecutifs enF(= `a virgule flottante)
La distance relative minimale entre deux nombres `a virgule flottante est donn ´ee parǫ/b
Consid ´erons le nombre xi = 1. Puisquem = bt−1 xi = mbe−t = bt−1be−t = be−1= 1⇒e= 1
Doncxi+1−xi
xi =xi+1−xi=b1−t=ǫ Il s’ensuit que :
ǫest la distance entrexi= 1et le prochain nombre r ´eelxi+1 = 1 +ǫ qui appartient `aF.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.32
Exemple :
F(10, 1, − 1, 1) (II)
[a1] =m[xi] e xi η(xi) =|xi+1−xi|/|xi| 1 -1 0.01 (0.02-0.01)/0.01=1 2 -1 0.02 (0.03-0.02)/0.02=1/2
. . . -1 . . . . . .
8 -1 0.08 (0.09-0.08)/0.08=1/8 9 -1 0.09 (0.1-0.09)/0.09=1/9 1 0 0.1 (0.2-0.1)/0.1=1
. . . 0 . . . . . .
8 0 0.8 (0.9-0.8)/0.8=1/8 9 0 0.9 (1-0.9)/0.9=1/9
1 1 1 (2-1)/1=1
2 1 2 (3-2)/2=1/2
. . . 1 . . . . . .
8 1 8 (9-8)/8=1/8
9 1 9
Comme attendu, la distance relative est born ´ee entreb−t= 0.1etb1−t= 1.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.33
Ph ´enom `ene du wobbling
•SoitF(10,1,−1,1). Nous trac¸ons les distances relativesη(xi)en fonc- tion des r ´eelsxi∈F,
1 2 3 4 5 6 7 8 9
0 0.2 0.4 0.6 0.8 1
Floating point numbers
Relative Distance
•Conform ´ement aux formules th ´eoriques, les bornes inf ´erieure et sup ´erieure sont respectivementb−t= 0.1etb1−t= 1.
•Le ph ´enom `ene d’oscillation des distances relativesη(xi)est connu sous le nom dewobbling precision.
•Il est d’autant plus prononc ´e que la base b est grande. C’est une raison pour laquelle on pr ´ef `ere employer de petites bases.
Espace m ´emoire et repr ´esentation
•Pour un espace m ´emoire fix ´e `a l’avance, le syst `eme `a virgule flot- tante permet la repr ´esentation d’un plus grand intervalle des nombres.
•Consid ´erons une notation binaire (b= 2) `a virgule flottante qui utilise 1bit pour le signe,t = 23bits pour la mantisse et8bits (incluant le signe) pour l’exposant. La valeur absolue la plus grande parmi les x∈Fest|xmaxfl| ≈2U = 2(27−1).
•Pour avoir une valeur maximale comparable, le syst `eme `a virgule fixe devrait avoir un nombren+ 1de cases (seulement pour la partie enti `ere) tel que|xmaxfix| ≈2n+1−1 = 2(27−1).
•Au moins (n+ 1)≈ 27−1 = 127bits sont n ´ecessaires pour obtenir un intervalle de valeurs comparable `a celui du syst `eme en virgule flottante.
Repr ´esentation machine des r ´eels
•Consid ´erons un ordinateur qui utilise la notation `a virgule flottante avec baseb,tchiffres significatifs etL≤e≤U.
•Dans un tel ordinateur, seul un sous-ensembleF(b, t, L, U) ⊂ Rde nombres r ´eels peut ˆetre repr ´esent ´e et manipul ´e.
•Par cons ´equent, nous sommes confront ´es au probl `eme de repr ´esentation d’un nombre r ´eel quelconquex∈Rqui n’appartient pas `aF.
•L’approche typique consiste `a arrondirxde fac¸on `a ce que le nombre arrondi appartienne `aF.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.36
Repr ´esentation machine des r ´eels (II)
Trois situations peuvent se produire
1.|x|> bU(1−b−t): le nombrexne peut ˆetre repr ´esent ´e par le syst `eme de notation et on dit que nous sommes dans une situation d’overflow.
L’overflow provoque normalement une interruption du programme par le syst `eme.
2.|x|< bL−1: dans ce cas on parle d’underflow. D’habitude l’underflow est g ´er ´e en remplac¸antxpar0.
3.bL−1≤ |x| ≤bU(1−b−t)etx6∈F: dans ce cas, en prenant un nombre des chiffres significatifs infini, le nombrex6∈Fpeut ˆetre repr ´esent ´e de la mani `ere suivante{[a1a2. . . atat+1at+2. . .], e, b, s}o `ue∈[L, U].
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.37
Repr ´esentation machine des r ´eels (III)
Dans le troisieme cas, deux transformations dexsont possibles :
•Transformation d’arrondi:x→fl(x)o `ufl(x)∈F(b, t, L, U)a comme notation en virgule flottantefl(x) ={[a1a2. . . a∗t], e, b, s}et
a∗t =
at si at+1< b/2 at+ 1 si at+1≥b/2
•Transformation de troncature:x→tr(x)o `utr(x)∈ F(b, t, L, U)a comme notation en virgule flottantetr(x) ={[a1a2. . . at], e, b, s}
L’erreur d’arrondi
•Voir aussi slide 10
•Consid ´erons un ordinateur utilisant une notationF(b, t, L, U).
•Soitx∈Run nombre r ´eel quelconque etfl(x)∈Fla repr ´esentation machine `a virgule flottante dex.
•D ´esignons parεxson erreur relative εx=|fl(x)−x|
|x| .
•Nous allons ´evaluer la borne sup ´erieure de l’erreur relative d’arrondi.
•Soientxi∈F(b, t, L, U)etxi+1∈F(b, t, L, U)les2nombres cons ´ecutifs
`a virgule flottante tels quexi≤x≤xi+1.
L’erreur d’arrondi (II)
•Puisque|fl(x)−x| ≤1
2|xi+1−xi|etx≥xi, il vient alors que εx≡ |ρx|=|fl(x)−x|
|x| ≤1 2
xi+1−xi
xi ≤1
2b1−t=1 2ǫ=u o `uuest dite lapr ´ecision machine. εx≤ǫ/2
•On obtient bx= fl(x) =x(1 +ρx) o `u εx = |ρx| ≤ uest dit l’erreur d’arrondi.
•La pr ´ecision machine donne l’ordre de grandeur de la meilleure pr ´ecision atteignable sur un ordinateur !
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.40
Standard IEC/IEEE
•N ´ecessit ´e d’ ´eviter une prolif ´eration de syst `emes de repr ´esentation, qui diff `erent en base, nombre de chiffres significatifs et exposants.
•Le standard le plus r ´epandu est le standard connu sous le nom IEC 559. Ceci a ´et ´e d ´evelopp ´e par le IEEE (Institute of Electrical and Electronic Engineers) en 1985 et approuv ´e en 1989 par le IEC (International Electronic Commission).
•Le standard sp ´ecifie, entre autres,
— les op ´erations arithm ´etiques de base,
— la racine carr ´ee,
— le reste,
— la conversion entre repr ´esentation d ´ecimale et binaire,
— le comportement suite `a un overflow/underflow
•Le but est d’ ´eviter les incompatibilit ´es entre ordinateurs diff ´erents.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.41
Codages sp ´eciaux
•Le standard IEEE d ´efinit aussi les codages sp ´eciaux en utilisant des notations non-normalis ´ees pour les situations exceptionnelles qui ne sont pas couvertes par le codage standard.
•Un exemple sont les non-nombres (en abr ´eg ´e NaN pour Not a Number) qui correspondent entre autres au r ´esultat de la division0/0.
Valeur Exposant Mantisse MATLAB
0 L−1 0 0000000000000000
∞ U+ 1 0 7f f0000000000000
−∞ U+ 1 0 f f f0000000000000 NaN U+ 1 6= 0 f f f8000000000000
Formats `a simple pr ´ecision
Supposons qu’un ordinateur dispose deN cases m ´emoires pour stocker un nombre. Il y a typiquement sur un ordinateur deux formats disponibles pour les nombres `a virgule flottante.
•Pr´ecision simple:N = 32bits r ´epartis comme suit :
— 1 bit pour le signe
— 8 bits pour l’exposant (en incluant le signe de l’exposant)
— 23 bits pour la mantisse
Formats `a double pr ´ecision
•Pr´ecision double:N = 64bits r ´epartis comme suit :
— 1 bit pour le signe
— 11 bits pour l’exposant (en incluant le signe de l’exposant)
—52bits pour la mantisse
— dans la notation binaire normalis ´ee, le premier bit est toujours
´egal `a 1. Ceci permet d’eviter de le stocker.Donc avec 52bits on a le m ˆeme pouvoir de repr ´esentation det= 53.
— l’epsilon machine estǫ= b1−t= 2−52 = 2.2·10−16. En Matlab la variableepsrepr ´esente cette valeur.
— la double pr ´ecision en baseb= 2corresponde `a une pr ´ecision `a 16chiffres significatifs dans le cas d ´ecimal (b= 10).
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.44
Repr ´esentation MATLAB
>> format hex
>> pi ans =
400921fb54442d18
La repr ´esentation binaire deπen Matlab est donc 0100|{z}
4
0000|{z}
0
0000|{z}
0
1001|{z}
9
0010|{z}
2
0001|{z}
1
1111|{z}
f
1011|{z}
b
0101|{z}
5
0100|{z}
4
0100|{z}
4
0100|{z}
4
0010|{z}
2
1101|{z}
d
0001|{z}
1
1000|{z}
8
|{z}0 signe
10000000000
| {z } exposant
1001001000011111101101010100010001000010110100011000
| {z }
mantisse
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.45
Repr ´esentation MATLAB (II)
•0est le bit du signe (positif)
•les 11 bits 10000000000 repr ´esentent l’exposant (L = −1021, U = 1024)
•les52bits restants
{a2, . . . , at}= 1001001000011111101101010100010001000010110100011000 sont les52chiffres significatifs. Notons que il faut faire pr ´eceder ces bits par un bit additionnel a1 = 1 pour avoir l’ensemble dest = 53 chiffres significatifs.
•La valeur de l’exposant est210−1022 = 1024−1022 = 2
•La valeur de la quantit ´ePt
i=1aib−iest0.785398≈π/4.
•La valeur de la quantit ´e(−1)sbePti=1aib−i= 3.14159
Repr ´esentation MATLAB (III)
MATLAB utilise11bits pour l’exposant. Au total,211 = 2048valeurs dans l’in- tervalle[0,2047]sont possibles et elles sont reparties de la mani `ere suivante :
•U + 1 = 1025quande= 11111111111. Il est utilis ´e pour±InfetNaN.
•U = 1024quand e = 11111111110. Le nombre reel le plus grand en valeur absolu et appel ´erealmaxet a valeur1.79·10308.
•L = −1021 quande = 00000000001. Le nombre reel le plus petit en valeur absolu et appel ´erealminet a valeur2.25·10−308.
•L−1 =−1022quande= 00000000000. Il est utilis ´e pour repr ´esenter le z ´ero
Pr ´ecision vs. domaine
Domaine : realmin=bL−1 realmax=bU(1−b−t)
realminest le premier nombre r ´eel apr `es 0 qui appartien `aF. d ´etermin ´e par le nombre de bits assign ´es `a
1. l’exposant 2. la base.
Pr ´ecision :eps/2(voir p.32) eps=ǫ=b1−t
1 +eps= 1 +ǫest le premier nombre r ´eel apr `es 1 qui appartien `aF. d ´etermin ´ee par le nombre de bits assign ´es aux
1. chiffres significatifs 2. la base.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.48
Pr ´ecision vs. domaine (2)
Pour un nombre fixe de cases m ´emoires :
•en ´echangeant bits de la mantisse contre bits de l’exposant, nous sacrifions la pr ´ecision au b ´en ´efice de l’amplitude du domaine — o `u
amplitude =realmax/realmin (et vice-versa).
•en augmentant la base, nous ´elargissons le domaine mais nous as- sistons par cons ´equent `a un ph ´enom `ene de wobbling plus important (et vice-versa)
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.49
4 : LES ERREURS AU FIL DES CALCULS
Erreurs de propagation et de g ´en ´eration
•Nous avons vu comme chaque repr ´esentation machine d’un r ´eel im- plique une approximation et introduit par cons ´equence, une erreur relativeεddite d’arrondi.
•Ceci est valable aussi pour les donn ´ees d’un probl `eme num ´erique x=F(d). En appliquant la formule de l’erreur d’arrondi on obtient
fl(d) =d(1 +ρd) (voir slide 40) avec |ρd| ≤u= 1 2b1−t.
•La propagation des erreurs d’arrondi des donn ´ees pendant la r ´esolution d’un probl `eme num ´erique engendre deux types d’erreur :
1.(Conditionnement):L’erreur de propagationdue au probl `eme 2.(Stabilit ´e)L’erreur de g ´en ´erationdue `a l’algorithme.
Approximation de Taylor d’ordre 1
Si la fonctionF admet une d ´eriv ´ee d’ordre 1 dans un voisinage dexde taille δon peut ´ecrire la fonctionF de la mani `ere suivante :
F(x+δ) =F(x) +F′(x)δ+err(δ) o `uerr(δ) =o(δ)c.- `a-d. lim
δ→0
err(δ) δ = 0
Le d ´eveloppement limit ´e d’ordre 1 consiste `a approcherF(x+δ)par F(x+δ)≈F(x) +F′(x)δ
L’erreur de propagation
•Consid ´erons le probl `eme math ´ematique bien pos ´ex = F(d) o `u d repr ´esente les donn ´ees du probl `eme.
•Supposons qu’un ordinateur avec notation `a virgule flottanteF(b, t, L, U) est utilis ´e pour r ´esoudre le probl `eme.
•Pour ce faire, les donn ´eesddoivent ˆetre introduites et cod ´ees par la machine.
•Ceci engendre une approximation des donn ´ees pardb= fl(d) =d(1 + ρd)o `ud∈Retdb∈F.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.52
L’erreur de propagation et le conditionnement
•En appliquant la fonctionF(·)aux donn ´eesdb, on obtient F(d) =b F(d(1 +ρd)) =F(d+dρd)
≈ F(d) +F′(d)dρd=x1 +F′F(d)dρ(d)d=x(1 +κ(d)ρd)
o `uρdest l’ ´ecart relatif d ˆu `a l’arrondi des donn ´ees etκ(d)est le condi- tionnement du probl `eme.
•Donc : κ(d) =F′(d)dρd F(d)
• F(d)b ≈F(d)(1 +κ(d)ρd)
•κρdest d ´efini commel’erreur de propagation
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.53
L’erreur de propagation et un nouvel arrondi
•Bien queF(d)b ∈Ril pourrait se produire queF(d)b 6∈F(b, t, L, U).
•Dans ce cas l’ordinateur renvoie comme r ´esultat final de l’ ´evaluation b
x= fl(F(d)) =b x(1 +κρd)(1 +ρF(d)b)≈x(1 +κρd+ρF(d)b) o `uρF(d)b d ´esigne l’erreur d’arrondi deF(d)b
etκρd ´etait l’erreur de propagation (voir slide 53)
•si le conditionnementκ >1, le calcul de la solution par le biais d’une machine a comme cons ´equence l’agrandissement de l’erreur initiale ρd.
Propagation et arrondi (r ´esum ´e graphique)
F(d)b ≈x(1 +κρd) xb= fl(F(d))b ≈x(1 +κρd+ρF(d)b)d
erreur propagation d x
d δd
δx
x
erreur arrondi
F( )
Exemple particulier : l’erreur d’annulation
•Un cas particulier d’erreur de propagation est l’erreur d’annulation.
Ceci se v ´erifie pendant la soustraction de deux termes tr `es rap- proch ´es.
•Consid ´erons une repr ´esentation en virgule flottante avec baseb= 10 ett= 4chiffres significatifs.
•Soit x = F(d) = d−1 le probl `eme `a r ´esoudre etd = 1.00098 = 100098·10−5la donn ´ee.
•La solution exacte estx= 0.00098.
•Apr `es le codage du nombre r ´eelden notation machine (t = 4), on obtientdb= 1.001 = 1001·10−3.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.56
L’erreur d’annulation (II)
•L’erreur relative de la donn ´ee approch ´ee est εd=
db−d d
=
1.001−1.00098 1.00098
≈ 1
50000.
Cette quantit ´e est petite et peut ˆetre consid ´er ´ee comme n ´egligeable.
•En r ´esolvant le probl `eme `a l’aide de la machine, on obtient la solution approch ´eexb= 0.001 = 1000·10−6∈F(b, t, L, U).
•L’erreur relative de la solution approch ´ee est εx=
F(d)b −x x
=
0.001−0.00098 0.00098
≈ 1
50. donc, cette quantit ´e n’est pas n ´egligeable
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.57
L’erreur d’annulation (III)
•l’erreur d’annulation est ´egale au produit du conditionnement du probl `eme par l’erreur relative d’entr ´ee
εx = κ(d)εd≈ |F′(d)| |d|
|F(d)|εd = |d|
|d−1|εd = |1.00098|
|1.00098−1|εd
≈ 1000· 1 50000= 1
50
Consid ´erations
• Erreurs depropagation→conditionnementdu probl `eme Cas sp ´ecial : erreur d’annulation
•Le fait qu’un probl `eme soit bien/mal conditionn ´e est une propri ´et ´e ind ´ependante de l’algorithme num ´erique choisi pour r ´esoudre le probl `eme.
•L’erreur de propagation ne peut pas ˆetre ´evit ´ee en changeant la m ´ethode num ´erique.
•Ensuite nous allons introduire l’erreur de g ´en ´eration qui, au contraire de l’erreur de propagation, d ´epend de la m ´ethode num ´erique.
L’erreur de g ´en ´eration
•Supposons que le probl `emex=F(d)soit r ´esolu par un algorithme d ´ecomposable en une s ´erie d’ ´etapes :
x1=F1(d), x2=F2(x1), x3=F3(x2), . . . , x=Fn(xn−1).
•Soitd∈Rla donn ´ee cod ´ee par la machine endb=d(1 +ρd).
•Apr `es la premi `ere ´etapex1=F1(d), l’algorithme g ´en `ere b
x1 = fl(F1(fl(d))) = fl(F1(d(1 +ρd)))
= x1(1 +κ1ρd)(1 +ρ1)
= x1(1 +κ1ρd+ρ1+κ1ρdρ1)
= x1(1 +ρcx1)
o `uκ1est le conditionnement deF1,ρ1est l’erreur d’arrondi commise pour stocker le r ´esultat de la premi `ere ´etape et
ρcx1= (κ1ρd+ρ1+κ1ρdρ1)≈(κ1ρd+ρ1).
en n ´egligeant les termes petits d’ordre sup ´erieur.
•Cfr. calcul p.53
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.60
L’erreur de g ´en ´eration (II)
•`a chaque ´etape la machine ex ´ecute le calcul et transforme le r ´esultat en virgule flottante.
•Ceci engendre `a chaque ´etape une erreur additionnelle d’arrondi qui va se propager dans les ´etapes successives.
•A la deuxi `eme ´etape, puisqueρcx1≈(κ1ρd+ρ1)on obtient b
x2 = fl(F2(x1(1 +ρcx1)))
= x2(1 +κ2ρcx1)(1 +ρ2)
≈ x2(1 +ρ2+κ2ρ1+κ2κ1ρd)
•D’une mani `ere r ´ecursive on d ´eduit que `a la troisi `eme ´etape b
x3=x3(1 +ρ3+κ3ρ2+κ3κ2ρ1+κ3κ2κ1ρd) et `a lan-i `eme ´etape
b
x≈x(1+
err. arr
z}|{ρn +κnρn−1+κnκn−1ρn−2+· · ·+κn. . . κ2ρ1
| {z }
erreur g ´en ´eration
+
err. prop z }| { κn. . . κ1ρd)
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.61
x erreur propagation
erreur generation erreur arrondi x
d x d δd
δ
Les trois composantes de l’erreur
L’erreur finale est compos ´ee de trois parties :
•l’erreur d’arrondi
•l’erreur de propagation (ind ´ependante de l’algorithme) cas sp ´ecial : erreur d’annulation
•l’erreur de g ´en ´eration (li ´ee `a la forme de la m ´ethode).
cas sp ´ecial : erreur d’absorption (voir ci-dessous)
arrondi ρ
ρ1
ρ2
ρn-1
ρn
κ1 κ2
κn-1 κn F1
F2
Fn-1
Fn
{ { {
propagation génération
d
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.64
Exemple
•Consid ´erons un syst `eme de repr ´esentation en virgule flottante avec baseb= 10ett= 3chiffres significatifs.
•Soitx=F(d) =ed−1le probl `eme `a r ´esoudre et d= 0.0123 = 123·10−4la donn ´ee.
•La donn ´ee garde la m ˆeme valeur apr `es le codage puisqued=db∈F.
•La solution exacte estx= 0.012375956100545. . .aproch ´ee et repr ´esent ´ee parx= 0.0124 = 124·10−4∈F.
•Consid ´erons deux algorithmes diff ´erents pour r ´esoudre ce m ˆeme probl `eme : le premier algorithme effectue le calcul en une seule ´etape (c.- `a-d. sans stockage interm ´ediaire)
x=F1(d) =F(d),
•Le deuxi `eme utilise deux ´etapes
x1=F1(d) =ed, x2=F2(x1) =x1−1.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.65
Exemple (II)
•Les deux algorithmes sont identiques d’un point de vue math ´ematique, ils produisent deux r ´esultats num ´eriques diff ´erents.
•Le premier algorithme fournit la repr ´esentation en Fde la solution exactebx=x.
•Le deuxi `eme algorithme fournit
bx1= fl(F1(d)) = fl(eb db) = fl(1.0124) = 1.01 = 101·10−2 b
x=F2(xb1) =bx1−1 = 0.01 = 100·10−4.
•L’erreur relative du deuxi `eme algorithme (due `a la seule composante de g ´en ´eration puisque l’erreur d’arrondi `a l’entr ´ee est absente) est εx=
xb−x
x =
0.01−0.0124 0.0124
≈0.19.
L’erreur d’absorption
•L’erreur d’absorption se v ´erifie pendant l’addition de deux op ´erandes d1etd2avecd2≫d1.
•Supposons b = 10, t = 6 et x = F(d) = (d1 + d2) avec d1 = 0.0000123456 = 123456·10−10etd2= 1 = 100000·10−5.
•Puisqued1=db1etd2=db2, on obtient b
x= fl(d1+d2) = fl(1.0000123456) = 1.00001 = 100001·10−5
•Les chiffres significatifs ded1sont perdus. Ceci implique une erreur relative de petite taille
xb−x
x =
1.0000123456−1.00001 1.0000123456
≈2·10−6
mais qui peut s’av ´erer g ˆenante dans la poursuite du calcul.
L’erreur d’absorption (II)
•Supposonsb = 10, t = 6 et x = F(d) = (d1+d2)−1 avecd1 = 0.0000123456 = 123456·10−10etd2= 1 = 100000·10−5.
•La solution exacte estx=d1.
•Puisquedb1+db2= 1.0000123456etfl(db1+db2) = 1.00001 = 100001·10−5, b
x= fl(fl(db1+db2)−1) = fl(0.00001) = 0.00001 = 100000·10−10,l’erreur relative absolue s’ ´el `eve `aεx=
xb−x
x =
bx−x
x =
=
0.00001−0.0000123456 0.0000123456
=
0.0000023456 0.0000123456 ≈0.19.
•L’erreur finale est donc non n ´egligeable.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.68
Erreur d’absorption et erreur d’annulation : comparaison
•Erreur d’annulation
— Deux nombres avec des valeurs absoluesrapproch ´ees
— La sortie a une valeur absolue plus petite que les entr ´ees
— Le nombre de symboles dans la repr ´esentation exacte de la sor- tie est born ´e par les nombres de symboles dans les repr ´esentations exactes des entr ´ees.
— Par cons ´equent : Quand les entr ´ees sont repr ´esent ´ee en ma- chine sans arrondi, tel sera le cas pour la sortie
— Mais : La moindre erreur (d’arrondi) sur les entr ´ees (ou sur une des entr ´ees) sera amplifi ´ee.
•Erreur d’absorption
— Deux nombres avec des valeurs absoluesfortement diff ´erentes
— La repr ´esentation exacte de la sortie contient plus de symboles que les repr ´esentations des entr ´ees
— Par cons ´equent : L’arrondi apr `es le calcul peut introduire une er- reur
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.69
Erreur de g ´en ´eration : consid ´erations
•Plusieurs algorithmes peuvent ˆetre propos ´es pour r ´esoudre le m ˆeme probl `eme math ´ematique.
•Afin de r ´eduire l’erreur de g ´en ´eration, qui est le seul `a d ´ependre de l’algo- rithme m ˆeme, une r `egle empirique g ´en ´erale doit ˆetre tenue en consid ´eration :
si on ne peut pas ´eliminer les calculs avec un grand conditionnement, alors il vaut mieux les ins ´erer le plus t ˆot possible dans l’algorithme.
•En d ´eplac¸ant, si possible, les ´etapes qui affichent le plus grand conditionne- ment au d ´ebut, celles-ci causeront une amplification de l’erreur plus petite que dans le cas d’une autre localisation dans l’algorithme.
Exemple: Pour effectuerx=d1−d2+d3, l’ordre de calculsx= (d1−d2) +d3
est plus favorable quex= (d1+d3)−d2
•A chaque ´etape de l’algorithme l’ erreur d’entr ´ee est amplifi ´ee d’une fac¸on proportionnelle au conditionnement de l’ ´etape.
•Souvent, on peut effectuer l’analyse de stabilit ´e sans ´evaluation des cond- tionnements des ´etapes.Voir exemple Chap.1 :x=F(d) =√
d−√a
R ´esum ´e des formules
•Ecarts et erreurs (en g ´en ´eral) δx=|xb−x|. ρx=xb−x
x . xb=x(1 +ρx). εx=|ρx|= δx
|x|
•L’ensembleF(b, t, L, U)
La mantisse bt−1≤m≤bt−1 Distance relative η(xi) =
xi+1−xi xi
η(xi) =m[x1i]
Distance relative maximale = eps-mach ǫb< η(xi)≤ǫ o `u ǫ=b1−t 1 +ǫ= min (F∩]1,∞[)
•L’op ´erationfl :R→F:x7→xˆ
erreur d’arrondi εx=|ρx| o `u xb= fl(x) =x(1 +ρx) pr ´ecision machine. u=ǫ/2 εx=|ρx| ≤u
Conditionnement & stabilit ´e d’un algorithme directe : exemple 1
Nous voulons ´evaluer la fonction x=F(d) =√ d−√
a, o `u a est consid ´er ´e comme constante connue.
Analyse du conditionnement κ(d) =
F′(d)·d F(d)
=
1 2√
d·d
√d−√ a
=
√d 2|√
d−√ a| En multipliant num ´erateur et d ´enominateur avec(√
d+√
a)on obtient κ(d) =
√d(√ d+√
a) 2|d−a| ≈ d
|d−a|
(l’expression approch ´ee ´etant valide pourdautour dea)
Ceci est la m ˆeme expression que pour le conditionnement ded−a
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.72
Exemple 1 : Analyse de stabilit ´e
Pour la stabilit ´e, on se concentre sur l’impl ´ementation. On peut donc supposer que les entr ´ees soient exactes.
Le mod `ele des erreurs g ´en ´er ´eespar une op ´erationFiest Fi(d) =~ Fi(d)~ ·(1 +ρ) C’est- `a-dire ρ= Fi(d)~ −Fi(d)~
Fi(d)~ Dans notre cas, pourF(d) =√
d−√
a, on obtient F(d) =√
d(1 +ρ1)−√
a(1 +ρ2)(1 +ρ3)
Et donc, on arrive `a l’expression approximative suivante (en n ´egligeant les termes de deuxi `eme ordre) :F(d)−F(d)
F(d) =
√d(ρ1+ρ3)−√
a(ρ2+ρ3)
√d−√ a
ce qui pointe vers une instabilit ´e pourdautour dea, m ˆeme si les entr ´ees sont connue avec pr ´ecision infinie.
La cause de l’instabilt ´e est le calcul inexact de la racine carr ´ee, suivi d’une soustraction des r ´esultats, soustraction qui est, `a son tour, mal conditionn ´ee.
M. Jansen, G. Bontempi INFO-F-205 Calcul Num ´erique — Chap. 2: Analyse d’erreurs p.73
Exemple 1 : Am ´eliorer la stabilit ´e
Une expression alternative On peut ´ecrireF(d) =√d−a
d+√a, une expression pour laquelle F(d) = (d−a)(1 +ρ1)
√
d(1 +ρ2) +√a(1 +ρ3)(1 +ρ4)·(1 +ρ5)
En n ´egligeant les termes d’ordres sup ´erieurs dans la s ´erie de Taylor pour
~
ρ≈0, on obtient F(d)≈Fd;ρ~=~0+
X5 i=1
∂F
∂ρi
d;~ρ=~0·ρi
F(d) = √(d−a)
d+√a+√(d−a)
d+√a·ρ1−√√d(d−a)
d+√a
2·ρ2
−√√a(d−a)
d+√a
2·ρ3−√(dd+−a)√a·ρ4+√(d−a)
d+√a·ρ5+O(ρiρj) Les termes enρ2etρ3satisfont `a
√a(d−a) √
d+√a2
· 1 F(d) =
√a(d−a) √
d+√a2√
d−√a
=
√a
√d+√a≤1
Et, par cons ´equent, on arrive `a
F(d)F(d)−F(d)
≤ |ρ1|+|ρ2|+|ρ3|+|ρ4|+|ρ5| ≤5u
Cet algorithme est stable. La stabilit ´e vient du fait que la soustraction a lieu tout au d ´ebut, sur des donn ´eesd et a qui n’ont pas encore subi un arrondi dans un calcul pr ´ec ´edent.
ConclusionQuand un probl `eme est mal conditionn ´e, il est important d’identi- fier/isoler le sous-probl `eme qui cause le mauvais conditionnement pour ´eviter des erreurs suppl ´ementaires suite `a un ordre de calcul d ´efavorable par rapport la `a stabilit ´e (des erreurs d’arrondi)
RemarqueCette analyse ne consid `ere que la stabilit ´e en conditions id ´eales.
Elle ne tient pas compte des erreurs d’arrondi dans la repr ´esentation des entr ´ees