• Aucun résultat trouvé

Relative Distance

N/A
N/A
Protected

Academic year: 2022

Partager "Relative Distance"

Copied!
23
0
0

Texte intégral

(1)

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

(2)

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 ?

(3)

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.

(4)

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 symbolesaiN,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.

(5)

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·101+ 2·102+ 1·103= 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·161+ 2· 162+ 1·163= 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

(6)

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 `abm.

•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 symbolesaiN; 0≤a1< b

Notation normalis ´ee:aiN, 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

aibi= (−1)smbet

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)smbet=

" t X

i=1

aibti

#

bet= 34·1012= 3.4

•La notation{[3,4], e=−1, b= 10, s= 1}d ´esigne le r ´eel x=−0.34·101= 0.034

•La notation{[3,4], e=−1, b= 16, s= 1}d ´esigne le r ´eel x= (−1)1161(3·161+ 4·162) =−0.0127

(7)

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(L1)≤ |x| ≤bU(1−bt)

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)bt1(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=mbet

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 bet.

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

(8)

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 ´ecutifsxiFet xi+1Fpar η(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]bet−m[xi]bet

m[xi]bet = bet

m[xi]bet = 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)bet=be−bet et doncxi+1−xi=be−t

Conclusion pour toutexi: η(xi) =m[x1i]

(9)

Distance relative (II)

Puisquebt> m≥bt1⇒bt< 1

m≤b1t,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 = bt1 xi = mbet = bt1bet = be1= 1⇒e= 1

Doncxi+1−xi

xi =xi+1−xi=b1t=ǫ 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+1xi|/|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 entrebt= 0.1etb1t= 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 ´eelsxiF,

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(271).

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.

(10)

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−bt): 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|< bL1: 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. . . at], e, b, s}et

at =

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.

SoientxiF(b, t, L, U)etxi+1F(b, t, L, U)les2nombres cons ´ecutifs

`a virgule flottante tels quexi≤x≤xi+1.

(11)

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

2b1t=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

(12)

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ǫ= b1t= 252 = 2.2·1016. 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=1aibiest0.785398≈π/4.

•La valeur de la quantit ´e(−1)sbePti=1aibi= 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·10308.

•L−1 =−1022quande= 00000000000. Il est utilis ´e pour repr ´esenter le z ´ero

(13)

Pr ´ecision vs. domaine

Domaine : realmin=bL−1 realmax=bU(1−bt)

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=ǫ=b1t

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 2b1t.

•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)δ

(14)

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∈RetdbF.

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 +FF(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)bRil 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 +κρdF(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 +κρdF(d)b)

d

erreur propagation d x

d δd

δx

x

erreur arrondi

F( )

(15)

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·105la 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·103.

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·106F(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 depropagationconditionnementdu 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.

(16)

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ρd11ρdρ1)

= x1(1 +ρcx1)

o `uκ1est le conditionnement deF11est l’erreur d’arrondi commise pour stocker le r ´esultat de la premi `ere ´etape et

ρcx1= (κ1ρd11ρdρ1)≈(κ1ρd1).

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ρd1)on obtient b

x2 = fl(F2(x1(1 +ρcx1)))

= x2(1 +κ2ρcx1)(1 +ρ2)

≈ x2(1 +ρ22ρ12κ1ρd)

•D’une mani `ere r ´ecursive on d ´eduit que `a la troisi `eme ´etape b

x3=x3(1 +ρ33ρ23κ2ρ13κ2κ1ρd) et `a lan-i `eme ´etape

b

x≈x(1+

err. arr

z}|{ρnnρn1nκn1ρn2+· · ·+κ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)

(17)

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·104la donn ´ee.

•La donn ´ee garde la m ˆeme valeur apr `es le codage puisqued=dbF.

•La solution exacte estx= 0.012375956100545. . .aproch ´ee et repr ´esent ´ee parx= 0.0124 = 124·104F.

•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·104.

•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·105

•Les chiffres significatifs ded1sont perdus. Ceci implique une erreur relative de petite taille

xb−x

x =

1.0000123456−1.00001 1.0000123456

≈2·106

mais qui peut s’av ´erer g ˆenante dans la poursuite du calcul.

(18)

L’erreur d’absorption (II)

Supposonsb = 10, t = 6 et x = F(d) = (d1+d2)−1 avecd1 = 0.0000123456 = 123456·1010etd2= 1 = 100000·105.

•La solution exacte estx=d1.

Puisquedb1+db2= 1.0000123456etfl(db1+db2) = 1.00001 = 100001·105, b

x= fl(fl(db1+db2)−1) = fl(0.00001) = 0.00001 = 100000·1010,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=d1d2+d3, l’ordre de calculsx= (d1d2) +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) =

da

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 bt1≤m≤bt−1 Distance relative η(xi) =

xi+1−xi xi

η(xi) =m[x1i]

Distance relative maximale = eps-mach ǫb< η(xi)≤ǫ o `u ǫ=b1t 1 +ǫ= min (F∩]1,∞[)

L’op ´erationfl :RF:x7→xˆ

erreur d’arrondi εx=|ρx| o `u xb= fl(x) =x(1 +ρx) pr ´ecision machine. u=ǫ/2 εx=|ρx| ≤u

(19)

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(ρ13)−√

a(ρ23)

√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) =da

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) = (da)

d+a+(da)

d+a·ρ1d(da)

d+a

2·ρ2

a(da)

d+a

2·ρ3(dd+a)a·ρ4+(da)

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

Références