Académique Documents
Professionnel Documents
Culture Documents
Chapitre 1
Arithmétique de l’ordinateur
M. L-LAHLOU
Filières SMA4/SMI4
Département de Mathématiques
Faculté des Sciences Semlalia
Marrakech
28/02/ 2022
1 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
4. Arithmétique flottante
5. Instabilité numérique
2 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Sources d’erreurs numériques
4. Arithmétique flottante
5. Instabilité numérique
3 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Sources d’erreurs numériques
4 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des entiers
4. Arithmétique flottante
5. Instabilité numérique
5 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des entiers
Codage des entiers naturels
4. Arithmétique flottante
5. Instabilité numérique
6 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des entiers
Codage des entiers naturels
n = ap ap−1 · · · a0
= ap × 10p + ap−1 × 10p−1 + · · · + a0 , ai ∈ {0, 1, .., 9}
On note en abrégé
(ap ap−1 · · · a0 )b
Pour b = 2, les ak = 0 ou 1 appelés bits. C’est le système numérique
des machines. 7 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des entiers
Codage des entiers naturels
b Système
10 décimal
2 binaire
8 octal
16 hexadécimal
Remarque 1
Pour la base héxadécimale, les digits sont ak = 0, 1, · · · , 15. Par
convention, on adopte la notation suivante pour ak = 10, · · · , 15.
10 A
11 B
12 C
13 D
14 E
15 F
8 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des entiers
Codage des entiers naturels
Changement de base
Ecriture décimale :
L’interaction homme-machine se fait en base 10.
Il est toujours facile de convertir une représentation en base b en
son écriture décimale.
Exemples :
1 × 23 + 0 × 22 + 0 × 21 + 1 × 20 = (1001)2 = 910
3 × 81 + 1 × 80 = (31)8 = 2510
x = (ap ap−1 · · · a0 )b = b × q + r
D’où l’algorithme :
10 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des entiers
Codage des entiers naturels
4. Arithmétique flottante
5. Instabilité numérique
12 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des entiers
Codage des entiers relatifs
Entiers relatifs
san−2 · · · a0
| {z }
n−1
13 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des entiers
Codage des entiers relatifs
00000011 = 3
+ 10000100 = −4
10000111 = −7 ← faux
14 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des entiers
Codage des entiers relatifs
Règle de complément à 2
Pour un entier relatif x < 0, on représente 2n + x à la place de x.
Par exemple x = −105 sur n = 8bits :
on représente 28 − 105 = 151 = 27 + 24 + 22 + 21 + 20 ⇒ (10010111)2 .
Vérifions que 105 − 105 = 0 :
0 1 1 0 1 0 0 1 ← 105
+ 1 0 0 1 0 1 1 1 ← −105
0 0 0 0 0 0 0 0 ←0
15 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des entiers
Codage des entiers relatifs
01100 ← −x = 12
10011
+ 1
10100 ← −12
On a 25 − 12 = 20 = (10100)2
16 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des entiers
Codage des entiers relatifs
01111 ← +15
+ 10100 ← −12
00011 ← +3
Théorème 1
Une machine qui code les entiers relatifs sur n bits peut représenter en
utilisant la règle de complément à 2 les entiers de −2n−1 à 2n−1 − 1.
Les PC modernes ont un processeurs de 64 bits. Donc on peut coder
les entiers dans [−263 , 263 − 1].
17 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des entiers
Codage des entiers relatifs
Dépassement de capacité :
Soit une machine qui code sur 8 bits et effectuons 72 + 59 = 131 en
base 2
0 1 0 0 1 0 0 0 : 72
+ 0 0 1 1 1 0 1 1 : 59
1 0 0 0 0 0 1 1 : −125
Absurde : en effet sur 8 bits les seuls nombres représentables sont
dans [−27 , 27 − 1] = [−128, 127].
Concusion : sur une machine donnée, on ne peut représenter qu’une
partie finie B ⊂ Z.
18 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
4. Arithmétique flottante
5. Instabilité numérique
19 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Représentation dans une base
4. Arithmétique flottante
5. Instabilité numérique
20 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Représentation dans une base
21 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Représentation dans une base
Plus généralement
Définition 1
un réel x en base β est
22 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Représentation dans une base
Changement de base :
vers le système décimal :
(11001.01101)2 = 24 + 23 + 1 + 2−2 + 2−3 + 2−5
= (25.40625)10
(1AC.2B)16 = 162 + 10 × 16 + 12 + 2 × 16−1 + 11 × 16−2
= (428.1250000078093)10
vers le système binaire :
(0.5)10 = 2−1 = (0.1)2
3.375 = 3 + 0.375
On a pour la partie entière :
3 = (11)2
méthode pour la partie fractionnaire :
2 × 0.375 = 0.75 → b1 = 0
2 × 0.75 = 1.5 → b2 = 1
2 × (1.5 − 1) = 1.0 → b3 = 1
23 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Représentation dans une base
Donc
0.375 = (0.011)2
3.375 = (11.011)2
Répéter :
Calculer y = 2 ∗ x
si y < 1 alors
b1 = 0
fin
sinon
b1 = 1 : poser x = y − 1
fin
Ansi de suite ...
jusqu’à x = 0 ou atteindre la limite de précision machine.
24 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Représentation dans une base
Attention
un nombre dont la partie fractionnaire est finie dans une base peut
donner lieu à une partie fractionnaire infinie dans une autre.
Convertissons x = (0.1)10 = 10−1 en binaire
2 × 0.1 = 0.2 b1 = 0
2 × 0.2 = 0.4 b2 = 0
2 × 0.4 = 0.8 b3 = 0
2 × 0.8 = 1.6 b4 = 1
2 × 0.6 = 1.2 b5 = 1
2 × 0.2 = 0.4 b6 = 0
..
.
Donc
(0.1)10 = (0.000110011 · · · )2
25 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Virgule flottante normalisée : v.f.n.
4. Arithmétique flottante
5. Instabilité numérique
26 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Virgule flottante normalisée : v.f.n.
27 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Virgule flottante normalisée : v.f.n.
t
!
X
s −k
x = (−1) dk β β e = (−1)s (0.d1 d2 · · · dk · · · dt ) × β e (2)
k=1
Définition 2
avec 0 ≤ dk ≤ β − 1, d1 6= 0, m = 0.d1 · · · dt est appelée mantisse et les
dk sont les bits, digits ou chiffres significatifs.
Le stockage se fait de la manière suivante :
un bit pour le signe s
t nombre fini de bits de la mantisse
e est l’exposant, entier relatif borné dans un intervalle
[emin , emax ], emin < 0, emax > 0 représenté aussi en bits (dont un
bit pour le signe).
Les chiffres t, emin , emax sont caractéristiques de la machine.
Le nombre 0 a une représentation à part.
On remarquera qu’en base β = 2 le 1er bit de m est toujours d1 = 1.
28 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Virgule flottante normalisée : v.f.n.
Proposition 1
La mantisse m d’une représentation v.f.n. vérifie :
1
≤ m ≤ 1 − β −t < 1
β
Démonstration.
En effet, la plus petite valeur dePtd1 6= 0 est 1 et 0 ≤ dP
k < β pour
t
k = 2, · · · , t. Donc β −1 ≤ m = k=1 dk β −k ≤ (β − 1) k=1 β −k =
β −1 − β −t−1
(β − 1) = 1 − β −t < 1
1 − β −1
29 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Virgule flottante normalisée : v.f.n.
30 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Virgule flottante normalisée : v.f.n.
La représentation sur ordinateur des réels est en binaire avec l’une des
deux précisions :
Simple précision sur 32 bits :
s e m
1 bit 8 bits 23 bits
Double précision sur 64 bits :
s e m
1 bit 11 bits 52 bits
31 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Erreurs de représentation
4. Arithmétique flottante
5. Instabilité numérique
32 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Erreurs de représentation
Erreurs de représentation
33 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Erreurs de représentation
34 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Erreurs de représentation
35 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Erreurs de représentation
Définition 4
On appelle précision machine M la plus grande erreur relative
commise en représentant un nombre en utilisant la troncature.
La précision machine dépend de l’appareil utilisé et du nombre de
digits de la mantisse.
Théorème 2
Soit une machine de précision t digits pour la mantisse la précision
machine vérifie :
M ≤ β 1−t
37 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Représentation des réels
Erreurs de représentation
4. Arithmétique flottante
5. Instabilité numérique
39 / 50
Arithmétique flottante
Les erreurs de représentations ont des conséquences plus ou moins
graves sur les opérations classiques. On appelle ces opérations :
arithmétique flottante.
Pour simplifier les calculs, on choisit le système décimal.
Opérations élémentaires :
Ces opérations sont effectuées et notées de la manière suivante :
Soient x, y deux nombres réels
x⊕y f l(f l(x) + f l(y)) addition
x y f l(f l(x) − f l(y)) soustraction
x⊗y f l(f l(x) × f l(y)) multiplication
xy f l(f l(x) ÷ f l(y)) division
Exemples sur une machine à t = 4bits
Multiplication
1.429 ⊗ 13 = f l(f l(1.429) × f l(13))
= f l(0.1429 × 101 × 0.1300 × 102 )
= f l(0.018577 × 103 )
= 0.1858 × 102
Chapitre 1 [1em] Arithmétique de l’ordinateur
Arithmétique flottante
41 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Arithmétique flottante
Addition et Soustraction :
Règle :
ajouter des 0 dans la mantisse du nombre qui a le plus petit exposant
(aligner avec le plus grand exposant)
Exemple. pour t = 4
42 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Arithmétique flottante
Prudence !
Il faut faire attention pour les opérations addition ou soustraction :
phénomène d’absorption.
Lorsqu’on effectue x ± y, où l’ordre de grandeur de y est beaucoup
plus petit que celui de x.
Exemple. pour t = 4, x = 0.7654 × 102 , y = 0.4856 × 10−2 .
Calculons en arithmétique flottante x ⊕ y
43 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Arithmétique flottante
Non distributivité :
La distributivité n’est pas toujours vérifiée en arithmétique flottante.
On a : 122 × (333 + 695) = 122 × 333 + 122 × 695 = 125416
Opérations en arithmétique flottante pour t = 3 :
= f l(0.012566 × 107 )
= 0.126 × 106
44 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Arithmétique flottante
donc
122 ⊗ (333 ⊕ 695) 6= 122 ⊗ 333 ⊕ 122 ⊗ 695
45 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Instabilité numérique
4. Arithmétique flottante
5. Instabilité numérique
46 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Instabilité numérique
Instabilité numérique
Définition 5
Algorithme : une démarche qui décrit, à l’aide d’opérations
élémentaires, toutes les étapes nécessaires à la résolution d’un
problème spécifique.
Lorsqu’une erreur de donnée, de représentation ou de calcul est
commise dans un algorithme, elle est transmise dans les calculs
suivants :
on parle de Propagation ou accumulation d’erreurs.
Celà peut aboutir à des résultats peu précis, voir aberrants.
La méthode ou l’algorithme qui cause ce type d’erreurs est dit
numériquement instable.
Exemple. Soit à calculer pour n ≥ 0 donné les termes de la suite
récurrente définie par : u0 = 1/3, un+1 = 1 − 2un .
En théorie, c’est une suite stationnaire où tous les termes valent 1/3.
47 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Instabilité numérique
n un
1 0.333333
2 0.333333
.. ..
. .
40 0.333313
.. ..
. .
80 -22369621.000000
Explication.
u0 ne peut être calculée exactement,
mais avec une petite erreur 0 .
Cette erreur a des conséquences sur le calcul de un .
48 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Instabilité numérique
En effet,
supposons que un−1 est calculée avec une erreur n−1 ,
alors
un + n = 1 − 2(un−1 + n−1 ), n = 1, 2, · · ·
Les erreurs successives vérifient la relation n = −2n−1 . Donc
n = (−2)n 0
49 / 50
Chapitre 1 [1em] Arithmétique de l’ordinateur
Instabilité numérique
Soit k > n
1
initialiser uk = valeur proche de
3
un = (1 − un+1 )/2, n = k − 1, k − 2, · · ·
50 / 50