Chap 1 CS 23 24

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 18

Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Analyse d’erreurs

Z. ANKHILI

ENSA de Marrakech

Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 1/18


Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Les calculatrices et les ordinateurs permettent de faire beaucoup


d’opérations rapidement par rapport à l’être humain. Cependant,
pour que les machines soient capable de faire ces calculs, il faut les
programmer et donc écrire des algorithmes. C’est l’objectif
essentielle de l’analyse numérique qui s’est développée avec
l’apparition des ordinateurs. Mais faire beaucoup d’opérations ne
veut pas dire faire n’importe quoi : les méthodes ont un coût lié
d’une part au temps de calcul (i.e. nombre d’opérations
élémentaires, additions, soustractions multiplications et divisions) à
faire et d’autre part à l’espace mémoire nécessaire pour stocker les
données et les résultats. Par ailleurs, l’ordinateur ne fait pas de
calcul exact
√ à cause de représentation des nombres réels (par
exemple 2 = 1, 412135...). Ceci constitue un inconvénient car il
provoque des erreurs d’arrondi et de troncature. L’objectif de
l’analyse numérique est de développer des algorithmes de les
comparer entre eux et de les étudier afin de sélectionner les bons
algorithmes.
Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 2/18
Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Ecriture en base b

La représentation des nombres que nous utilisons quotidiennement


est la représentation en base 10 mais les ordinateurs travaillent en
base 2 (représentation binaire) ou en base 8 ou encore en base 16.
Définition 1
Soit b un entier > 1. ∀n ∈ IN∗ ∃!p ∈ IN, ∃di , i = 0, ..., p avec
0 ≤ di ≤ b − 1 et dp ̸= 0 tel que
p
X not b
n= di bi = dp dp−1 ...d1 d0
i=0

Exemple 1
En base 10
234 = 2 ∗ 102 + 3 ∗ 101 + 4 ∗ 100

Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 3/18


Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Exemple 2
En base 2
234 = 2 ∗ 217
= 2 ∗ (2 ∗ 58 + 1)
= 2 ∗ (2 ∗ 2 ∗ 29 + 1)
= 2 ∗ (2 ∗ 2 ∗ (2 ∗ 14 + 1) + 1)
= 2 ∗ (2 ∗ 2 ∗ (2 ∗ 2 ∗ 7 + 1) + 1)
= 2 ∗ (2 ∗ 2 ∗ (2 ∗ 2 ∗ (2 ∗ 3 + 1) + 1) + 1)
= 2 ∗ (2 ∗ 2 ∗ (2 ∗ 2 ∗ (2 ∗ (2 ∗ 1 + 1) + 1) + 1) + 1)
2
= 27 + 26 + 25 + 23 + 2 = 11101010

Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 4/18


Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

En utilisant la division Euclidienne


Reste 234 2
0 117 2
1 58 2
0 29 2
1 14 2
0 7 2
1 3 2
1 1 2
1 0

En base 8
Reste 234 8
234 = 8 ∗ 29 + 2
2 29 8
= 8 ∗ (8 ∗ 3 + 5) + 2)
5 3 8
= 3 ∗ 82 + 5 ∗ 8 + 2
8 3 0
= 352

Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 5/18


Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

En base 16, on utilise les nombres 0 à 9 puis les lettres A, B, C, D,


E, F.
234 = 16 ∗ 14 + 10 Reste 234 16
= EA
16 10 14 16
14 0
On généralise cette écriture aux nombres réels en prenant en
considération que le nombre des chiffres après la virgule étant
infini. La somme va donc de −∞ à p.
Définition 2(Ecriture en base b )
Soit b un entier > 1. ∀x ∈ IR∗ ∃!p ∈ IN, ∃di , i ≤ p avec
0 ≤ di ≤ b − 1 tel que
p
X not b
x= di bi = dp dp−1 ...d1 d0 , d−1 ...d−p ...
i=−∞

Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 6/18


Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Exemples
1
En base 10, on a 0, 625 = 0 ∗ 100 + 6 ∗ 10 + 2 ∗ 1012 + 5 ∗ 1013
En base 2 on a 0, 625 = 0, 500 + 0, 125
= 1 ∗ 12 + 0 ∗ 212 + 1 ∗ 213
2
= 0, 101
Pour trouver le résultat facilement, on multiplie le nombre fois
2 puis on retranche la partie entière et on multiplie le résultat
fois 2 et on refait le processus.
0, 625 multiplication *2 partie entière
1, 25 1
0, 5 0
1 1
0
En base 8, on a 0, 625 = 5 ∗ 18
8
= 0, 5
1
En base 16, on a 0, 625 = 10 ∗ 16
16
= 0, A
Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 7/18
Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Représentation des nombres en machines


