Vous êtes sur la page 1sur 10

Chapitre 1

Notions d’erreurs

Sommaire
1.1 Introductions - sources d’erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Mesures de l’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Représentation décimale d’un nombre approché . . . . . . . . . . . . . . . . 3
1.4 Troncature et arrondissement d’un nombre . . . . . . . . . . . . . . . . . . . 4
1.5 Représentation des nombres sur ordinateur . . . . . . . . . . . . . . . . . . . 4
1.5.1 Les nombres entiers signés . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5.2 Les nombres réels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1
1.1. INTRODUCTIONS - SOURCES D’ERREURS

1.1 Introductions - sources d’erreurs


L’analyse numérique se distingue des autres champs plus classiques des mathématiques par le
fait qu’il introduit plusieurs techniques de résolution approximatives qui résultent en différents
algorithmes. Ces algorithmes dépendent de certains paramètres qui influent sur la précision du
résultat. De plus, on utilise en cours de calcul des approximations plus ou moins précises. Par
exemple, on peut remplacer une dérivée par une différence finie de façon à transformer une
équation différentielle en une équation algébrique. Le résultat final et son degré de précision
dépendent des choix que l’on fait.
Une partie importante de l’analyse numérique consiste à contenir les effets des erreurs intro-
duites, qui proviennent de trois sources principales :

• les erreurs de modélisation ;


• les erreurs de représentation sur ordinateur ;
• les erreurs de troncature.

1.2 Mesures de l’erreur


Soit x un nombre exact et x ∗ une approximation de ce nombre, on écrit

x ≃ x∗ ou x ≈ x∗

• Si x ∗ > x, x ∗ est dite valeur approchée par excès.


• Si x ∗ < x, x ∗ est dite valeur approchée par défaut.

Erreur absolue
Définition 1.1 On appelle erreur absolue du nombre approché x ∗ de x, la quantité réelle positive
notée ∆(x), définie par :
∆(x) = ∣x − x ∗ ∣ (1.1)

Exemple 1.1 Pour la valeur exacte 23 , la valeur approchée x1∗ = 0.666667 est 1000 fois plus précise
que la valeur approchée x2∗ = 0.667 ; (l’erreur ∆2 (x) = 1000∆1 (x)).

2 2 666667 1 −6
∆1 (x) = ∣x − x1∗ ∣ = ∣ − 0.666667∣ = ∣ − ∣ = 10
3 3 106 3
2 2 667 1
∆2 (x) = ∣x − x2∗ ∣ = ∣ − 0.667∣ = ∣ − 3 ∣ = 10−3
3 3 10 3

2
1.3. REPRÉSENTATION DÉCIMALE D’UN NOMBRE APPROCHÉ

Erreur relative
Définition 1.2 On appelle erreur relative du nombre approché x ∗ de x, la quantité réelle positive
notée r(x), définie par :
∣x − x ∗ ∣ ∆(x)
r(x) = = (1.2)
∣x∣ ∣x∣

Incertitudes absolue et relative


Dans le cas où, en plus d’une valeur approchée qui lui est associée, une valeur exacte est
connue, il est possible de déterminer ses erreurs absolue et relative. Mais souvent elle ne l’est pas.
Dans ce dernier cas, les erreurs absolue et relative deviennent impossible à calculer. Afin de les
apprécier on introduit alors les notions d’incertitude absolue et d’incertitude relative.

Définition 1.3 On appelle incertitude absolue d’une valeur approchée x ∗ , tout nombre réel positif,
noté ∆x, vérifiant : E = ∣x − x ∗ ∣ ≤ ∆x ou de manière équivalente : x ∗ − ∆x ≤ x ≤ x ∗ + ∆x.

Remarque 1.1 On écrit : x = x ∗ ± ∆x ou encore x ≃ x ∗ (±∆x) , qui exprime le fait que : x ∈


[x ∗ − ∆x, x ∗ + ∆x] .

L’erreur absolue donne une mesure quantitative de l’erreur commise et l’erreur relative en me-
sure l’importance. Par exemple, si on fait usage d’un chronomètre dont la précision est de l’ordre
du dixième de seconde, l’erreur absolue est bornée par 0, 1s. Mais est-ce une erreur importante ?
Dans le contexte d’un marathon d’une durée de 2h20min, l’erreur relative liée au chronométrage
est très faible :
0.1
= 0.0000119
2 × 60 × 60 + 20 × 60
et ne devrait pas avoir de conséquence sur le classement des coureurs. Par contre, s’il s’agit d’une
course de 100 m d’une durée d’environ 10s, l’erreur relative est beaucoup plus importante :

0.1
= 0.01
10

soit 1% du temps de course. Avec une telle erreur, on ne pourra vraisemblablement pas faire la
différence entre le premier et le dernier coureur [Fortin, 2008].

