Chapitre 1 : Arithmétique des calculateurs

Telechargé par pape malick thiam
Chapitre 1
Arithmétique des calculateurs
1.1 Intoduction
L’analyse numérique est le domaine des mathématiques où l’on conçoit et étudie
des méthodes de résolution de certains problèmes mathématiques, en général issus de
la modélisation de phénomènes réels, et dont on cherche à calculer la solution ou son
approximation à l’aide d’un calculateur.
Elle permet de résoudre des probl `mes que l’on ne sait pas résoudre autrement ou
"mieux" qu’on ne le faisait avant.
L’omniprésence des calculatrices de toutes sortes, en général, des ordinateurs en
particulier, facilite l’utilisation des calculateurs numériques dans la conduite de cer-
tains calculs. Cependant cette utilisation impose des contraintes. Ces contraintes sont
généralement peu gênantes mais les cas où elles risquent de fausser les solutions sont
parfois importants. L’utilisateur doit nécessairement être conscient des limites de ces
moyens de calcul pour éviter des coûts dûs aux erreurs de calcul.
Aussi sophistiqué qu’il soit, un calculateur ne peut fournir que des réponses ap-
proximatives. On a trois catégories de sources d’erreurs :
Erreurs liées à la machine ;
Ereurs liées à la méthode (algorithme) ;
Erreurs sur les données (résultat d’un calcul approché, d’une mesure physique...).
1.2 Représentation des nombres
L’ensemble des nombres utilisés par un calculateur est discret et fini. Donc, si
nous fournissons une donnée xRau calculateur, il l’approxime par un élément,
que nous notons fl(x)), de l’ensemble des nombres qu’il peut manipuler. L’erreur
E(x) = xfl(x)est en général non nulle et dépend à la fois de xet du calculateur.
En notation flottante, un nombre réel xest représenté sous la forme
x=±y×be,
où :
1
b est la base du système numérique utilisé ;
y= 0.y1y2...ys,sfixé, est la mantisse ;
eest l’exposant (un nombre entier relatif).
La caractéristique sest inhérente au calculateur tandis que yet edépendent de x.
En particulier, si x6= 0, alors y16= 0.
Pour les besoins de ce cours, nous prenons b= 10.
Il existe deux façons d’obtenir l’approximation f l(x)à partir du développement dé-
cimal d’un nombre réel x:
a) Troncature : On garde les spremiers chiffres du développement.
Exemple 1.2.1 On a π= 3.1415925.... Pour s= 5,fl(π) = 0.31415 ×101.
C’est la méthode employée sur la plupart des gros ordinateurs.
b) Arrondi : On ajoute 5au s+ 1 ième chiffre du developpement, puis on
tronque.
Exemple 1.2.2 Si s= 5, alors fl(π)=0.31416 ×101.
C’est la méthode employée sur la plupart des calculateurs de poche.
Dans la suite, nous utiliserons le système d’arrondi.
1.3 Arithmétique flottante
Pour effectuer une opération sur deux nombres réels, on effetue l’opération sur
leurs représentations flottantes, puis on prend la représentation flottante du résul-
tat. Soient xet ydeux réels quelconques, on définit les opérations de l’arithmétique
flottante suivantes :
Addition flottante :xy=fl(f l(x) + f l(y));
Soustraction flottante :xy=fl(f l(x)f l(y));
Multiplication flottante :xy=fl(f l(x)×f l(y));
Division flottante :xy=fl(f l(x)÷f l(y)), f l(y)6= 0.
(1.1)
Exemple 1.3.1 Calculer en arithmétique flottante 133 ×(722 + 444), puis (133 ×
722) + (133 ×444) avec s= 3.
Comparer les résultats obtenus.
2
Solution
On a :
133 (722 444) = flf l(133) ×f l722 444
=flf l(133) ×f lf l(722) + f l(444)
=fl0.133 ×103×f l0.722 ×103+ 0.444 ×103
=fl0.133 ×103×f l1.166 ×103
=fl0.133 ×103×0.117 ×104
=fl0.015561 ×107
= 0.156 ×106.
133 722 = flf l(133) ×f l(722)
=fl0.133 ×103×0.722 ×103
=fl0.096026 ×106
= 0.960 ×105.
133 444 = flf l(133) ×f l(444)
=fl0.133 ×103×0.444 ×103
=fl0.059052 ×106
= 0.591 ×105.
On a donc
(133 722) (133 444) = flf lf l(133) ×f l(722)f lf l(133) ×f l(444)
=fl(0.960 ×105+ 0.591 ×105)
=fl(1.551 ×105)
= 0.155 ×106.(1.2)
Remarque 1.3.2 On constate que
133 (722 444) 6= (133 722) (133 444).
En arithmétique flottante, la multiplication n’est pas distributive par rapport à l’addi-
tion.
Exemple 1.3.3 Soit l’équation x+ 1 = 1 dont l’unique solution est 0dans R.
Résoudre cette équation en arithmétique flottante avec s= 3.
3
Solution
On a x1 = 1 flfl(x) + f l(1)=f l(1).
Posons x0= 0.4×103. On a
x01 = flf l(x0) + f l(1)
=fl0.4×103+ 0.1×101
=fl0.10004 ×101
= 1.(1.3)
Pour tout xvérifiant |x| ≤ 0.4×103, on a x1 = 1, donc il y a une infinité de
solutions.
Les deux exemples précédents montrent qu’en arithmétique flottante, certaines pro-
priétes fondamentales de l’arithmétique ne sont pas respectées.
Dans la pratique, il faudra se souvenir que deux expressions algèbriquement équiva-
lentes peuvent fournir des résultats différents sur un calculateur 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 ex-
posants sont les mêmes. On transforme le plus petit exposant et donc on ne respecte
plus la règle voulant que le premier chiffre de la mantisse soit non nul.
1.4 Calculs et sources de grandes erreurs
1.4.1 Phénomène de cancellation
a) Chiffres significatifs
Définition 1.4.1 Dans la représentation décimale d’un nombre :
un chiffre non nul est toujours significatif ;
le chiffre 0 est significatif quand il est placé entre deux chiffres significatifs ;
le chiffre 0 n’est jamais significatif quand il précède tous les chiffres non nuls ou
quand il représente un chiffre significatif qu’on ignore ;
Exemple 1.4.2 3.14,1234,56.607,880.077 : chaque nombre a tous ses chiffres
significatifs ;
0.0012 : on a deux chiffres significatifs ;
0.0701,0.100,0.00770 : chaque nombre a trois chiffres significatifs ;
12500000 : tous les chiffres sont significatifs.
b) Phénomène de cancellation En arithmétique flottante, lorsqu’on soustrait
deux nombres proches, des chiffres significatifs sont perdus au profit de zéros non
significatifs. Dans un tel cas, l’importance relative des erreurs d’arrondi peut être
considérablement accentuée, c’est le phénomène de cancellation.
4
Exemple 1.4.3 Calculons 6001 6000 avec s= 8.
On a 6001 6000 = flf l6001f l6000
=flf l(77.4661216275) f l(77.4596669241)
=fl0.77466122 ×10277.459667 ×102
=fl0.00006455 ×102
= 0.64550000 ×102.(1.4)
Remarquons que les quatre derniers zéros ne sont pas significatifs puisqu’ils résultent
de l’écriture des résultats en arithmétique flottante. A priori, cela n’est pas grave
mais lorsqu’on utilisera le résultat obtenu dans un calcul subséquent, ces zéros non
significatifs joueront un rôle et détruiront la précision. Cependant, pour obtenir un
résultat plus précis, nous pouvons utiliser l’identité suivante :
6001 6000 = 6001 60006001 + 6000
6001 + 6000 =1
6001 + 6000·
Donc
6001 6000 = 1 ÷
(6001 6000) = 0.64547032 ×102.
1.4.2 Calcul de sommes à termes positifs, ordre de sommation
Exemple 1.4.4 Calculons
S= 100 0.10.1 + ... 0.1
| {z }
10 termes
et
S0= 0.10.1 + ... 0.1
| {z }
10 termes 100.
On trouve S= 100 et S0= 101.
Pour le calcul de S, tous les termes valant 0.1sont perdus lorsque l’on arrondit. Dans
la pratique, il est préférable de sommer une série à termes positifs par ordre croissant.
De manière général, en arithmétique flottante, le calcul d’une somme S=
n
X
i=1
aise
fait en formant la suite des sommes partielles :
S1=fl(a1)
S2=S1a2
.
.
.
Sn=Sn1an.
Le résultat est alors SSn. Cependant, l’arithmétique flottante n’est pas associative
et l’ordre dans lequel nous sommons les aipeut aussi changer la valeur de la somme
Sn.
5
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!