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

Pages : 123

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 :

Comment calculer $\sqrt{2}$ ? Comment font les machines pour renvoyer une approximation de ce nombre ?

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’affectation x <- 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 :

Animation illustrant la recherche d'une racine carrée par un algorithme de balayage

Choisissez un nombre dont vous voulez la racine carrée, réglez le pas de balayage et lancez la recherche.


 Vers les algorithmes de balayage

Document joint

Cette archive contient tous les fichiers (fichiers tex, GeoGebra, scripts Python, illustrations,...) utilisés lors de la séquence.