1.3 Représentation décimale d’un nombre approché


Tout nombre réel positif x peut être représenté sous la forme d’un nombre décimal de déve-
loppement limité ou illimité :

x = a m 10m + a m−1 10m−1 + . . . + a m−n 10m−n + . . . (1.3)

où les a i sont les chiffres du nombre réel x (a i = 0, 1, 2, . . . , 9), avec a m ≠ 0 où m est un entier
naturel appelé rang supérieur du nombre réel x.

3
1.4. TRONCATURE ET ARRONDISSEMENT D’UN NOMBRE

Exemple 1.2 Soit le développement limité de :

7413.2680 = 7 ⋅ 103 + 4 ⋅ 102 + 1 ⋅ 101 + 3 ⋅ 100 + 2 ⋅ 10−1 + 6 ⋅ 10−2 + 8 ⋅ 10−3 + 0 ⋅ 10−4 .

Dans la pratique on n’utilise, essentiellement, que des nombres approchés de développements


limités :
x ≃ b m 10m + b m−1 10m−1 + . . . + b m−n 10m−n , avec b m ≠ 0 (1.4)

• Tous les chiffres conservés b i , i = m, ..., m − n, s’appellent chiffres significatifs du nombre


approché x ∗ .
• Certains des b i peuvent être nuls.

1.4 Troncature et arrondissement d’un nombre


En mathématiques, il existe deux notions d’approximation d’un nombre décimal :
• la troncature,
• l’arrondi.

La troncature
La troncature consiste à retirer tous les chiffres à droite du niveau de troncature demandé.
Par exemple, pour approcher le nombre π = 3.141592653589 . . . , on peut considérer la valeur
approchée 3.14 ou encore 3.14159, etc. ; selon le besoin. Dans le premier cas, le nombre π est
tronqué (coupé en éliminant une partie) après 2 décimales ; dans le second cas, après 5 décimales.

L’arrondi
Comme pour la troncature, on indique à quel niveau on calcule l’arrondi.
• Lorsque le chiffre suivant le niveau de l’arrondi est supérieur ou égal à 5, on arrondit à la
valeur supérieure : on parle de valeur approchée par excès.
• Si le chiffre suivant le niveau de l’arrondi est inférieur à 5, on arrondit à la valeur inférieure :
on parle de valeur approchée par défaut.

1.5 Représentation des nombres sur ordinateur


Un ordinateur ne peut traiter les nombres de la même manière que l’être humain. Il doit
d’abord les représenter dans un système qui permette l’exécution efficace des diverses opérations.
Cela peut entraîner des erreurs de représentation sur ordinateur, qui sont inévitables [Fortin,
2008].

4
1.5. REPRÉSENTATION DES NOMBRES SUR ORDINATEUR

Un nombre est représenté par un nombre finis 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. Les conséquences en sont très importantes, en particulier dans la précision des résultats
lors de calculs.
La structure interne de la plupart des ordinateurs s’appuie sur le système binaire. L’unité d’in-
formation ou bit prend la valeur 0 ou 1. Évidemment, très peu d’information peut être accumulée
au moyen d’un seul bit. On regroupe alors les bits en mots de longueur variable (les longueurs
de 8, de 16, de 32 ou de 64 ou même 128 bits sont les plus courantes). Les nombres, entiers et
réels, sont représentés de cette manière, bien que leur mode précis de représentation dépende du
fabricant.
On distingue :

1.5.1 Les nombres entiers signés


Pour transformer un entier positif N dans sa représentation binaire habituelle, il faut déter-
miner les a i tels que :
(N)10 = (a n−1 a n−2 . . . a2 a1 a0 )2

On a
N = a n−1 ∗ 2n−1 + a n−2 ∗ 2n−2 + . . . + a2 ∗ 22 + a1 ∗ 21 + a0 ∗ 20

Pour représenter les entiers signés, on utilise plusieurs variantes ; parmi elles, on cite la représen-
tation (signe + grandeur) et la représentation en complément à deux (la plus utilisée).

Représentation signe + grandeur

Considérons la représentation d’un entier sur 16 bits illustrée à la figure (1.1)

0 1 0 1 1 1 0 0 1 0 1 0 0 1 0 0
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
+ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

Figure 1.1 – Représentation signe et grandeur d’un entier sur 16 bits ([Fortin, 2008])

Dans cette représentation, un bit (le plus significatif ou MSB) est consacré au signe :
0 pour un entier positif
1 pour un entier négatif
et les autres bits pour la représentation de la grandeur (valeur absolue).
Ainsi, dans l’exemple de la figure (1.1), (101110010100100)2 = (23716)16 . Finalement, la repré-
sentation est celle de +23716 en décimal.
Dans cette représentation, les entiers signés codés sur n chiffres binaires ont pour valeur dans
[−2 − 1, 2n−1 − 1]. Ainsi les entiers codés sur
n−1

