View
1
Download
0
Category
Preview:
Citation preview
Christian Vassard (IUFM Rouen)
9
Ch
ap
itre
Vouloir faire des mathématiques avec une calculatrice, ou un ordinateur, semble relever de la
gageure ! En effet, d’un côté, un mathématicien travaille de façon symbolique avec des nombres très
variés, comme 1/3 ou 2 ou encore , c’est-à-dire des nombres qui bien souvent possèdent un nombre
illimité de chiffres après la virgule. De l’autre, du fait des incontournables contraintes matérielles, les
représentations de nombres dans un microprocesseur sont bien évidemment bornées.
Toute la question est de savoir comment le caractère intrinsèquement fini de la calculatrice peut
rendre compte de l’infini des mathématiques. Nous nous proposons dans ce chapitre de donner
quelques éléments de réflexion sur ces problèmes importants.
Sommaire
Chapitre 9. Arithmétique de la calculatrice.......................................................... 151
1. Nombres machine et … nombres réels ................................................ 152
1.1 Mode exact ou approché ? ........................................................... 152
1.2 Avec quels nombres une calculatrice travaille-t-elle ? ............. 153
1.3 Et les nombres réels des mathématiciens ? ............................. 155
1.4 L’erreur d’affectation ..................................................................... 157
2. Opérations en arithmétique à virgule flottante .................................... 162
2.1 Principe des calculs pour les quatre opérations ....................... 162
2.2 Les différences évanescentes ..................................................... 166
2.3 Dépassement de capacité ............................................................ 168
3. Un exemple de propagation des erreurs d’arrondi ............................. 170
3.1 De l’influence des opérations sur le résultat obtenu ................ 170
3.2 Bilan de ces différents calculs… ................................................. 171
3.3 Propagation des erreurs d’arrondi .............................................. 172
3.4 Correction de l’arithmétique de la calculatrice .......................... 174
4. Résoudre une équation du second degré dans les réels .................. 177
4.1 La méthode naturelle .................................................................... 177
4.2 Vers une fonction plus performante ........................................... 177
BILAN : autour de l’ensemble des nombres calculatrice ......................... 180
Chapitre 9.
Arithmétique de la
calculatrice
152 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
1. Nombres machine et … nombres réels
1.1 Mode exact ou approché ?
Avec l’unité nomade, on accède à ce réglage avec la touche ~ (menu Fichier, Réglages, Réglages
du classeur sur le logiciel) :
Le mode Exact renvoie toujours un résultat exact – en cas d’impossibilité de calcul, le résultat qui a
été saisi ; le mode Approché renvoie toujours un résultat approché, comme une calculatrice
traditionnelle ; le mode Auto combine les deux : exact quand c’est possible, approché sinon.
Ci-dessous quelques exemples de calculs dans les différents modes :
mode Exact mode Approché
mode Auto
Arithmétique de la calculatrice 153
© T³ France 2010 / Photocopie autorisée
Une ruse que nous utiliserons parfois : il suffit dans un calcul, quel que soit le mode choisi,
d’introduire un nombre « à virgule », comme 2.718 pour que le résultat soit donné en mode approché.
Notamment, et nous ferons l’usage de cet artifice parfois, le simple fait de multiplier un résultat par
1.0 en donne une valeur approchée1 :
Nous profitons de ce menu pour régler le classeur à Flottant 12 : notons que c’est simplement un
paramètre concernant l’affichage des résultats car les calculs sont toujours effectués au maximum des
possibilités de la calculatrice.
1.2 Avec quels nombres une calculatrice travaille-t-elle ?
Les constructeurs de calculatrices gardent jalousement le secret sur leurs systèmes de représentation
des nombres : on n’en trouve pas trace dans la notice de la TI-Nspire. Mais on peut penser, sans
prendre trop de risques, que TI s’appuie pour la TI-Nspire sur le principe de codage Décimal Codé
Binaire (DCB) qui se distingue dans sa forme des codages dits IEEE, plus lourds, implantés sur les
ordinateurs.
Essayons d’appréhender la situation que l’on rencontre sur notre calculatrice : sans entrer dans des
détails techniques ardus, nous nous contenterons de comprendre ce que la calculatrice nous révèle de
son mode de fonctionnement à partir de l’affichage des résultats.
Travaillons d’abord en mode approché. Quel est le résultat renvoyé par exemple pour le nombre
réel 100 ?
D’une part, on peut lire un résultat, 5.18784831432E49, avec 12 chiffres significatifs (dont 1 chiffre
non nul avant la virgule).
Quand on « redescend » le résultat en ligne de commande, on constate que la calculatrice travaille en
fait avec 14 chiffres significatifs : elle utilise en fait deux chiffres supplémentaires, ici 1 et 6, qu’on
appelle des chiffres de réserve. Les chiffres de réserve lui servent notamment à arrondir le résultat
affiché.
D’autre part, apparaît un exposant de la puissance de 10, qui peut varier sur une TI-Nspire entre –999
et 999.
Sur cet autre exemple, seulement 11 chiffres significatifs s’affichent, car le dernier… est 0 (voir les
chiffres de réserve et l’arrondi qui en résulte).
1 … ce qui évite l’utilisation de approx ou la combinaison de touches /·.
154 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
Ci-dessous figurent quelques exemples de nombres :
Plus généralement, en mode approché, un nombre machine s’écrit sous la forme
1 2, ... 10p
Nx d d d
où N est le nombre de chiffres significatifs de la calculatrice, ici égal à 142, et où d1, d2, ..., dN sont des
chiffres du système décimal. Ce nombre est précédé d’un signe + ou –.
1 2, ... Nm d d d est appelé la mantisse du nombre x. Si l’on suppose de plus que d1 0 – ce que l’on
a observé sur la calculatrice – le nombre est dit écrit en virgule flottante normalisée : la mantisse m
est alors nécessairement comprise entre 1 et 9,999 999 999 999 9.
p est appelé l’exposant du nombre x : il peut varier sur une TI-Nspire entre –999 et 999.
Attention à bien utiliser la touche i pour saisir un nombre en virgule flottante : la multiplication par
une puissance de 10 donne un résultat équivalent, mais un calcul doit être effectué, qui prendra plus
de temps.
Comme on le voit sur l’écran précédent, le nombre saisi, en fonction de sa taille apparaîtra ou bien en
virgule flottante (si sa partie entière dépasse 12 chiffres), ou bien en écriture traditionnelle (sinon).
Cardinal de l’ensemble des nombres machine
Cet ensemble est fini : on l’oublierait presque tant la calculatrice semble capable d’effectuer
n’importe quel calcul. Il est facile d’en donner le cardinal. En effet, dans le système de représentation
des nombres réels de la calculatrice que nous venons de décrire, le nombre de nombres qui peuvent
être représentés exactement par la machine s’élève à :
2 9 1013
(2 999 +1) + 1.
En effet, on a : 2 possibilités pour le signe,
9 pour le choix de d1 (pas le 0),
1013
pour le choix de d2, ..., d14,
2 999 + 1 pour l’exposant (on n’oublie pas de rajouter 1 pour l’exposant 0),
et le zéro, pour lequel il faut rajouter 1 !
C’est un nombre colossal, égal à 359 820 000 000 000 001.
2 On compte ici les chiffres de réserve, au nombre de deux.
Arithmétique de la calculatrice 155
© T³ France 2010 / Photocopie autorisée
Nous appellerons dans ce chapitre l’ensemble de tous les nombres que la machine peut
représenter en virgule flottante.
Première différence de taille – nous en pointerons bien d’autres – : entre et : le premier est fini, le
second infini (il a même la puissance du continu).
La calculatrice en mode approché ne peut pas donc pas représenter tous les nombres réels, ni même
tous les décimaux ou tous les entiers…
Mais la calculatrice fonctionne aussi en mode exact. Elle peut aussi travailler :
de façon formelle avec des nombres comme 2, ou ou e ou i ;
avec des nombres entiers longs, allant jusqu’à un peu plus de 913 chiffres3.
On peut noter l’ensemble de tels nombres : de même que pour , l’ensemble est aussi un
ensemble fini.
Par ailleurs, la calculatrice est aussi capable d’effectuer du calcul formel avec des variables désignées
par une ou plusieurs lettres, représentant un nombre non précisé. On peut mener alors un calcul
comme on le ferait en mathématique : factorisation, développement, résolution d’équation, dérivation,
etc. Nous ne développerons pas ce point dans ce chapitre.
1.3 Et les nombres réels des mathématiciens ?
Première manifestation du conflit nombres réels-nombres machine. Tous les nombres réels ne sont pas
représentables exactement4 par la calculatrice :
soit qu’ils soient trop grands en valeur absolue et dépassent le plus grand nombre de la
calculatrice 9,999 999 999 999 9 10999
: on parle dans ce cas d’overflow5 ;
soit qu’ils soient trop proches de 0, plus précisément compris en valeur absolue entre 0 et
1 10–999
: on est alors dans une situation d’underflow ;
soit enfin, cas le plus fréquent, qu’ils soient compris strictement entre deux nombres machine,
par exemple 1/3 compris entre 0,333 333 333 333 33 et 0,333 333 333 333 34.
3 Cette dernière possibilité est absolument remarquable pour l’arithmétique. Nous en avons développé de nombreux exemples dans les
chapitres qui précèdent.
4 Sauf bien évidemment les nombres que l’on représente formellement, comme … Nous écarterons ce cas dans la suite du chapitre.
5 Ou dépassement de capacité ou encore de surpassement de capacité mais le mot anglais est le plus fréquemment employé. Pour underflow,
le mot sous-passement de capacité est parfois utilisé.
156 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
En cas d’overflow, la valeur est remplacée par le symbole ou – et un message d’avertissement
est affiché :
Quant à l’underflow, il est passé sous silence, et le nombre est mis d’autorité à 0 : cela peut, comme
on le verra sur certains exemples altérer de façon importante le résultat d’un calcul.
Cas plus fréquent, quand un nombre réel est compris strictement entre deux nombres machine, la
machine applique une procédure pour remplacer le nombre par un nombre machine, avec lequel elle
peut travailler. Cette procédure entraînera ce qu’on appelle une erreur d’affectation : c’est le premier
type d’erreur que l’on rencontre quand on travaille avec une calculatrice…
Prenons un exemple. Entrons dans une TI-Nspire le nombre : 1,234 567 890 129 198 76.
18 chiffres significatifs… soit 4 de trop pour la calculatrice !
Que renvoie-t-elle ?
La calculatrice affiche 1.23456789013 : c’est un nombre de 12 chiffres, le 12e ayant été arrondi.
Faisons apparaître les chiffres de réserve, 9 et 2, en redescendant le nombre en ligne de commande : la
calculatrice travaille avec 1.2345678901292. Ils servent notamment ici à arrondir le résultat6 : pour
arrondir à 3, la calculatrice a besoin de savoir, qu’après le 2 vient un 9…
6 Mais ce n’est pas leur seule utilisation ! Ils servent aussi à limiter la propagation des erreurs d’arrondi.
Arithmétique de la calculatrice 157
© T³ France 2010 / Photocopie autorisée
Le dernier chiffre de réserve est lui-même arrondi : la saisie 919876 a été transformée en 92, ce qui
laisse penser que la calculatrice a connaissance du chiffre qui vient après le 17. Ce qui est encore
confirmé par les exemples suivants :
Dans les deux cas, le 12e chiffre est arrondi… et le 14
e aussi (pour mémoire
3,141 592 653 589 793 238 462 643 383 279 502 884).
En résumé, il n’est pas inutile d’avoir en tête ce que des collègues de l’IREM de Montpellier
appelaient, il y a quelques années, la « trilogie de la calculatrice » :
1.4 L’erreur d’affectation
Ce que l’on appelle l’erreur d’affectation, c’est précisément l’écart entre le nombre réel que
l’on cherche à représenter et le nombre machine qui le représente effectivement8.
C’est en quelque sorte le prix à payer de la finitude de toute calculatrice.
Cette erreur peut être calculée dans les exemples précédents. Nous ferons les calculs
systématiquement avec les chiffres de réserve, avec lesquelles la calculatrice travaille :
1,234 567 890 129 2 – 1,234 567 890 129 187 6 = 1,24 10–14
.
Obtenir une majoration de l’erreur d’affectation
L’erreur d’affectation a pu précédemment être calculée parce qu’on connaissait précisément la valeur
entrée. C’est rarement le cas dans la pratique9.
7 Travaille-t-elle avec un chiffre de réserve supplémentaire ? La question est posée…
8 C’est une erreur absolue…
9 Connaître l’erreur exactement, c’est aussi connaître exactement la valeur entrée…
La trilogie de la calculatrice :
le nombre qu’on rentre,
celui qu’elle affiche,
celui avec lequel elle travaille…
Très souvent, ces nombres sont deux à deux différents…
158 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
Par exemple, quand on souhaite travailler avec 2, la calculatrice affiche en fait le nombre décimal
1,414 213 562 37 (12 chiffres significatifs) et elle effectue ses calculs avec 1,414 213 562 3731, (14
chiffres significatifs)10
.
Comme précédemment, l’erreur d’affectation est celle que l’on commet en remplaçant 2 par
1,4142135623731 (valeur considérée avec les chiffres de réserve).
À défaut d’être connue exactement, l’erreur peut être facilement majorée. Comme le résultat dans ce
cas est arrondi, on est alors sûr que :
1,414 213 562 373 05 2 < 1,414 213 562 373 15
(la véritable valeur est 1,414 213 562 373 095 048 801 688 724 209…)
–5 10 – 14
2 – 1,414 213 562 373 1 < 5 10–14
soit
| 2 – 1,414 213 562 373 1| 5 10–14
.
Remarquons que si l’on change le nombre11
, le majorant de l’erreur d’affectation change lui aussi.
Ainsi par exemple, avec 123456789 :
on peut écrire :
11 111,111 060 555 5 123 456 789 < 11 111,111 060 556 5
–5 10–10
123 456 789 – 11 111,111 060 556 < 5 10–10
soit 8123 456 789 11111,111060 6 5 10 .
Un résultat général…
On dispose du résultat général suivant qui donne une majoration de l’erreur commise. On note
habituellement fl(a)12
le nombre machine correspondant à a.
Théorème
Dans une arithmétique flottante à t chiffres on a fl 5 10 ta a a p , avec p = 1 dans le
cas de l'arrondi et p = 2 dans le cas de la troncature.
10 Une fois de plus le dernier chiffre de réserve est arrondi.
11 Ou du moins son ordre de grandeur…
12 fl pour flottant.
Arithmétique de la calculatrice 159
© T³ France 2010 / Photocopie autorisée
Démonstration
Plaçons-nous d’abord dans le cas de la troncature.
Soit donc a = 1 2 1, ... ... 10q
t ta a a a avec a1 0 le nombre réel que l’on cherche à rentrer dans la
calculatrice.
Puisqu’il y a troncature à t chiffres significatifs, on aura :
fl(a) = 1 2, ... 10q
ta a a avec a1 0.
L’erreur commise est donc :
1
1 2
fl 0,0...0 ... 10 (avec t 1chiffres 0 après la virgule)
, ... 10 10
q
t
q t
t t
a a a
a a
Cherchons à majorer cette expression :
1 2 1 1 2, ... 10 10 10 , ...t ta a a a a car a1 0.
Par conséquent :
1 2 1 2fl , ... 10 10 10 , ... 10 10 10 10q t q t t
t ta a a a a a a
ce qui est bien la majoration attendue.
Plaçons-nous maintenant dans le cas de l’arrondi.
Un cas se traite immédiatement, de la même façon que précédemment : en posant
1 2 1, ... ... 10q
t ta a a a a avec a1 0 et 1 0,1, 2, 3 ou 4ta , après arrondi à t chiffres significatifs, on
aura cette fois :
1 2fl , ... 10q
ta a a a
et l’erreur commise est donc :
1 2
1 2
fl 0,0...0 ... 10 (avec 1chiffres 0 après la virgule)
, ... 10 10
q
t t
q t
t t
a a a a t
a a
Par le même raisonnement que précédemment, on a :
1 2 1 2fl , ... 10 10 5 , ... 10 10 5 10q t q t t
t ta a a a a a a
, ce que l’on cherche à
obtenir.
Supposons maintenant que 1ta soit égal à 5, 6, 7, 8 ou 9.
Dans un premier temps, on cherche à arrondir 1 2 1, ... ...t tm a a a a . Attention, l’arrondi que l’on va
obtenir ne contient pas forcément les mêmes chiffres que m, même sur les t – 2 premiers chiffres.
Ainsi si l’arrondi à 4 chiffres significatifs de 1,2879876 est 1,288, l’arrondi de 1,9999654 est 2,000…
qui n’a aucun chiffre en commun avec le nombre de départ. Il faut être prudent !
Notons donc 1 2, ... tb b b l’arrondi de m. Alors :
1 2 1 2 1 1 2, ... , ... ... 0,0...0 ...t t t t tb b b a a a a c c , avec t – 1 chiffres 0 après la virgule.
Que se passe-t-il dans la soustraction ?
b1 , b2 … bt
– a1 , a2 … at at+1 at+2 …
0 , 0 0 ct+1 ct+2 …
160 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
Si 1ta est le dernier chiffre non nul de m, alors
1 5 tc et la différence vaut moins de 5 10 t .
Sinon, 1ta hérite d’une retenue précédente égale à 1 et 1tc est alors inférieur ou égal à 4.
Bref, dans les deux cas :
1 2 1 2 1 1 2, ... , ... ... 0,0...0 ... 5 10 t
t t t t tb b b a a a a c c
1 2 1 2fl fl , ... 10 10 5 10 10 5 , ... 10 10 5 10t q t q t q t
t ta a a a c c a a a
C’est bien le résultat attendu.
On remarque que l’erreur produite lors d’un arrondi est majorée par un nombre deux fois plus petit
que celui obtenu par troncature.
Ce théorème donne un majorant de l’erreur absolue : il est immédiat d’en déduire que l’erreur relative
fla a
a
est majorée par 5p 10
–t, avec p = 1 dans le cas de l'arrondi et p = 2 dans le cas de la
troncature.
Pour la TI-Nspire, en tenant compte des chiffres de réserve, on sait que t = 14 et que le quatorzième
chiffre est arrondi : un majorant de l’erreur relative est donc 5 10–14
.
À cause des erreurs d’affectation, deux nombres réels différents peuvent être représentés
par le même nombre machine.
Ainsi par exemple, 1,234567890123456789 et 1,234567890123498765 sont représentés par le même
nombre machine,1,2345678901235, comme le prouvent les écrans suivants :
Plus généralement, on conçoit qu’un même nombre machine représente en fait une infinité de
nombres réels.
À l’inverse – rien n’est vraiment simple quand on travaille avec une calculatrice – deux nombres réels
égaux sont parfois représentés par des nombres machine différents !
Prenons par exemple 3 2 2 et 2 1 : ces deux réels sont égaux (ce sont deux nombres positifs
qui ont même carré) et la calculatrice en mode exact le confirme :
Arithmétique de la calculatrice 161
© T³ France 2010 / Photocopie autorisée
En mode approché (faire /·), elle les considère comme différents :
Si l’on s’en tient à l’affichage, les nombres ont l’air égaux ; en fait ils diffèrent légèrement par leurs
chiffres de réserve (pour le premier, 08 et pour le second 10) : les calculs qui ont conduit aux résultats
n’ont pas été exactement les mêmes…
Cet exemple met en évidence la supériorité du calcul formel sur le calcul en virgule flottante…
Gardons nous d’être là encore trop confiants, même si des progrès ont été faits ! Là où la Voyage 200
renvoyait le problématique :
la TI-Nspire obtient des résultats tout à fait satisfaisants :
Plus généralement, la calculatrice renvoie true si elle trouve un chemin d’un des membres du signe =
vers l’autre ; sinon elle renvoie false. Mais on peut concevoir que le chemin à trouver soit invisible à
la calculatrice. Par exemple, on sait grâce aux formules élémentaires de trigonométrie que
1 cos12sin
24 2
… mais cette égalité formelle n’est pas perçue par la TI-Nspire, pas plus
d’ailleurs que l’égalité approchée, à cause des chiffres de réserve…
162 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
En tout état de cause, la prudence s’impose, même avec le calcul formel.
Bref, il n’existe pas de panacée en matière de calcul par ordinateur ou calculatrice : on ne peut pas
demander à ce type d’outil, par essence fini, de rendre compte de la complexité et de l’infinitude des
objets mathématiques, qui relèvent du monde des idées. Des problèmes sont donc inévitables, et ce
quel que soit le logiciel ou la calculatrices utilisés. Si l’utilisateur se doit de les connaître, pour bien
maitriser son outil, il convient de rester réaliste et de ne pas mettre trop rapidement la calculatrice, ou
l’ordinateur, aux oubliettes : on y perdrait un outil de calcul personnel extraordinaire qui rend dans la
plupart des cas de bien fiers services13
.
2. Opérations en arithmétique à virgule flottante
Si l’on se contentait juste d’entrer des nombres dans la calculatrice, les problèmes seraient
relativement limités ! Mais aux erreurs d’affectation mentionnées ci-dessus vient s’ajouter une
difficulté supplémentaire : on fait des calculs, de nombreux calculs même, et le résultat d’une seule
opération portant sur deux nombres machine donne rarement exactement un nombre machine.
Nouvelle source d’erreur donc…
Si l’erreur commise pour une seule opération peut assez bien être cernée, la question se pose de la
validité d’un résultat renvoyé lorsqu’on enchaîne les opérations par dizaines, voire par centaines dans
un programme. Le problème est d’un abord difficile, sans solution simple. Tout au plus est-il
important d’avoir quelques points de repère, que nous examinerons dans ce qui suit.
On pourrait croire que l’utilisation du mode exact de la calculatrice aplanit toutes les difficultés.
D’une part, les remarques des pages précédentes dissiperont les éventuelles illusions qu’on pourrait
avoir. D’autre part, les calculs exacts, outre qu’ils pénalisent lourdement le processeur et la mémoire,
ne sont intéressants que lorsque le résultat se simplifie bien et s’appréhende facilement… mais c’est
rarement le cas en analyse ! Nous aurons l’occasion de revenir sur ce point.
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.
Arithmétique de la calculatrice 163
© T³ France 2010 / Photocopie autorisée
(+1,25 105) + (+6,57 10
6) = (+0,125 + +6,57) 10
6
= +6,695 106 +6,70 10
6
Le résultat obtenu n’est pas un nombre machine – c’est souvent le cas – mais tout revient à arrondir le
résultat obtenu. En d’autres termes, l’erreur que l’on commet n’est autre qu’une erreur d’affectation
sur le résultat du calcul.
C’est la situation que l’on rencontre par exemple ci-après :
(+4,37 1011
) + (+1,25 105) = (+4,37 + +0,00000125) 10
11
= +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 à 145 10 / 2 .
La soustraction fonctionne de façon analogue :
(+5,78 106) – (+3,23 10
5) = (+5,78 – +0,323) 10
6 = +5,457 10
6 +5,46 10
6
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
précieux pour faire des mathématiques.
164 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
Prenons un exemple, en calculant x – y, où x = +3,24 105 et y = +3,23 10
5.
x – y = (+3,24 105) – (+3,23 10
5) = (+3,24 – +3,23) 10
5 = +0,01 10
5 = 1,00 10
3 = 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 à
1499 1000 49933,2%
1499 1499
.
Plus généralement, x représente a priori un nombre qui, compte tenu des arrondis, est dans
l’intervalle :
[+3,235 105 ; +3,245 10
5[
tandis que –y représente un nombre de l’intervalle ]–3,235 105 ; –3,225 10
5].
On peut donc affirmer que :
x – y ]0 ; +0,02105[ = ]0 ; 2000[.
Le résultat peut donc valoir n’importe laquelle des valeurs de cet intervalle… tandis que la
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 soustraction
16, 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 10
5) = (+1,25 –1,28) 10
10 –1,60 10
10
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 10
6) = (+1,25 +6,57) 10
11 = 8,2125 10
11 8,21 10
11
(+1,25 105) / (+4,37 10
11) = (+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 !
Arithmétique de la calculatrice 165
© T³ France 2010 / Photocopie autorisée
Peuvent aussi survenir un overflow, ou sur-passement de capacité, et un underflow, ou sous-
passement de capacité, comme le montrent les exemples suivants.
(+1,25 105) (+4,37 10
11) = (+1,25 +4,37) 10
16
= +5,4625 1018
= +5,46 1018
…overflow…
En cas d’overflow sur une TI-Nspire, le résultat est considéré comme égal à l’infini, sans pour autant
que les calculs soient bloqué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 tA B A B A B p
avec p = 1 dans le cas de l’arrondi et p = 2 dans le cas de la troncature.
166 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
Malheureusement on ne dispose pas toujours d’un résultat analogue pour les fonctions mathématiques
usuelles : il suffit de reprendre le calcul de sin24
fait au début du chapitre pour réaliser que des
problèmes peuvent survenir.
2.2 Les différences évanescentes
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.
Peut-on se débarrasser de la différence ? Oui, car il est immédiat que
1 1 1 1
1 1 1
x x
x x x x x x
.
On peut donc écrire que 1 1 1
123456001 123456002 123456001 123456002
… ce qui donne
maintenant sur la calculatrice :
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 !
Arithmétique de la calculatrice 167
© T³ France 2010 / Photocopie autorisée
Un autre exemple, avec une situation que l’on rencontre quand on cherche à conjecturer à la
calculatrice la limite quand x tend vers 0 de 1 1
( )x
f xx
. Sans aucune précaution – voir la
colonne B de la feuille de calcul ci-dessous – on arrive à :
Le calcul est fait avec approx.
De là à conclure que la limite est 0, il n’y a qu’un pas… qu’il ne faut pas franchir, car on peut à juste
titre suspecter une situation de différence évanescente. En effet, lorsque x est petit, 1 1x – on
peut même avoir l’égalité pour la calculatrice lorsque x est inférieur à l’epsilon-machine – et l’on est
amené à faire une différence de deux nombres très voisins, qui fait disparaître de nombreux chiffres
significatifs17
…
Là encore, une transformation algébrique simple règle la difficulté. On sait que :
1 1 1 11 1 1
1 11 1 1 1
x xx x
x xx x x x
… et les différences gênantes ont disparu (colonne C) ! On peut alors conjecturer sans peine que la
limite est 0,5.
Pour le dernier exemple, nous cherchons à calculer sin x x , pour des valeurs de x proches de 0. On
constate très vite que tous les chiffres significatifs du résultat ont disparu et qu’on ne peut donner de
réponse satisfaisante (colonne B).
17 Voire tous les chiffres significatifs pour donner 0 ici lorsque x est très petit. D’où notre problème !
168 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
On peut contourner cette difficulté avec la formule de Taylor :
3 5
7sin6 120
x xx x o x ,
avec une précision suffisante pour les valeurs considérées de x. C’est ce que nous faisons dans la
colonne C du tableur.
Un autre exemple peut être évoqué : il vaut mieux remplacer le calcul de ln x – 1 par lnx
e
lorsque x
est proche de 1.
2.3 Dépassement de capacité
Soit à calculer le plus précisément possible l’expression 296
x
x
xe
e x pour x = 2 310.
Le premier réflexe est de prendre sa calculatrice et de lancer le calcul :
Réponse undef… on doit donc regarder le problème de plus près. Le message d’avertissement laisse
suspecter des underflows ou overflows.
Arithmétique de la calculatrice 169
© T³ France 2010 / Photocopie autorisée
Une première approche consiste à regarder séparément comment se comportent les numérateurs et
dénominateurs :
L’un et l’autre sont en dépassement de capacité : la calculatrice répond sagement et undef pour le
quotient !
L’expression doit être transformée pour qu’on puisse espérer avancer dans le calcul. On peut écrire :
296 2961
x
x x
xe x
e x x e
Regardons ce que cette formule donne :
Un premier résultat donc ! Mais peut-on être satisfait ou doit-on regarder d’un peu plus près ?
On peut craindre un underflow pour 296 xx e .
Le résultat est effectivement nul, sans aucun message d’avertissement… Il faut mieux regarder de
près la contribution de chacun des facteurs :
On constate que le produit 2 310e par 2 310296
est sûrement un nombre raisonnable en taille, mais qui
passe à 0 de façon quelque peu abusive à cause de l’underflow sur l’exponentielle.
Comment remédier à tout ceci ? Une nouvelle transformation algébrique s’impose :
296 296
148 1482 21
1 1
x
x x x x
xe x x
e x x ex e x e
170 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
Le résultat est maintenant :
Le produit 148 11552 310 e peut être calculé correctement et on peut maintenant avoir confiance dans le
résultat affiché.
On constate sur cet exemple, et sur ceux qui ont précédé, que des expressions mathématiquement
égales sont bien loin parfois d’être équivalentes du point de vue de la calculatrice : elles peuvent
donner des résultats qui diffèrent. Les propriétés de l’ensemble des nombres machine ne sont donc
pas les mêmes du point de vue des opérations que celles de l’ensemble des réels. On doit
systématiquement réfléchir à la meilleure formule pour qu’un calcul soit mené à son terme le plus
efficacement possible.
3. Un exemple de propagation des erreurs d’arrondi
On se propose d’examiner comment les erreurs d’arrondi se propagent dans un calcul banal, mais avec
de nombreuses opérations, la somme 500 000
1
1
k k
calculée avec le logiciel sur l’ordinateur.
Elles proviennent, comme on l’a vu de deux causes :
les erreurs d’affectation sur chacun des nombres entrés (ou presque !) ;
les erreurs dues aux opérations, qui sont, comme on l’a vu, des erreurs d’affectation sur les
résultats de chaque somme.
3.1 De l’influence des opérations sur le résultat obtenu
Gardons les mêmes nombres, et donc les mêmes erreurs d’affectation, mais modifions l’ordre des
termes : les opérations ne seront donc pas exactement les mêmes. Mathématiquement, le résultat doit
être le même. Qu’en est-il exactement ?
Faisons d’abord le calcul dans l’ordre croissant des entiers :
Réponse 13,699580042419
Puis dans l’ordre décroissant :
Arithmétique de la calculatrice 171
© T³ France 2010 / Photocopie autorisée
Réponse 13,699580042312
Résultat légèrement différent…
Ou encore en additionnant les entiers pairs dans l’ordre croissant, puis les entiers impairs dans le
même ordre :
Réponse 13,699580042312
… en additionnant les entiers pairs dans l’ordre décroissant, puis les entiers impairs dans le même
ordre :
Réponse 13,699580042314
… enfin en additionnant par les deux bouts…
Réponse 13,699580042324
On pourrait multiplier les exemples…
3.2 Bilan de ces différents calculs…
Point négatif : cinq façons d’organiser un même calcul, quatre résultats différents… Globalement, on
ne peut qu’avoir de sérieux doutes sur les deux chiffres de réserve, ainsi que sur le douzième chiffre
significatif.
172 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
Est-ce surprenant ? Non, car on a vu précédemment que des expressions mathématiquement égales ne
sont pas forcément équivalentes du point de vue l’organisation des calculs.
Point positif : les différences se manifestent essentiellement sur les chiffres de réserve... C’est aussi
leur rôle que d’amortir la propagation des erreurs d’arrondi dans un calcul.
Quelles sont les causes d’erreur ?
On a parlé des erreurs d’affectation, mais elles ne peuvent justifier tous les écarts : les différents
calculs précédents faisant intervenir les mêmes nombres, on a nécessairement les mêmes erreurs
d’affectation. Il faut cette fois regarder du côté des erreurs induites par les opérations.
Mais au fait, quel est donc le résultat exact ?
On peut l’obtenir en utilisant un logiciel de calcul formel en lui demandant d’afficher 50 chiffres
significatifs… Sur la base des différents résultats obtenus, on peut penser que les 30 ou 40 premiers
sont corrects. On obtient :
13,699580042305528321963895496730411108319299879385
À la lumière de ce résultat, le calcul fait avec les indices décroissants est un des deux qui donnent le
résultat le plus proche.
Cela n’est pas surprenant et on peut en déduire une loi empirique générale, qui contribue à retarder
l’apparition de sommes de nombres d’ordre de grandeurs différents : il vaut mieux effectuer une
somme en allant du plus petit nombre vers le plus grand.
3.3 Propagation des erreurs d’arrondi
Limitons-nous au cas où l’on calcule la somme S dans l’ordre croissant
S = 1
1 +
1
2 +
1
3 + … +
1
500 000.
Le résultat renvoyé pour ce calcul est le premier obtenu : 13,699 580 042 419. Un calcul d’erreur
précis est délicat à faire. Tout au plus, nous nous contenterons de donner quelques éléments pour
comprendre la pertinence du résultat renvoyé.
Si l’on écrit les premiers termes :
1,0000000000000
0,5000000000000 1,5000000000000
0,3333333333333 1,8333333333333
0,2500000000000 2,0833333333333
0,2000000000000 2,2833333333333
0,1666666666666 2,4499999999999
etc.
Arithmétique de la calculatrice 173
© T³ France 2010 / Photocopie autorisée
on réalise que chaque terme n’interviendra dans sa contribution qu’au plus avec ses 13 premières
décimales18
. En d’autres termes, l’erreur sur chacun des termes est moindre que 10-13
. L’erreur au bout
des 500000 termes sera majorée par 500 000 10-13
= 5 10-8
= 0,000 000 05.
On peut en déduire l’encadrement suivant :
13,699 580 042 419 0,000 000 05 S
13,699 580 042 419 0,000 000 05 13,699 580 042 419 0,000 000 05 S
13,699 579 992 419 13,699 580 092 419 S
13, 92 419 13, 92 419699 5 699 579 9 80 0 S
Avec ce calcul d’erreur, nous ne serions sûrs que des 4 premières décimales19
; mais nous avons pour
autant une valeur approchée à moins de 10 10-8
= 10-7
près.
Un tel calcul d’erreur d’erreur est particulièrement catastrophique et reflète sans doute très mal la
réalité de notre résultat. L’erreur maximale est très peu probable : il faudrait pour ce faire que l’erreur
sur chaque terme soit la plus grande possible, et qu’il n’y ait aucune compensation de ces erreurs d’un
terme à l’autre. Ce n’est pas réaliste : la majoration obtenue est certes fiable, mais excessivement
pessimiste. Ceci illustre la difficulté qu’il y a même pour un calcul simple à estimer de façon correcte
l’erreur commise.
Une approche statistique est possible et fournit des résultats bien plus satisfaisants. Cette
approche appréhende le calcul dans sa globalité et donne des résultats bien moins pessimistes que les
désastreux calculs de majoration vus précédemment.
Appelons l’erreur commise sur la somme S précédente (possédant n = 500 000 termes) et ek l’erreur
d’arrondi globale, quelle qu’en soit la cause, commise sur le terme d’ordre k de cette somme.
On a clairement : = ke
D’autre part, compte tenu de l’arrondi sur chaque terme, on sait que 135 10ke .
L’idée est de considérer ek et comme des variables aléatoires et de faire les deux hypothèses
suivantes :
(1) les erreurs ek sont des variables aléatoires indépendantes les unes des autres ;
(2) l’espérance mathématique de ek est égale à 0 : autrement dit, l’arrondi n’a pas plus de
raison de se faire par excès que par défaut.
Remarquons que 222 2 135 10k k k kV e E e E e E e
D’après l’hypothèse (2), on a ( ) 0k kE E e E e .
D’après l’hypothèse (1), on a ( )V 2
13( ) 5 10kV e n et donc l’écart-type de vérifie :
13( ) 5 10V n .
18 Une de moins d’ailleurs quand la somme dépassera 10…
19 La configuration est toutefois particulière compte tenu des chiffres 7 9 9 et 8 0 0.
174 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
On pourrait conclure avec l’inégalité de Bienaymé-Tchebychev, mais le théorème central limite donne
des résultats bien plus précis. Ce théorème permet d’affirmer que la loi de est une loi normale
d’espérance 0 et d’écart-type , majoré par 135 10n . En d’autres termes,
suit la loi
normale centrée réduite.
On sait alors que la probabilité que soit dans un intervalle d’amplitude 2 autour de 0 est
d’environ 0,95 :
2 2 0,95p .
Comme 13 132 ;2 5 10 ;5 10n n , on en déduit que :
13 135 10 5 10 0,95p n n .
Avec n = 500 000, on peut écrire :
13 135 500 000 10 5 500 000 10 0,95 p
10 103,54 10 3,54 10 0,95p
Autrement dit, l’erreur probable est majorée dans 95% des cas par 3,54 10-10
… résultat beaucoup
plus intéressant que celui que nous avons obtenu par majoration plus haut.
On peut en déduire l’encadrement suivant :
13,699 580 042 419 0,000 000 000 354 S
13,699 580 042 419 0,000 000 000 354 13,699 580 042 419 0,000 000 000 354 S
13,699 580 042 065 13,699 580 042 773 S
13, 065 13, 773699 580 042 699 580 042 S
Avec ce calcul d’erreur, nous sommes sûrs des 9 premières décimales, avec une erreur majorée par
7,08 10-10
… mais avec une probabilité d’un peu plus de 0,95.
3.4 Correction de l’arithmétique de la calculatrice
Il est cependant possible d’atténuer ce phénomène de propagation des erreurs d’arrondi, pour
obtenir un résultat satisfaisant même avec une calculatrice.
Arithmétique de la calculatrice 175
© T³ France 2010 / Photocopie autorisée
Pour mieux comprendre ce qui se passe, étudions un exemple particulier de ces erreurs dues à
l’addition, au moment par exemple où la TI-Nspire vient de calculer s =15 000
1
1
k k
et qu’elle doit ajouter à
ce nombre 1
15 001.
Examinons précisément quels calculs sont faits par la calculatrice. En faisant apparaître les chiffres de
réserve, on a :
s 10,193 054 477 948 et 1
15 001 0,000 066 662 222 518 499
La somme effectuée à ce moment est donc la suivante, les chiffres en grisé n’étant pas pris en compte
par la calculatrice :
1 0 , 1 9 3 0 5 4 4 7 7 9 4 8
+ 0 , 0 0 0 0 6 6 6 6 2 2 2 2 5 1 8 4 9 9
1 0 , 1 9 3 1 2 1 1 4 0 1 7 0 5 1 8 4 9 9
6 chiffres significatifs de 1
15 001 sont donc purement et simplement occultés dans ce calcul : cette
perte, certes petite, contribue peu à peu à la dégradation des calculs.
Se pose alors une question : est-il possible de conserver ces chiffres significatifs qui disparaissent ?
La réponse, paradoxalement, est oui et va grandement contribuer à améliorer le calcul.
Effectuons la suite de calculs suivants :
d’abord, (s + 1
15 001) – s, qui met en évidence la valeur de
1
15 001 qui a été incorporée à s ;
par suite, 1
15 001, duquel on ôte le résultat précédent, donne la partie que l’on n’a pas utilisée
de 1
15001 :
176 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
Remarquons que ce dernier résultat devrait être 0 mais… ce n’est pas le cas car les règles usuelles de
calcul dans ne sont pas conservées pour l’ensemble des nombres de la calculatrice…
Nous voilà donc avec des décimales qui passaient jusqu’à présent aux oubliettes. Les récupérer pour
chaque terme doit permettre d’améliorer le calcul de S.
Les remarques précédentes nous conduisent à écrire une fonction, pour atténuer les erreurs
d’arrondi dues aux sommes successives. En effet, on peut facilement cumuler dans une variable e les
erreurs d’arrondi calculées comme précédemment. Il suffit alors qu’à la fin la fonction retourne s + e
au lieu de s pour que l’on obtienne un résultat plus précis.
C’est ce que fait la fonction suivante :
On obtient les résultats suivants :
Le calcul est plus long que précédemment : on n’y gagne guère à remplacer une fonction de la
calculatrice (), par un programme en TI-Basic. Mais la réponse obtenue est particulièrement
intéressante.
Le résultat à 14 chiffres est :
13,699 580 042 306
au lieu de
13,699 580 042 312
ce qui est exactement la réponse renvoyée par WIMS, arrondie à 14 chiffres significatifs. On peut
considérer que notre fonction a neutralisé la propagation des erreurs d’arrondi.
Mais on peut encore affiner le résultat en ajoutant à la main les contenus des variables s et e. On
obtient s 13,699 580 042 419 et e 0,000 000 000 113 493 849 9
1 3 , 6 9 9 5 8 0 0 4 2 4 1 9
– 0 , 0 0 0 0 0 0 0 0 0 1 1 3 4 9 3 8 4 9 9
1 3 , 6 9 9 5 8 0 0 4 2 3 0 5 5 0 6 1 5 0 1
Résultat à comparer avec celui qu’on a obtenu avec WIMS :
13,699580042305528321963895496730411108319299879385
qui montre qu’un chiffre significatif supplémentaire a été récupéré !
Arithmétique de la calculatrice 177
© T³ France 2010 / Photocopie autorisée
4. Résoudre une équation du second degré dans les réels
Évidemment, la calculatrice dispose d’outils qui donnent des résultats satisfaisants. Toutefois,
l’algorithme est si classique et si simple à mettre en œuvre sur une calculatrice qu’on est souvent
amené à l’aborder avec des élèves.
On considère donc l’équation 2 0ax bx c avec a, b et c réels, 0a , que l’on cherche à résoudre
de manière approchée.
4.1 La méthode naturelle
La méthode semble couler de source et ne poser aucun problème : les coefficients de l’équation
peuvent être passés comme paramètres d’entrée de la fonction ; on calcule ensuite le discriminant,
dont on teste le signe, avant de renvoyer les différents résultats, par exemple dans une liste.
C’est ce que fait la fonction suivante :
Remarquons qu’on divise non pas par 2, mais par 2., pour être sûr que le résultat renvoyé, s’il existe,
soit approché.
Les résultats obtenus semblent être conforme à nos attentes :
4.2 Vers une fonction plus performante
Sans précautions particulières, les problèmes ont toutes les chances de survenir. Par exemple, si
l’on cherche à résoudre 8 2 810 8 10 0x x :
178 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
La deuxième solution, 0, interroge. Tout d’abord 0 n’est pas solution de cette équation. Enfin si la
solution est un nombre proche de 0, ce que l’on veut bien admettre, pourquoi la calculatrice ne
parvient-elle pas à l’exprimer ?
Il faut examiner de plus près ce qui se passe. La variable d de la fonction contient en mode
approché juste b2 = 0,64 car –4ac = 164 10 ne peut pas être pris en compte sur les 14 chiffres que
gère la TI-Nspire. Par conséquent :
8
0,8 0,880 000 000
2 2 10
b d
a, une des valeurs renvoyées…
… mais aussi 8
0,8 0,80
2 2 10
b d
a
…
On reconnaît là une différence évanescente, différence de deux nombres tellement voisins qu’ils sont
égaux pour la calculatrice et que tous les chiffres significatifs disparaissent.
Le remède est simple : il faut éviter de faire la soustraction fautive. C’est possible car, dans les
formules de résolution d’une équation du second degré, l’une met en œuvre une addition et l’autre une
soustraction. Si la soustraction doit être évitée, on peut s’appuyer sur le fait que le produit des racines
d’une telle équation, quand elles existent, vaut c
a : dès que l’une, x’, est connue, on peut facilement
déduire l’autre sans soustraction, c’est '
c
ax.
Nous voilà donc amenés à tester dans la fonction le signe de b :
si 0b , on doit calculer '2
b dx
a
et ''
'
cx
ax … c’est bien une somme sur les valeurs
absolues qui est faite…
si 0b , on doit calculer '2
b dx
a
et ''
'
cx
ax … c’est bien une somme qui est faite…
Exit la différence à problème…
Pour résumer, on peut travailler avec une variable e, valant 1 lorsque b > 0, –1 si b < 0 et 0 si b = 0.
Les formules précédentes se résument en :
'2
b e dx
a
et ''
'
cx
ax .
La fonction peut alors être la suivante : elle est certes moins immédiate, mais bien plus performante !
On utilise la fonction sign de la TI-Nspire : attention à ce qu’elle renvoie pour 0…
Arithmétique de la calculatrice 179
© T³ France 2010 / Photocopie autorisée
Remarquons que la solution x1 ne peut pas être nulle : comme somme de deux nombres de même
signe, elle est nulle si et seulement si chacun des nombres –b et e d l’est, ce qui suppose b nul et d
nul… mais on est alors dans le cas où le trinôme possède une racine double.
Les résultats sont les mêmes pour les équations « classiques », fort heureusement, mais bien plus
satisfaisant pour notre équation problématique :
La solution proche de 0 que nous pressentions est 1,25 10-8
… qui n’est pas vraiment 0 et tout à fait
représentable par les puissances de 10 de notre calculatrice !
Remarquons que la fonction Solve de la calculatrice a un comportement excellent sur ce problème :
180 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
BILAN : autour de l’ensemble des nombres calculatrice
C’est l’ensemble qui a la « prétention » sur une calculatrice de remplacer l’ensemble des nombres
réels : il y réussit bien souvent (les outils de calcul électroniques sont devenus indispensables en
mathématiques) mais il vaut mieux savoir que des problèmes peuvent se poser.
Nous reprenons ci-après quelques-unes des propriétés déjà rencontrées, qui distinguent cet ensemble
de l’ensemble des nombres réels.
Tout d’abord, nous avons remarqué que était une partie finie et totalement ordonnée de : à ce
titre, il possède un plus grand élément et un plus petit élément strictement positif ; chaque élément,
hormis les deux extrêmes, possède un successeur et un prédécesseur.
Une calculatrice est donc bien loin de pouvoir représenter l’intégralité des nombres réels, même pas
d’ailleurs l’intégralité des nombres décimaux.
Les propriétés usuelles des calculs dans ne sont pas conservées.
Par exemple l’associativité de l’addition n’est plus vraie en général. Ainsi si l’on considère les deux
expressions suivantes, mathématiquement égales du fait de l’associativité de l’addition dans :
u = (y + x) – x
v = y + (x – x)
elles peuvent différer pour une calculatrice. Avec x = 1 et y = 10–15
, on obtient :
u = (10–15
+ 1) – 1 = 1 – 1 = 0
v = 10–15
+ (1 – 1) = 10–15
La différence certes peut paraître faible, mais elle n’en est pas moins gênante si l’on poursuit les
calculs : en divisant par y, y x x
y
et
y x x
y
, on trouve respectivement 0 et 1...
L’addition n’est plus régulière. En effet, dans , a + x = b + x entraîne a = b. Avec une calculatrice,
on a 1 + 10-30
= 1 + 0 : pourtant 10-30
0.
Plus étonnant mais cela montre bien les différences avec l’ensemble des réels : sur une calculatrice,
une série dont le terme général tend vers 0 est convergente. En effet si le terme général tend vers 0,
pour une valeur suffisamment grande de n, il sera égal à 0 car on ne peut pas s’approcher indéfiniment
de 0 sur un ensemble discret. Par exemple, sur une TI-Nspire, la série harmonique est « convergente »
et, pire encore, la limite trouvée dépend de l’ordre des calculs.
Bref dans les calculs, il faut être prudent comme on l’a remarqué à plusieurs reprises. D’autant plus
que, dans un programme par exemple, ce n’est pas un mais des dizaines voire des centaines
d’opérations qui sont enchaînées... Les erreurs d’affectation initiales, les erreurs d’arrondi d’un calcul
particulier vont alors se trouver ballotées au fil du programme : elles étaient petites, elles vont grossir
un peu, parfois exagérément au point de masquer le calcul que l’on fait20
…
La ligne de conduite lors de tout calcul se résume à cette technique : il est absolument essentiel de
conserver le plus possible le maximum de chiffres significatifs. Pour ce faire, quelques lignes
directrices à ne pas perdre de vue. On doit :
bannir les soustractions dans un calcul, partout où c’est mathématiquement possible, pour
éviter le phénomène des différences évanescentes ;
20 Par exemple dans le cas d’Alfred Logarithme (voir chapitre suivant), une erreur très petite, de l’ordre de 10–14 se trouve multipliée par un
nombre très grand (25! de l’ordre de 1025) et fausse complètement le résultat final en 25 étapes...
Arithmétique de la calculatrice 181
© T³ France 2010 / Photocopie autorisée
éviter de sommer des quantités d’ordres de grandeur très différents ;
dans une suite d’additions, additionner les nombres du plus petit au plus grand ;
se méfier des opérations répétées qui peuvent faire exploser une petite erreur d’affectation
de départ ; au minimum, essayer d’analyser la réponse renvoyée et de comprendre comment
l’erreur évolue au fil de l’algorithme.
En dehors de cas particuliers particulièrement explosifs, lors de tout calcul, les erreurs d’arrondi
peuvent finir par prendre une place non négligeable qu’il vaudra mieux estimer. Il y a d’ailleurs ici un
véritable conflit à gérer : d’un côté l’analyse numérique affirme que pour accroître la précision d’une
méthode, on doit répéter un grand nombre de fois les itérations (erreur par exemple de type k’/n2) ; de
l’autre, l’algorithmique rappelle que plus on fait de calculs, plus les erreurs d’arrondi sont importantes
(erreur proportionnelle au nombre d’opérations du type kn).
L’erreur totale est la somme des deux erreurs précédentes : par exemple elle est de la forme 2
'k
k nn
.
L’étude rapide d’une telle fonction montre que l’erreur globale présente un minimum : jusqu’à ce
minimum, la précision du résultat augmente ; au-delà, il est vain de poursuivre le calcul car les erreurs
d’arrondi altèrent le résultat renvoyé.
Recommended