• Aucun résultat trouvé

Principe des calculs pour les quatre opérations

Dans le document MATHÉMATIQUES ET TI-Nspire (Page 168-172)

Annexe : les nombres hautement composés

Étape 1 : on décompose 1063 en base 2, en procédant à des divisions successives par 2

2. Opérations en arithmétique à virgule flottante

2.1 Principe des calculs pour les quatre opérations

Dans les exemples qui suivent, nous nous placerons dans le cas fictif d’une arithmétique à 3 chiffres significatifs et des exposants compris entre –15 et 15 ; nous supposerons que le dernier chiffre affiché, le troisième, est arrondi14.

On additionne en mettant en évidence un exposant commun (le plus grand), puis en effectuant l’opération, comme on procéderait à la main.

Étudions quelques exemples.

13 Nous avons montré et nous montrerons par la suite – du moins l’espérons-nous ! – combien la TI-Nspire ou son logiciel, bien utilisés, peuvent être extraordinairement performants… et d’une utilisation très commode.

14 Concrètement, cela induit que, d’une façon ou d’une autre, on connaisse le quatrième chiffre significatif… Mais nous n’entrerons pas dans les détails techniques d’architecture de la machine ou de l’ordinateur qui permettrait de résoudre ce point.

(+4,37  1011) + (+1,25  105) = (+4,37 + +0,00000125)  1011 = +4,37000125  1011 +4,37  1011.

Là encore, l’erreur commise n’est qu’une erreur d’affectation sur le résultat du calcul. Remarquons aussi qu’aucun des chiffres significatifs du deuxième terme n’a été pris en compte dans le résultat final, les nombres à ajouter étant de taille trop différente (la situation doit être évitée autant que possible lors de calculs répétés).

Voir par exemple l’exemple qui suit, sur une TI-Nspire :

Mathématiquement, dans ce cas particulier, tout revient à dire que l’on a l’égalité-machine x + z = x, bien que z soit non nul ! L’addition dans l’ensemble  des nombres calculatrice perd une propriété pourtant très élémentaire de l’addition des réels15.

Dans le même ordre d’idée, le nombre 1 possède un « successeur » dans l’ensemble des nombres machine : c’est 1 + 10–13 = 1,0000000000001, alors que 1 + 10–14 = 1.

10–13 est appelé l’epsilon machine : c’est la plus grande valeur  telle que 1  1. Pour la TI-Nspire, on a vu que l’erreur relative d’affectation était égale à 5 10 14/ 2.

La soustraction fonctionne de façon analogue :

(+5,78  106) – (+3,23  105) = (+5,78 – +0,323)  106 = +5,457  106 +5,46  106 L’erreur commise est une erreur d’affectation sur le résultat du calcul.

Mais peuvent se produire des disparitions de chiffres significatifs, lorsque l’on soustrait deux nombres très proches : comme ils sont proches, ils ont des chiffres en commun, qui disparaissent par soustraction. Cette disparition accroît fortement l’erreur sur le résultat. On parle alors de différence évanescente ou parfois d’erreur de cancellation.

15 Elle en perdra beaucoup d’autres, comme on le verra dans la suite… ce qui n’empêche pas la calculatrice ou l’ordinateur d’être un outil

Prenons un exemple, en calculant x – y, où x = +3,24  105 et y = +3,23  105.

x – y = (+3,24  105) – (+3,23  105) = (+3,24 – +3,23)  105 = +0,01  105 = 1,00  103 = 1000 La situation peut paraître anodine ainsi présentée… car les calculs qui sont faits dans ce cas sont corrects, bien évidemment, puisqu’on raisonne déjà sur des nombres machine…

Mais dans la pratique, c’est rarement le cas ! Les nombres qui interviennent ont presque toujours été arrondis : ainsi, x peut provenir par exemple de 324 499, arrondi à 324 000 = +3,24  105 et y de 323 000.

x – y en réalité vaudra 1499, à rapprocher du 1000 donné par la calculatrice : 3 chiffres significatifs ont été écartés du calcul. L’erreur absolue est de 499, tandis que l’erreur relative s’élève à calculatrice renverra dans tous les cas 1000… L’erreur commise peut devenir importante.