16 bits (= 2 octets) correspond à des entiers en simple précision ont pour valeur dans [−215 −

5
1.5. REPRÉSENTATION DES NOMBRES SUR ORDINATEUR

1, 215 − 1] = [−32767, +32767]


32 bits (= 4 octets) correspond à des entiers en double précision ont pour valeur dans [−231 −
1, 231 − 1] = [−2147483649, +2147483649].
Par contre, le zéro possède deux représentation ce qui conduit à des difficultés au niveau des
opérations arithmétiques.

+0 = 0000000000000000
−0 = 1000000000000000

Représentation en complément à deux

L’idéal dans une représentation est d’utiliser un seul circuit pour faire les deux opérations
(addition et soustraction), puisque :

X − Y = X + (−Y)

On appel complément à un (1) d’un nombre X un autre nombre X′ tel que :

X + X ′ = 2n − 1

où n est le nombre de bits de la représentation du nombre X.


On a aussi
X + 2n = X modulo 2n

Si on prend la représentation sur n bits, alors, on aura

X + 2n = X

Exemple 1.3 Soit X sur 16 bits X = 101010101010101, on a 216 = 10000000000000000


X + 216 = 1 101010101010101
Si on prend le résultat sur 16 bits, on trouve la même valeur de X = 101010101010101

Si on prend deux nombres entiers X et Y sur n bits, on remarque que la soustraction peut être
ramener à une addition :
X − Y = X + (−Y)

Il suffit de trouver une représentation pour −Y.

X − Y = (X + 2n ) − Y = X + (2n − 1) − Y + 1

On a par ailleurs, Y′ = (2n − 1) − Y est le complément à 1 de Y. La valeur Y′′ = Y′ + 1 est appelée


complément à deux de Y.

6
1.5. REPRÉSENTATION DES NOMBRES SUR ORDINATEUR

Finalement, on va obtenir (transformation d’une soustraction en une addition) :

X − Y = X + Y′′

Exemple 1.4 Si on travaille en 3 bits :

Table 1.1 – Représentation en complément à deux des entiers (3 bits)

Complément à 2 Binaire Décimale


000 000 +0
001 001 +1
010 010 +2
011 011 +3
100 −100 −4
101 −011 −3
110 −010 −2
111 −001 −1

Remarque 1.2 Si on travail sur n bits , l’intervalle des valeurs qu’on peut représenter en complément
à deux : −2(n−1) ≤ N ≤ +2(n−1) − 1

Remarque 1.3 Dans cette représentation , le bit du poids fort nous indique le signe.

Remarque 1.4 On remarque que le zéro n’a pas une double représentation.

1.5.2 Les nombres réels


Un nombre réel est constitué de deux parties : la partie entière et la partie fractionnelle ( les
deux parties sont séparées par une virgule ).
Il existe deux méthodes pour représenter les nombre réel :
Virgule fixe : la position de la virgule est fixe
Virgule flottante : la position de la virgule change (dynamique)
Dans la représentation en virgule flottante, Les nombres réels sont représentés de façon approxi-
mative en mémoire, avec la convention standardisée de la forme ±m × 2e , où m est la mantisse
1 ≤ m ≤ 2 et e l’exposant.
Pratiquement, on partitionne le mot en deux parties, l’une contenant e et l’autre contenant
m. (Le premier bit à gauche indique le signe Fig.1.2).
On utilise p bits pour la mantisse et q bits pour l’exposant.

Représentation en simple précision

Sur 32 bits (4 octets), on a p = 23, q = 8 (1 bit pour le signe) ce qui permet de représenter
des nombres compris, en valeur absolue, entre 2−128 ≈ 10−38 et 2128 ≈ 1038 car 128 = 2q = 28 . La
précision machine est de 7 chiffres décimaux significatifs car 223 = 107 .

7
1.5. REPRÉSENTATION DES NOMBRES SUR ORDINATEUR

± ... … … …

e m

Figure 1.2 – Représentation des nombres réels en virgule flottante

Représentation en double précision

Sur 64 bits (8 octets), on a p = 52, q = 11 et les réels en valeur absolue appartiennent à


[2−1024 , 21024 ] ≈ [10−308 , 10308 ] avec 15 chiffres décimaux significatifs (252 ≈ 1015 ).
Afin de maximiser le nombre de digits significatifs, on normalise la mantisse, c’est-à-dire on
élimine les digits nuls à gauche.

Exemple

Soit x = 0.00123456. En base 10 et avec 5 digits on peut représenter ce nombre comme

00123 × 10−5 ou 12345 × 10−7

La deuxième représentation exploite au maximum le nombre de digits disponibles.