Dans un ordinateur, les nombres sont représentés en virgule
flottante.
Définition 3
Soit x ∈ IR∗ , en virgule flottante x s’écrit :
f l(x) = ±0, a1 ...aN .bE (on lit float x) avec
b ∈ IN∗ est la base
a = 0, a1 ...aN est appelé la mantisse, 0 ≤ ai < b et a1 ̸= 0
E ∈ Z est l’exposant compris entre deux entiers m et M
N est le nombre de chiffres significatives

Remarque
Si E < −m où E > M , le réel considéré ne peut pas être
représenté en virgule flottante dans ce système. L’ordinateur ne
connaı̂t pas ce nombre . On parle d’underflow si E < −m ou
d’overflow si E > M
Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 8/18
Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Définition 4 (Arrondi)
Soit x un réel dont la représentation en virgule flottante est
f l(x) = ±0.a1 ...aN aN +1 .be . Si la machine considérée n’a que N
chiffres significatifs, il faut définir l’arrondi de x :Ar(x).
b
Si aN +1 > , alors Ar(x) = ±0, a1 ...aN + 1.be
2
Si aN +1 < 2b , alors Ar(x) = ±0, a1 ...aN .be
b
Remarque: Le cas aN +1 = 2 est arbitraire

Example
f l(x) = 0, 1683674.1039
Si N=3, a4 = 3 < 5 donc Ar(x) = 0, 168.1039
Si N=4, a5 = 6 ≥ 5 donc Ar(x) = 0, 1684.1039
Si N=5, a6 = 7 ≥ 5 donc Ar(x) = 0, 16837.1039

Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 9/18


Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Définition 5 (Erreur relative)


L’erreur relative est
|x − Ar(x)|
Er =
|x|

Propriété
Er ≤ 2b .b−N (Précision machine)
L’erreur relative n’est définie que si x ̸= 0.

Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 10/18


Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Définition 6 (Erreur absolue )


∆x = |x − Ar(x)|

Remarque
En pratique, il est difficile d’évaluer les erreurs absolues et relatives
car on ne connaı̂t pas la valeur exacte de x. Dans le cas de
quantité mesurées, on dispose d’une borne supérieure pour cette
erreur qui dépend de la précision des instruments de mesure. Cette
borne est encore appelée erreur absolue et on a |x − Ar(x)| ≤ ∆x

Exemple
Si on utilise un chronomètre dont la précision est de l’ordre de
dixième de seconde, l’erreur absolue est donc bornée par 0,1s.

Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 11/18


Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Dans le contexte d’un marathon d’une durée de 2h20min,


l’erreur relative lié au chronomètre est
0, 1
= 0, 0000119
2 ∗ 60 ∗ 60 + 20 ∗ 60
C’est une erreur très faible et ne devrait pas avoir de
conséquence sur le classement des coureurs.
Si le même chronomètre est utilisé pour une course de 100 m
dont la durée est autour de 10s, alors l’erreur relative est
0,1
10 = 0, 01. Avec une telle erreur, on ne pourra pas distinguer
le premier du dernier.

Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 12/18


Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Source d’erreurs
Les erreurs commises dans les problèmes mathématiques peuvent
être classé en cinq catégories: les deux premiers sont regroupés
sous le nom d’erreurs de modélisation tandis que les trois derniers
sont appelés erreurs numériques.
Erreurs de modélisation
◦1 Erreurs de modèle : les erreurs sont dues au fait que les
modèles mathématiques sont plus au moins idéalisés
◦2 Erreurs de mesure : ces erreurs sont dues à la présence dans le
modèle mathématique des paramètres numériques dont les
valeurs ne peuvent être déterminées qu’approximativement
suite à des mesures expérimentales. Telles sont toutes les
constantes physiques.
Erreurs numériques
◦ 3 Erreurs d’approximation ou de troncature : ce sont les erreurs
associées au processus infini en analyse mathématique par
exemple
1 1
e = 1 + + + ...
1! 2!
Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 13/18
Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Source d’erreurs

