1.2 Nombres réels
5
La condition a 1 = 0 assure qu’un nombre ne peut pas avoir plusieurs
représentations. Par exemple, sans cette restriction, le nombre 1/10 pourrait être représenté (dans le système décimal) par 0.1 · 10
0 , mais aussi
par 0.01 · 10
1 , etc.
L’ensemble F est donc complètement caractérisé par la base β, le
nombre de chiffres significatifs t et l’intervalle ]L, U [ (avec L < 0 et
U > 0) dans lequel varie e. On le note donc F(β, t, L, U ). Par exemple,
dans MATLAB, on a F = F(2, 53, −1021, 1024) (en effet, 53 chiffres
significatifs en base 2 correspondent aux 15 chiffres significatifs montrés
par MATLAB en base 10 avec le format long).
Heureusement, l’erreur d’arrondi produite quand on remplace un réel
x = 0 par son représentant fl(x) dans F, est petite, puisque
|x − fl(x)|
|x|
≤
1
2
M
(1.2)
où M = β
1−t est la distance entre 1 et le nombre à virgule flottante
différent de 1 qui s’en approche le plus. Remarquer que M dépend de β
et t. Par exemple dans MATLAB, la commande eps, fournit la valeur eps
M = 2
−52
2.22 · 10
−16 . Soulignons que dans (1.2) on estime l’erreur
relative sur x, ce qui est assurément plus pertinent que l’erreur absolue
|x − fl(x)|. L’erreur absolue, contrairement à l’erreur relative, ne tient
en effet pas compte de l’ordre de grandeur de x.
Le nombre u =
1
2
M est l’erreur relative maximale que l’ordinateur
peut commettre en représentant un nombre réel en arithmétique finie.
Pour cette raison, on l’appelle parfois unité d’arrondi.
Le nombre 0 n’appartient pas à F, car il faudrait alors prendre a 1 = 0
dans (1.1) : il est donc traité séparément. De plus, L et U étant finis, on
ne peut pas représenter des nombres dont la valeur absolue est arbitrairement grande ou arbitrairement petite. Plus précisément, les plus petits
et plus grands nombres réels positifs de F sont respectivement donnés
par
x min = β
L−1 , x max = β
U (1 − β
−t ).
Dans MATLAB ces valeurs sont fournies par les commandes realmin realmin
realmax
et realmax. Elles donnent
x min = 2.225073858507201 · 10
−308 ,
x max = 1.797693134862316 · 10
+308 .
Un nombre positif plus petit que x min produit un message d’erreur
appelé underflow et est traité soit de manière particulière, soit comme s’il
était nul (voir p.ex. [QSS07], Chapitre 2). Un nombre positif plus grand
que x max produit un message d’erreur appelé overflow et est remplacé
par la variable Inf (qui est la représentation de +∞ dans l’ordinateur). Inf
5
La condition a 1 = 0 assure qu’un nombre ne peut pas avoir plusieurs
représentations. Par exemple, sans cette restriction, le nombre 1/10 pourrait être représenté (dans le système décimal) par 0.1 · 10
0 , mais aussi
par 0.01 · 10
1 , etc.
L’ensemble F est donc complètement caractérisé par la base β, le
nombre de chiffres significatifs t et l’intervalle ]L, U [ (avec L < 0 et
U > 0) dans lequel varie e. On le note donc F(β, t, L, U ). Par exemple,
dans MATLAB, on a F = F(2, 53, −1021, 1024) (en effet, 53 chiffres
significatifs en base 2 correspondent aux 15 chiffres significatifs montrés
par MATLAB en base 10 avec le format long).
Heureusement, l’erreur d’arrondi produite quand on remplace un réel
x = 0 par son représentant fl(x) dans F, est petite, puisque
|x − fl(x)|
|x|
≤
1
2
M
(1.2)
où M = β
1−t est la distance entre 1 et le nombre à virgule flottante
différent de 1 qui s’en approche le plus. Remarquer que M dépend de β
et t. Par exemple dans MATLAB, la commande eps, fournit la valeur eps
M = 2
−52
2.22 · 10
−16 . Soulignons que dans (1.2) on estime l’erreur
relative sur x, ce qui est assurément plus pertinent que l’erreur absolue
|x − fl(x)|. L’erreur absolue, contrairement à l’erreur relative, ne tient
en effet pas compte de l’ordre de grandeur de x.
Le nombre u =
1
2
M est l’erreur relative maximale que l’ordinateur
peut commettre en représentant un nombre réel en arithmétique finie.
Pour cette raison, on l’appelle parfois unité d’arrondi.
Le nombre 0 n’appartient pas à F, car il faudrait alors prendre a 1 = 0
dans (1.1) : il est donc traité séparément. De plus, L et U étant finis, on
ne peut pas représenter des nombres dont la valeur absolue est arbitrairement grande ou arbitrairement petite. Plus précisément, les plus petits
et plus grands nombres réels positifs de F sont respectivement donnés
par
x min = β
L−1 , x max = β
U (1 − β
−t ).
Dans MATLAB ces valeurs sont fournies par les commandes realmin realmin
realmax
et realmax. Elles donnent
x min = 2.225073858507201 · 10
−308 ,
x max = 1.797693134862316 · 10
+308 .
Un nombre positif plus petit que x min produit un message d’erreur
appelé underflow et est traité soit de manière particulière, soit comme s’il
était nul (voir p.ex. [QSS07], Chapitre 2). Un nombre positif plus grand
que x max produit un message d’erreur appelé overflow et est remplacé
par la variable Inf (qui est la représentation de +∞ dans l’ordinateur). Inf