Un nombre représenté en virgule flottante est normalisé. Dans la norme IEEE 754 :
• La mantisse est normalisé sous la forme ±1.M × 2±c
• M est appelée pseudo mantisse
• Le 1 précédant la virgule n’est pas codé en machine et est appelé bit caché
L’exposant peut être positif ou négatif. Cependant, la représentation habituelle des nombres si-
gnés (complément à 2) rendrait la comparaison entre les nombres flottants un peu plus difficile.
Pour régler ce problème, l’exposant est décalé, afin de le stocker sous forme d’un nombre non
signé. Ce décalage est de 2e−1 − 1 (e représente le nombre de bits de l’exposant) ; Ainsi, en simple
précision, le décalage est 28−1 − 1 = 128 − 1 = 127, tandis que en double précision, le décalage est
211−1 − 1 = 1024 − 1 = 1023.
Le tableau (1.2) donne la représentation de tous les cas possibles en simple précision.

Table 1.2 – Représentation en simple précision IEEE754

x exposant e mantisse m
x = 0 (si S = 0)
e=0 m=0
x = 0 (si S = 1)
Nombre normalisé
0 < e < 255 quelconque
x = (−1)S × 2e−127 × 1.m
Nombre dénormalisé
e=0 m≠0
x = (−1)S × 2e−126 × 0.m
x = In f (si S = 0)
e = 255 m=0
x = In f (si S = 0)
x = NaN(Not a Number) e = 255 m≠0

8
1.5. REPRÉSENTATION DES NOMBRES SUR ORDINATEUR

Les nombres dénormalisés suivent le même principe, sauf que e = −126 et m = 0 + mantisse
(attention : pour le calcul, on veillera à prendre e = −126 et non −127, ceci afin de garantir la
continuité de cette représentation avec la représentation normalisée, puisque m = 0 + mantisse
et non plus m = 1 + mantisse).

Remarques

• Il y a deux zéros : +0 et −0 (zéro positif et zéro négatif), selon la valeur du bit de signe ;
• Il y a deux infinis : +∞ et −∞, selon la valeur du bit de signe ;
• Les zéros et les nombres dénormalisés ont un exposant décalé de −127 + 127 = 0 ; tous les
bits du champ « exposant » sont donc à 0 ;
• Les NaNs et les infinis ont un exposant décalé de 128 + 127 = 255 ; tous les bits du champ «
exposant » sont donc à 1 ;
• Le nombre dénormalisé non nul le plus proche de zéro est ±2−149 ≈ ±1.4012985 × 10−45 ;
• Le nombre normalisé non nul le plus proche de zéro est 2−126 ≈ ±1.175494351 × 10−38 ;
• Le nombre normalisé dont la valeur absolue est la plus grande est ±(2 − 2−23 ) × 2127 ≈
±3.4028235 × 1038 .

Exemple

Codons le nombre décimal −118.625 en utilisant le mécanisme IEEE 754.


• Premièrement, nous avons besoin du signe, de l’exposant et de la partie fractionnaire. C’est
un nombre négatif, le signe est donc « 1 ».
• Puis nous écrivons le nombre (sans le signe) en binaire. Nous obtenons 1110110.101 (avec
multiplications par deux successives pour la partie décimale).
• Ensuite, nous décalons la virgule vers la gauche, de façon à ne laisser qu’un 1 sur sa gauche :
1110110.101 = 1.110110101 × 26 . C’est un nombre flottant normalisé : la mantisse est la par-
tie à droite de la virgule, remplie de 0 vers la droite pour obtenir 23 bits. Cela donne
11011010100000000000000 (on omet le 1 avant la virgule, qui est implicite).
• L’exposant est égal à 6, et nous devons le convertir en binaire et le décaler. Pour le format
32-bit IEEE 754, le décalage est 28−1 − 1 = 127. Donc 6 + 127 = 133 (dec) = 10000101 (bin).
On a donc −118, 625 (dec) = 11000010111011010100000000000000 (bin) = C2ED4000 (hexa).

Précision machine

La précision machine d’une arithmétique en virgule flottante est définie comme le plus petit
nombre positif e ps tel que
f loat(1 + e ps) > 1

C’est la distance entre l’entier 1 et le nombre machine le plus proche, qui lui est supérieur.

9
1.5. REPRÉSENTATION DES NOMBRES SUR ORDINATEUR

Pour une machine avec des mots dont la mantisse comporte p bits et lorsqu’on arrondit.
Prenons la représentation du nombre 1 et le plus proche nombre suivant :

1 = 1.000000 . . . 000 = 21 (1.5)


> 1 = 1.000000 . . . 001 = 21 + 2−p (1.6)

Par exemple, pour la simple précision IEEE754, e ps = 2−23 ≈ 1.19209289550781e − 07

10

Vous aimerez peut-être aussi