Vous avez dit bizarre … comme c'est bizarre …

 

   Les articles de Sébastien Dassule (Un exercice banal) et de Dominique Baroux (Comment un exercice peut en cacher un autre) parus respectivement dans les Chantiers de pédagogie mathématique n°156 et n°157, montrent deux exemples où la représentation des nombres par un outil électronique (calculatrice, ordinateur, etc.) peuvent entrainer quelques surprises, qui laissent perplexe si on s'en tient à ce que l'on obtient par un calcul formel.

    Ces surprises, lorsqu'elles contredisent le calcul formel, est souvent qualifié de bug. Dans l'écrasante majorité des cas, il n'en est rien. Cela s'explique parfaitement lorsque l'on comprend comment fonctionne la machine. En premier lieu, une calculatrice numérique ou un tableur (calculs en virgule flottante) ne reconnait qu'un nombre fini de nombres, tous décimaux, et l'affichage de la courbe représentative d'une fonction continue sur un intervalle n'est qu'une juxtaposition d'un ensemble fini de points. On ne demande pas à une machine à laver le linge de laver aussi la voiture, on ne peut donc pas demander à un calculateur numérique de faire du calcul formel. De plus, même les langages de calcul formel qui équipent certains de ces outils (Geogebra contient maintenant un registre de calcul formel, certaines calculatrices de collège savent gérer un calcul formel simple avec des racines carrées, sans parler des modèles de calculatrices formelles destinées au lycée et au post-bac …), peuvent produire certains résultats "surprenants", même si ce sont de rares exceptions. L'un des problèmes majeurs des langages de calcul formel, pour lequel aucun d'entre eux n'est totalement infaillible, est l'identification d'une expression à 0. Un critère de qualité d'un tel langage est qu'il prévient quand il n'est pas certain de produire un résultat fiable.

  

    Revenons aux outils de calcul en virgule flottante. Les occasions de découvrir des "curiosités" produites par ces outils sont présentes dans tous les registres : évaluations numériques, représentations graphiques, recherches d'extremums, résolutions d'équations, calculs de nombres dérivés, calculs matriciels, calculs des termes d'une suite, etc. Loin de s'en plaindre, elles sont très souvent des occasions magnifiques de faire faire des mathématiques aux élèves, les 2 articles précités en sont d'excellents exemples.

    Je propose donc de créer dans notre publication, une rubrique "Vous avez dit bizarre … Comme c'est bizarre" . L'objet est de montrer des exemples de ces "bizarreries" produites par les machines, si possible d'en expliquer la raison, et si cela s'y prête, en faire une activité pour les élèves, de tous niveaux. Je vais alimenter cette rubrique tant que je pourrai (avec l'âge, j'en ai accumulées un certain nombre assez variées, beaucoup d'ailleurs proviennent de collègues intrigués ou perspicaces). Mais bien entendu, toute contribution sera très appréciée. Je commence donc (doucement), avec une activité en seconde (les phases 1 et 2 peuvent être faites en 3ème).

 

Objectif : Découvrir les nombres utilisés par la calculatrice.

Phase 1 : Un chiffre peut en cacher un autre …

  • Taper √2, entrer. On compte 10 chiffres utilisés pour la réponse affichée.

    Le dernier chiffre affiché (le 9ème chiffre après la virgule) est 2.

  • Taper 2√2, entrer. Le dernier chiffre est 5. Bizarre … 2×2=4≠5 

Manifestement, la calculatrice ne nous montre pas tout. Pour connaître les chiffres cachés :

  • Taper √2, entrer. Puis taper l'instruction : partDéc(Rép) ×10, entrer (syntaxe TI82). L'affichage dévoile le 10ème chiffre après la virgule.

Expliquer aux élèves ce que fait cette instruction est une très bonne occasion d'introduire la notion de variable dans un algorithme. 


  • Appuyer alors plusieurs fois sur entrer pour dévoiler les chiffres qui suivent, jusqu'à ce que …

On peut alors expliquer la bizarrerie lors de l'affichage de 2√2, mais aussi le nombre de chiffres connus par la calculatrice, et donc ceux utilisés pour faire les calculs et les arrondis. Pour la calculatrice, √2 est un nombre décimal s'écrivant avec 14 chiffres, et égal à 1,4142135623731.

 

Phase 2 : Une erreur … grossière !

Soit a=500(1015+1-1015). Calculer a sans calculatrice, puis avec.