Plus généralement, l’erreur de cancellation intervient lorsque l’on soustrait deux nombres x et y proches, ayant de nombreux chiffres en commun… qui vont disparaître par soustraction16, comme dans l’exemple qui suit :

C’est une erreur fréquente, qui peut être redoutable et perturber profondément le résultat d’un calcul.

Nous verrons dans le paragraphe suivant quelques exemples où cette erreur intervient et comment la contourner.

 Poursuivons avec la multiplication ou la division. On multiplie, ou on divise, en multipliant, ou en divisant, les mantisses et en additionnant, ou en soustrayant, les exposants. Ainsi :

(+1,25  105)  (–1,28  105) = (+1,25  –1,28)  1010 –1,60  1010

Dans ce cas, le produit des deux nombres machine est bien un nombre machine. Mais il arrive, comme pour l’addition, que l’on perde des chiffres significatifs, lorsque le résultat obtenu dépasse les capacités d’affichage de la calculatrice. On commet alors l’équivalent d’une erreur d’affectation par arrondi sur le résultat du calcul. Ainsi :

(+1,25  105)  (+6,57  106) = (+1,25  +6,57)  1011 = 8,2125  1011 8,21  1011 (+1,25  105) / (+4,37  1011) = (+1,25 / +4,37)  10–6

 +0,286041  10–6 +2,86  10-7

16 C’est le principal problème que l’on rencontre avec les additions-soustractions : à tel point que si l’on peut éviter de faire une soustraction par transformation algébrique, on ne s’en privera pas, quitte à ce que les calculs soient plus compliqués !

(+2,15  10–11) / (+4,37  1011) = (+0,215 / +0,437)  10–22

 +0,491990  10–22  4,91  10–22 …underflow…

La TI-Nspire remplace le résultat par 0 quand elle rencontre un underflow, et ne renvoie aucun message d’avertissement. Il est vrai que, dans ce cas et contrairement à l’overflow, l’erreur commise est souvent très petite.

 Les quelques exemples précédents tendent à montrer que l’erreur commise lors d’une opération arithmétique, sauf dans le cas d’une situation de différence évanescente, d’un overflow ou d’un underflow, n’est rien d’autre qu’une erreur d’affectation sur le résultat obtenu : nous admettrons que c’est bien le cas en général.

Tenant compte du théorème établi plus haut, on peut alors affirmer que : Soit * une des quatre opérations arithmétiques +, –,  et /.

Hors cas de différence évanescente, d’overflow ou d’underflow, l’erreur produite sur l’opération * satisfait à l’inégalité :

 

* fl * 5 * 10 t

A BA BA B p

avec p = 1 dans le cas de l’arrondi et p = 2 dans le cas de la troncature.

Malheureusement on ne dispose pas toujours d’un résultat analogue pour les fonctions mathématiques

Nous avons vu que cette situation pouvait introduire des erreurs importantes dans un calcul ; comme de plus, les calculs que l’on effectue à la calculatrice sont rarement isolés, ces erreurs se propagent et peuvent ôter tout sens à un résultat renvoyé.

La situation doit donc être identifiée lorsqu’elle survient, et contournée si c’est possible.

Facile à diagnostiquer en fait : elle n’est susceptible d’apparaître qu’avec des différences… une façon de contourner le problème est de bannir purement et simplement, lorsque c’est possible, les différences dans un calcul. D’autant que la difficulté peut souvent être contournée par un calcul analytique.

Quelques exemples montrent ci-après comment on peut procéder.

Soit à calculer 1 1

123456001 123456002 . Sans précaution la calculatrice renvoie :

Remarquons que le résultat n’affiche plus que 6 chiffres significatifs, alors que la calculatrice peut en gérer jusqu’à 14. Cette perte de chiffres significatifs est caractéristique d’une situation de différence évanescente.

On constate que la simple transformation algébrique du calcul nous permet de récupérer 14 chiffres significatifs, au lieu des 6 précédents. On voit bien dans cet exemple tout l’intérêt qu’il y a à se débarrasser de la soustraction… puisque c’est possible !

Dans le document MATHÉMATIQUES ET TI-Nspire (Page 168-172)