◦ 4 Erreurs d’arrondi : ce sont les erreurs associées au système de


numération. Elle sont dues au fait qu’un ordinateur ne peut
prendre en considération qu’un nombre fini de chiffres.
◦5 Erreur de propagation et génération: ce sont les erreurs qui
apparaissent dans le résultat d’une opération comme
conséquence des opérandes.

Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 14/18


Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Arithmétique flottante
Les opérations élémentaires sont l’addition, la soustraction, la
multiplication et la division. Soient x et y des réels. On effectue
ces opérations en arithmétique flottante de la façon suivante:
x + y −→ f l(f l(x) + f l(y))
x − y −→ f l(f l(x) − f l(y))
x ∗ y −→ f l(f l(x) ∗ f l(y))
x ÷ y −→ f l(f l(x) ÷ f l(y))
Chaque opération intermédiaire dans un calcul introduit une
nouvelle erreur d’arrondi ou de troncature.
Dans la pratique, il faudra se souvenir du fait que deux expressions
algébriquement équivalentes peuvent fournir des résultats différents
et que l’ordre des opérations peut changer les résultats.
Pour l’addition et la soustraction, on ne peut effectuer ces
opérations que si les exposants sont les mêmes. On transforme le
plus petit exposant et donc on ne respecte pas la règle voulant que
le premier chiffre de la mantisse ne soit pas nul.
Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 15/18
Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Non associativité

x + (y + z) = (x + y) + z mais f l(x + (y + z)) ̸= f l((x + y) + z)


Exemple Pour N=4
f l((1 + 0, 0005) + 0, 0005) = (0, 1000.101 + 0, 5.10−3 ) + 0, 5.10−3
= (0, 1000.101 + 0, 00005.101 ) + 0, 5.10−3
= (0, 1000.101 + 0, 0000.101 ) + 0, 5.10−3
= 0, 1000.101 + 0, 5.10−3
= 0, 1000.101 + 0, 0000.101
= 0, 1000.101
f l(1 + (0, 0005 + 0, 0005)) = 0, 1.101 + (0, 5.10−3 + 0, 5.10−3 )
= 0, 1.101 + 1.10−3
= 0, 1.101 + 0, 0001.101
= 0, 1001.101

Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 16/18


Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Propriété
Soit x = 0, x1 ...xN .be1 et y = 0, y1 ...yN .be2 . Si |e1 − e2 | > N alors
x ± y = x (y est trop petit par rapport à x)

Exemple
N = 5. x = 0, 2345.105 et y = 0, 3456
f l(x) ± f l(y) = (0, 23450 ± 0, 00000) ∗ 105
= 0, 2345 ∗ 105
=x

Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 17/18


Introduction Ecriture en base b Représentation des nombres en machines Source d’erreurs Arithmétique flottante

Exemple de différence de deux nombres voisin


Calculer la√plus petite racine de x2 − 140x + 1. On a ∆′ = 4899,
x = 70 − 4899
= 70 − 69, 992
f l(x) = f l(f l(70) − f l(69, 992))
f l(x) = f l(0, 7.102 − 0, 69992.102 )
f l(x) = f l(0, 7.102 − 0, 6999.102 ) (On prend N = 4)
f l(x) = f l((0, 7 − 0, 6999) ∗ 102 )
= f l(0, 0001 ∗ 102 )
= 0, 1 ∗ 10−2
D’autre part,
f l(1) 
f l(x) = f l √
f l(f l(70) + f l( 4899))
0, 1 ∗ 101
=
f l((0, 7000 + 0, 6999) ∗ 102 )
= 0, 7143.10−2

Zakia ANKHILI Chapitre 1 Analyse d’erreurs ENSA Marrakech 2023-2024 18/18

Vous aimerez peut-être aussi