Bizarre ...

Recommencer avec b=500(1012+1-1012)

Ça va mieux !

 

En écrivant à la main les nombres obtenus à chaque étape du calcul (une seule opération à la fois), et en faisant de même à la calculatrice, pour a puis pour b, on obtient :

Pour a :

1000000000000000

1000000000000001

1

500

 

Pour

1000000000000

1000000000001

1

500

 

On comprend alors pourquoi a est mal évalué, et b l'est correctement. La calculatrice ne peut pas écrire les nombres entiers qui ont plus de 14 chiffres.

Mais ce n'est pas fini : En principe, l'évaluation de 500(1013+1-1013) devrait être correcte puisque 1013 s'écrit avec 14 chiffres, ce dont dispose la calculatrice. Et pourtant …

Manifestement, la calculatrice utilise le 14ème chiffre pour arrondir le 13ème, mais refuse de l'utiliser dans les calculs.

 

Qu'en est-il avec un tableur ?

Phase 1 : Dans les cellules A1 et A2, on a tapé, la même formule : =racine(2). Mais dans A2, on a demandé d'ajouter des décimales. On voit donc que ce tableur affiche 11 chiffres par défaut, mais en connait 14, pas plus que la calculatrice … 

Phase 2 : Les colonnes B et C permettent de voir que ce tableur produit lui aussi un résultat faux lorsque l'exposant est 15, mais correct avec un exposant égal à 14. Il a donc moins de scrupules que la calculatrice pour utiliser le 14ème chiffre dans les calculs.

Phase 3 : Un algorithme mystère

Je reproduis ci-dessous un document élève, qui était une partie d'un devoir à la maison dans une classe de seconde.

Document élève :

 

Voici un algorithme :

 

 Entrée            Demander a  et b

 Traitement     a prend la valeur a+b

                      b prend la valeur a-b

                      a prend la valeur a-b

 Sortie             Afficher a et b 

1°/ Exécuter cet algorithme "à la main" en faisant apparaître les valeurs successives de a et b dans le tableau ci-dessous.

 

Entrée
a b
   
Traitement
a b
   
   
Sortie
a b
   

 

Recommencer en choisissant d'autres valeurs initiales de a et b.

Que fait cet algorithme ?

 

2°/ Programmer cet algorithme sur la calculatrice, et tester son bon fonctionnement en variant le choix de a et b (nombres entiers ou non, de même signe ou non, grand ou petit,…).

 

3°/ Tester l'algorithme à la main, puis avec la calculatrice,

avec a=100 000 000 000 000 et b=1

Que constate-t-on ? Comment expliquer cette erreur ?

 

4°/ Écrire un autre algorithme qui produit la même chose, mais qui fonctionne correctement avec les valeurs de la 3ème question.

 

À télécharger : le corrigé distribué aux élèves

 

Rémy Coste

 

Les chantiers de pédagogie mathématique n°158 septembre 2013

La Régionale Île-de-France APMEP, 26 rue Duméril, 75013 PARIS 

Nantes 2017

Les inscriptions sont possibles jusqu’au dimanche 15 octobre (tarif préférentiel jusqu'au samedi 16 septembre)

 

Le groupe M.:A.T.H.

Le groupe M.:A.T.H. (Mathématiques : Approche par des Textes Historiques) poursuit ses séances de lecture de textes historiques.

lire la suite

Nouvelle annonce

Des postes pour la formation des professeurs des écoles en mathématiques à l'ESPE de l'académie de Versailles sont à pourvoir au 1er septembre 2017.

Voir l'annonce

Notre bulletin Les Chantiers

Le N°173 des Chantiers pédagogique de mathématique est en ligne

Lire le N°173

juin 2017

Concours 2017

"Maths et langages"

 

Voir les résultats du concours

 

Réunion du comité

Prochaine réunion 

septembre 2017

Le coin des annonces

Vous pouvez déposer vos annonces sur le site.

 

Repères de l'IREM

La revue Repères IREM, l'une des trois revues du réseau des IREM, est disponible en consultation à l'IREM de Paris

Algorithmique au bac S 2012

Dans le n°154 des Chantiers de Pédagogie Mathématique de Septembre 2012 , un article de Dominique Baroux et de Cécile Prouteau à propos des exercices d’algorithmique du bac S 2012

 

Dernière mise à jour

 

samedi 24 juin 2017