Les nouvelles technologies pour l’enseignement des mathématiques
Intégration des TICE dans l’enseignement des mathématiques

MathémaTICE, première revue en ligne destinée à promouvoir les TICE à travers l’enseignement des mathématiques.

Regards croisés sur l’algorithmique et la programmation (8)

Dans ce nouveau numéro, nos complices explorent la résolution numérique des équations (dichotomie, Newton)

Article mis en ligne le 2 janvier 2015
dernière modification le 9 décembre 2015

par Alain Busser, Guillaume Connan, Stéphan Manganelli, Yves Martin

Des algorithmes particulièrement utiles sont ceux permettant de résoudre de façon approchée des équations. Dans des sujets de bac ou autres...

Cet article peut être librement diffusé et son contenu réutilisé pour une utilisation non commerciale (contacter l’auteur pour une utilisation commerciale) suivant la licence CC-by-nc-sa (http://creativecommons.org/licenses/by-nc-sa/3.0/fr/legalcode)

Contribution d’Alain Busser

Spontanément, lorsqu’on leur laisse le choix, les élèves de Seconde ont plus tendance à inventer la résolution par balayage que la dichotomie ; en terminale les choix sont plus équilibrés. En première c’est la méthode de Newton qui peut être vue géométriquement avec un logiciel de géométrie dynamique possédant un outil « tangente ».

  • Avec JavaScript, la résolution de l’équation x=cos(x)
    • Par balayage
    • Par itération
  • Avec CoffeeScript :

Des scripts à tester en ligne, pour découvrir la dichotomie en jouant, pour tester la dichotomie et la méthode de Newton-Raphson avec une précision arbitraire (si on a la patience) :

le document sous forme d’une page web
  • Avec MathsOntologie :

La programmation de la dichotomie avec MathsOntologie a été traitée ici et (sujet bac S Réunion-Métropole)

Résolution de x3=50

Copier le script suivant dans l’interpréteur Sophus et le tester : Il calcule la racine cubique de 50 par dichotomie :

  1. a = nouvelle Variable 3
  2. b = nouvelle Variable 4
  3. 8 fois faire
  4.     m = nouvelle Variable a.valeur
  5.     augmenter m de b
  6.     diviser m par 2
  7.     y = nouvelle Variable m.valeur
  8.     élever y au cube
  9.     diminuer y de 50
  10.     Si y.estNégatif()
  11.         mettre m, dans, a
  12.     Sinon
  13.         mettre m, dans, b
  14. montrer a

Télécharger

Variante, avec affectations :

  1. a devient 3
  2. b devient 4
  3. 8 fois faire
  4.     m devient a
  5.     m += b
  6.     m /= 2
  7.     y devient m*m*m-50
  8.     Si y < 0
  9.         a devient m
  10.     Sinon
  11.         b devient m
  12. montrer a

Télécharger

Et voici la version Newton, toujours en Sophus :

  1. u = nouvelle Variable 1
  2. 8 fois faire
  3.     v = nouvelle Variable u.valeur
  4.     élever v au carré
  5.     tripler v
  6.     inverser v
  7.     multiplier v par 50
  8.     diminuer u de 1 tiers
  9.     augmenter u de v
  10. montrer u

Télécharger

Et la version avec affectations, plus courte :

  1. u devient 1
  2. 8 fois faire
  3.     u devient 2*u/3+50/(3*u*u)
  4. montrer u

Télécharger

Contribution de Guillaume Connan

Guillaume, une fois de plus, revient d’une tournée triomphale en Syldavie où on achève bien les chevaux pianos :

La complexité, c’est simple comme la dichotomie

Du même auteur, on consultera avec le même plaisir, les ressources suivantes :

Contribution de Stephan Manganelli

Stephan Manganelli continue son tir à LARP [2] :

L’article en pdf

Contribution d’Yves Martin

Yves Martin avait utilisé la dichotomie pour résoudre l’équation sin(x)-x×cos(x)-π/2=0 pour « le problème de la chèvre » dans cet article. Voici la syntaxe de l’expression dans DGPad :

  1. x0=Expression("x0","x0 = ","","","var a=1;var b=2;while(b-a>0.000000000001){c=(a+b)/2;if(f(c)<0){a=c;} else {b=c;}};(a+b)/4","-3","0.7");

L’expression s’appelle x0, elle s’affiche sous la forme « x0= » suivi de la valeur de l’expression, et l’expression elle-même est

  1. var a=1;var b=2;while(b-a>0.000000000001){c=(a+b)/2;if(f(c)<0){a=c;} else {b=c;}};(a+b)/4

Ensuite viennent les coordonnées de l’expression.