MAT-2910: CHAPITRE 1
ANALYSE D’ERREURS
hm@[Link]
TABLE DES MATIÈRES
1 Sources d’erreurs 2
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Types d’erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Erreur absolue, erreur relative . . . . . . . . . . . . . . . . . . . . . 5
2 Représentation des nombres en machine 6
3 L’arithmétique flottante 9
3.1 accumulation des erreurs d’arrondi . . . . . . . . . . . . . . . . . . 10
3.2 Erreurs d’arrondi sur une somme . . . . . . . . . . . . . . . . . . . 10
3.3 Règle de Horner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4 Phénomènes de compensation (cancellation) . . . . . . . . . . . . 12
3.5 Instabilité numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4 Erreurs de troncature 15
4.1 Développement de Taylor d’une fonction à une variable . . . . . 15
4.2 Développement de Taylor d’une fonction à deux variables . . . . 15
Mat-2910 page 1 de 15
1 SOURCES D’ERREURS
1.1 INTRODUCTION
• On ne peut pas résoudre analytiquement tous les problémes mathéma-
tiques issus des sciences de l’ingénieur.
On peut citer par exemple :
– Calcul d’une primitive de certaines fonctions.
Exemple 1.1 : Z π
ln(cos x)2 d x
0
– Calcul d’une solution explicite de certaines équations non linéaires
Exemple 1.2 :
x = ex
– Résoudre certaines équations différentielles ordinaires
Exemple 1.3 :
y 0 (x) = sin( y(x))
– Résoudre certaines équations aux dérivées partielles
• Dans un tel cas, on remplace la résoulution mathématique du problème
par son approximation numérique en utilisant les techniques d’analyse numé-
rique.
• L’analyse numérique permet d’obtenir au moyen d’un algorithme la solu-
tion approchée d’un problème mathématique posé et ceci avec une précision
désirée et après un nombre fini d’opérations élémentaires.
• La stratégie générale consiste à transformer un probléme compliqué en
un probléme plus simple. Par exemple
– Nonlinéaire −→ linéaire (Linéarisation)
– Continu −→ discret (Discrétisation)
• Le résultat final et son degré de précision vont dépendre :
– des algorithmes utilisés
– de leur mise en œuvre sur ordinateur
Mat-2910 page 2 de 15
1.2 TYPES D’ERREURS
Les erreurs introduites dans la résolution d’un modèle mathématique pro-
viennent de différentes sources :
1. Les erreurs de modélisation : pour être traité numériquement, un pro-
blème mathématique est toujours simplifié par rapport à la réalité. (Ex-
périmentation, simplification, · · · )
Exemple 1.4 : Assimiler par exemple la terre de forme sphérique. Or le
rayon de la terre est r ≈ 6357 km à l’équateur et r ≈ 6378 km aux pôles.
Exemple 1.5 : Problème du pendule
α g
θ 00 (t) = − θ 0 (t) −
sin θ (t)
m l
Pour les petites oscillations on peut écrire sin(θ (t)) ≈ θ (t). On obtient
alors l’équation différentielle linéaire
α g
θ 00 (t) = − θ 0 (t) − θ (t)
m l
2. Erreurs sur les données : Les données expérimentales sont entachées
d’erreurs.
3. Les erreurs d’arrondi : qui proviennent de la représentation des nombres
dans un calculateur.
4. Les erreurs d’approximation et de discrétisation :
– calcule d’une intégrale à l’aide d’une somme finie,
– une dérivée à l’aide de différences finies
– la somme d’une série infinie à l’aide d’un nombre fini de ses termes
5. Les erreurs humaines : programmation.
Soit x un nombre réel et soit x̃ une approximation de x. Pensez à x = π
par exemple. Soit f (x) un résultat désiré (évaluation d’une fonction en un
point) et soit f˜(x̃) la valeur calculée. Alors on peut écrire
Erreur totale = f (x) − f˜(x̃)
= ( f (x) − f (x̃)) + ( f (x̃) − f˜(x̃))
| {z } | {z }
Erreur due aux données Erreur de calcul
Erreur de calcul = Erreurs d’arrondi + Erreurs de troncature
Mat-2910 page 3 de 15
Erreur d’arrondi = Arithmétique exacte − Arithmétique flottante
Erreur de troncature = Résultat exact − Résultat produit par un algorithme
Mat-2910 page 4 de 15
1.3 ERREUR ABSOLUE , ERREUR RELATIVE
• En général dans tout calcul numérique, on remplace un nombre exact x
par un nombre approché x̃ légèrement différent.
• Si x̃ < x, on dit que x̃ est une valeur approchée de x par défaut. Si x̃ > x,
on dit que x̃ est une valeur approchée de x par excès. Dans les deux cas on
note x̃ ≈ x.
Définition 1.1 On appelle erreur absolue d’un nombre approché x̃ la valeur ab-
solue Ea bs (x) de la différence entre le nombre axact x et le nombre approché
donné :
Eabs (x) :=| x − x̃ |
L’erreur relative E r el (x) d’un nombre approché x̃ est le rapport de l’erreur absolue
Ea bs (x) de ce nombre et de la valeur absolue du nombre exact
Eabs (x)
E r el (x) :=
|x|
Le pourcentage d’erreur est l’erreur relative multipliée par 100.
L’erreur relative fournit une information plus pertinente sur la grandeur
réelle de l’erreur.
Exemple 1.6
x = π = 3.141592 · · · , x ∗ = 3.1419
Erreur absolue = 3.073464102070211 × 10−4
Erreur relative = 9.783140085199355 × 10−5
Exemple 1.7
y = 106 , y ∗ = 999996
Erreur absolue = 4.0 × 100
Erreur relative = 4.0 × 10−6
Exemple 1.8
z = 0.000012, z ∗ = 0.000009
Erreur absolue = 3.0 × 10−6
Erreur relative = 25.0 × 10−2
Mat-2910 page 5 de 15
2 REPRÉSENTATION DES NOMBRES EN MACHINE
Dans un ordinateur un nombre réel est représenté par un nombre fini de
caractères, fixé à l’avance, qui dépend de l’architecture de la machine. Ainsi
tous les nombres entiers ou réels ne peuvent pas être représentés.
On distingue :
– Les nombres entiers dont la représentation et la manipulation sont celles
de l’arithmétique usuel.
– Les nombres flottants qui représentent les nombres rées. Ils sont repré-
sentés de façon approximative dans la mémoire de la machine.
Définition 2.1 Soit x un nombre réel. Son développement dans une base b ∈ N
donnée est !
X∞
x =± ai b−i b e
i=1
Sa représentation en virgule flottante à t chiffres dans une base donnée b ∈
N, b ≥ 2 est donnée par le nombre
t
X
x̃ := (−1) b s e
ai b−i = (−1)s mb e
i=1
On note fl(x) = x̃
où
t
X
Mantisse : m = ai b−i = a1 b−1 + a2 b−2 + · · · + a t b−t
i=1
Exposant : e ∈ Z, L < e < U, L < 0, U > 0
Signe : s ∈ {0, 1}
ai ∈ N, 0 < a1 < b, 0 ≤ ai < b, i = 2, · · · ( normalisation)
t = nombre de chiffres utilisés pour représenter la mantisse
Le nombre de nombres flottants normalisés est donné par
2(b − 1)b t−1 (U − L + 1) + 1
Exemple 2.1 x = 2.4 = 2 + 0.4 = 0.2 · 101 + 0.04 · 101
2.4 = 101 (2 · 10−1 + 4 · 10−2 ) = 0.24 · 101 , (b = 10, e = 1, t = 2, m = 0.24)
Il existe deux façons d’obtenir l’approximation fl(x) à partir du développe-
ment de x dans la base b :
Mat-2910 page 6 de 15
– Par troncature : on garde les t premiers chiffres du développement.
– Par arrondi : On ajoute 2b au (t + 1)-ème chiffre du développement et on
tronque.
Exemple 2.2
x = 123, y = 45.6, z = 45.67
Pour une arithmétique flottante qui utilise t = 3, b = 10 on a :
fl(x) = 0.123 · 103 , fl( y) = 0.456 · 102 , fl(z) = 0.457 · 102
Dans le standard IEEE 754 utilisé par Matlab, on a b = 2 et :
– en simple précision : t = 24, L = −125, U = 128
– en double précision : t = 53, L = −1021, U = 1024
Dans le standard IEEE 754 utilisé par Matlab, on a b = 2. De plus en
simple précision on a t = 24, L = −125, U = 128 et en double précision on a
t = 53, L = −1021, U = 1024.
Théorème 2.1 Dans une arithmétique à t chiffres avec troncature on a :
| x − fl(x) |
≤ b1−t
|x|
Dans une arithmétique à t chiffres avec arrondi on a :
| x − fl(x) | 1
≤ b1−t
|x| 2
On note
εm := b1−t ( epsilon machine)
Dans Matlab εm = eps .
>> eps
>> ans =
2.2204e-016
Mat-2910 page 7 de 15
3 L’ARITHMÉTIQUE FLOTTANTE
Le système numérique discret des machines est source d’erreurs. Il faut
donc prendre des précaustions pour qu’une accumulation d’erreurs aussi petite
soit-elle ne vienne pas fausser le résultat final.
Exemple 3.1
>> x = 2.0E+29;
>> y = 1.0E-9;
>> z1 = (y+(x-x))/y
z1 =
1
>> z2 = ((y+x)-x)/y
z2 =
0
On désigne par ◦ l’une des opérations suivantes : +, −, ×, ÷ et on définit
x ý y = fl(fl (x) ◦ fl ( y))
Deux expressions algèbriquement équivalentes peuvent fournir des résul-
tats différents sur une machine et que l’ordre des opérations peut changer les
résultats.
•
x ⊕ ( y ⊕ z) 6= (x ⊕ y) ⊕ z
6= (x ⊕ y) ⊕ (x ⊕ z)
Exemple 3.2 t = 4, b = 10 avec troncature.
x = 0.1234 × 101 , y = 0.3429 × 100 , z = 0.1289 × 10−1
On a
x ⊕ ( y ⊕ z) = 0.1489 × 101 , (x ⊕ y) ⊕ z = 0.1588 × 101
•
x ⊗ (y z) 6= (x ⊗ y) z
6= x ⊗ ( y z)
Mat-2910 page 8 de 15
3.1 ACCUMULATION DES ERREURS D ’ ARRONDI
Soit à calculer
104
X 1 1 1
A= = + ··· +
k=1
10 10 10
1
Le nombre réel 10
= 0.1 en base 10, mais dans la base 2 il s’écrit
(0.1)10 = (0.00011001100110011 · · · )2
>> s=0;
>> for k=1:10000
s=s+0.1;
end
>> format long
>> s
s =
1.000000000000159e+003
Et la valeur exacte est A = 103 .
3.2 ERREURS D’ARRONDI SUR UNE SOMME
Dans une sommation de réels, l’erreur peut être minimisée lorsqu’on somme
en premier les termes ayant la plus petite valeur absolue.
Exemple 3.3
Somme = a0 + a1 + · · · + an , avec a0 = 1, a1 = a2 = · · · = an = 10−16
Pour n = 1016 on a exactement Somme = 2 mais numériquement on a
(((a0 ⊕ a1 ) ⊕ a2 ) ⊕ · · · ) ⊕ an ) =1
a0 + (a1 ⊕ (a2 ⊕ · · · (an−1 ⊕ an ))) = 2
On doit donc sommer par ordre croissant une série à termes positifs.
Exemple 3.4
n
X 1
S =1+
k=1
k + k2
Mat-2910 page 9 de 15
On a
1
S =2−
n+1
et donc pour n assez grand S ≈ 2.
On pose
1
S1 = 1 + 21 + · · · + n+n 2
1 1
S2 = n2 +n + · · · + 2 + 1
Mat-2910 page 10 de 15
3.3 RÈGLE DE HORNER
On s’intersse au [problème de l’évaluation d’un polynôme
P(x) = a0 + a1 x + · · · an x n
Pour évaluer ce polynôme au point x on utilise l’algorithe de Horner sui-
vant : on réecrit P(x) sous la forme
P(x) = a0 + x(a1 + x(a2 + · · · = x(an−1 + x an )))
et on pose pk = ak + ak+1 x + · · · + an x n−k . Alors on a
P(x) = p0
où
= an
pn
pk−1 = ak−1 + x pk , 1 ≤ k ≤ n
3.4 PHÉNOMÈNES DE COMPENSATION (CANCELLATION)
Ces phénomènes se produisent lorsqu’on veut soustraire des nombres très
voisins.
Exemple 3.5 On veut calculer les valeurs des fonctions
1 − cos x 2 sin(x/2)2
f1 (x) = , f2 (x) =
x2 x2
pour des valeurs de x ≈ 0.
Algébriquement on a
f1 (x) = f2 (x), ∀x ∈ R
mais avec Matlab on a par exemple :
f1 (10−8 ) = 0, et f2 (10−8 ) = 0.5
p p 1
A(x) = x +1− x, B(x) = p p
x +1+ x
On a A(x) = B(x), ∀x ∈ R.
Numériquement on a :
A(108 ) = 5.0000 × 10−5 , B(108 ) = 5.0000 × 10−5
A(1010 ) = 4.9999 × 10−6 , B(1010 ) = 4.9999 × 10−6
A(1016 ) = 0, B(1016 ) = 5.0000 × 10−9
Mat-2910 page 11 de 15
Exemple 3.6 Résolution de ax 2 + bx + c = 0
On a p
−b + b2 − 4ac
x1 =
2a
p
−b − b2 − 4ac
x2 =
2a
Pour éviter le phénomène de cancellation on peut utiliser l’une des méthodes
suivantes :
• prendre comme x 1 la plus grande des racines et calculer x 2 par la
formule x 2 = c/ax 1
• onpeut écrire les formules çi-dessus un peu différemment, en remar-
quqnt que
p p y −z
y− z=p p
y+ z
Exemple 3.7 Calcul approché de e−10
10
X 10k
e−10 ≈ (−1)k
k=0
k!
Le terme général uk est tel que
| uk | 10
= ≥ 1, k ≤ 10
| uk−1 | k
n
1
X 10k
• Règle : e −10
= e10
avec e 10
≈
k=0
k!
3.5 INSTABILITÉ NUMÉRIQUE
Ce phénomème se produit par exemple dans certains algorithmes itératifs.
Exemple 3.8 Calcul récurrent
1
xn
Z
In = n = 1, 2, · · ·
0
10 + x
On a
1
In = − 10I n−1
n
Mat-2910 page 12 de 15
ceci permet de calculer I n par ˚’ecurrence avec
¨ 11
I0 = log 10
I n = 1n − 10I n−1
L’erreur sur I n croit exponentiellement.
• L’idée içi est de renverser la récurrence en posant
1 1
I n−1 = ( − In)
10 n
Mat-2910 page 13 de 15
4 ERREURS DE TRONCATURE
4.1 DÉVELOPPEMENT DE TAYLOR D’UNE FONCTION À UNE VARIABLE
Théorème 4.1 Soit h 6= 0.
Si f ∈ C n+1 ([x, x + h]) ou f ∈ C n+1 ([x + h, x]) si h < 0 alors :
h2 hn
f (x + h) = f (x) + hf 0 (x) + f 00 (x) + · · · + f (n) (x) + R n (x)
2! n!
avec
x+h
(x + h − y)n
Z
R n (x) = f (n+1 ( y)d y
x
n!
hn+1
= f (n+1 (c x )
(n + 1)!
= O(hn+1 )
= o(hn )
où c x ∈]x, x + h[ si h > 0 ou ]x + h, x[ si h < 0.
O = " de l’ordre de ".
o = " négligeable comparé à ".
Exemple 4.1 Série de Taylorde de f (x) = e x au voisinage de x = 0 :
h2 h3
eh = 1 + h + + eα
2 6
où α ∈]0, h[ si (h > 0).
2
1 + h + h2 est donc une approximation d’ordre 3 de e x .
4.2 DÉVELOPPEMENT DE TAYLOR D’UNE FONCTION À DEUX VARIABLES
Théorème 4.2 Soient h 6= 0, k 6= 0 des nombres réels. Si toutes les dérivées
partielles f x , f y , f x x , f x y , f y y , · · · , de f jusquà l’ordre n sont continues dans un
domaine contenant le point (x, y) alors :
f (x + h, y + k) = f (x, y) + hf x (x, y)
h2 k2
+ f x x (x, y) + hk f x y (x, y) + + f y y (x, y) + · · ·
2 2
Mat-2910 page 14 de 15