Algorithmique et racine carrée en seconde publié le 03/03/2020 - mis à jour le 19/03/2020
Parcours sur les algorithmes d'approximation de racines carrées
Un parcours autour des algorithmes d’approximations de racines carrées
Motivations
En classe de seconde, le statut particulier de $\sqrt{2}$ a été évoqué au début de l’année au moment de l’étude des nombres réels et son caractère irrationnel avait été mis en avant à ce moment là.
Lors du chapitre sur les fonctions de référence, l’idée était de faire le lien entre $\sqrt{2}$ et la fonction carré, en présentant ce nombre comme la solution positive de l’équation $x^2=2$. Lors de l’étude des résolutions d’équations de la forme $x^2=a$, l’interrogation suivante fut proposée à la classe :
Ce questionnement était en lien avec le programme de mathématiques de seconde qui suggère l’étude de plusieurs algorithmes classiques proposant des approximations de nombres réels :
- Déterminer par balayage un encadrement de $\sqrt{2}$ d’amplitude inférieure ou égale à $10^{-n}$.
- Pour une fonction dont le tableau de variations est donné, algorithmes d’approximation numérique d’un extremum (balayage, dichotomie).
L’idée du parcours était donc de découvrir plusieurs méthodes d’approximations, s’appuyant sur les quatre opérations arithmétiques et sur les structures de bases de l’algorithmique.
Première approche avec GeoGebra et formalisation de l’algorithme de balayage
Après avoir brièvement présenté le fonctionnement d’une machine (ordinateur, calculatrice, ....) en mettant en avant les opérations logiques et arithmétiques qu’elle est capable d’exécuter et en insistant sur le fait que les calculs plus complexes reposent sur des séquences d’instructions organisées en programmes, la nécessité de traduire la recherche d’une racine carrée en algorithme a été posée.
Une première approche a été effectuée avec GeoGebra en s’appuyant sur la fonction carré. Dans cette activité, les élèves devaient :
- construire la courbe de la fonction $x\mapsto x^2$ ;
- créer un curseur $a$ débutant à 0, d’incrément initial 1 ;
- créer un affichage donnant la valeur de $a^2$ ;
- faire varier le curseur jusqu’à ce que le carré $a$ dépasse $2$, de sorte qu’un encadrement de $\sqrt{2}$ à l’unité soit obtenu ;
- affiner l’encadrement en réglant l’incrément du curseur à des valeurs de plus en plus petites
Un temps de synthèse a alors été proposé pour faire émerger la structure algorithmique sous-jacente : un balayage régulier de l’intervalle $[0\,;\,+\infty[$, d’un pas donné, qui se poursuit tant que le carré du curseur n’avait pas dépassé 2 : $x^2<2$.
La formalisation de ce mécanisme n’a pas été immédiate et la modélisation a bloqué sur deux points :
- formalisation d’une variable
pas
qui devait gérer le pas du balayage : les réglages successifs de l’incrément du curseur devait mener à l’émergence de cette variable mais tous les élèves ne l’ont pas perçu ; - incrémentation de la variable
pas
: la traduction de l’action on passe à la valeur suivante n’a pas été simple à traduire et l’affectationx <- x + pas
est loin d’être naturelle. L’idée d’"écraser" le contenu d’une variable par une expression qui contient elle-même ce contenu a posé problème.
En revanche, la structure du tant que
est assez vite ressortie mais les élèves l’ayant dans un premier temps traduite par le Répéter jusqu'à ce que
vu au collège avec Scratch, la différence sur la condition d’arrêt a été l’objet de discussions.
Une animation GeoGebra a ensuite été projetée au tableau afin de clarifier les propos et favoriser la représentation mentale de la situation. La visualisation de plusieurs simulations a permis de renforcer la perception de l’algorithme et les invariants du problème :
Vers les algorithmes de balayage
Cette archive contient tous les fichiers (fichiers tex, GeoGebra, scripts Python, illustrations,...) utilisés lors de la séquence.