Lorsque j’ai découvert le programme destiné aux « spécialistes » en mathématiques de première et terminale ES, et plus particulièrement la partie dévolue à l’espace, je me suis immédiatement dit qu’il était très intéressant : l’ensemble étant essentiellement tourné vers la représentation de fonctions de deux variables, comme outil d’analyse de situations économiques.
Bien vite, j’ai du m’adapter au fait que la majorité des élèves s’orientant vers cette spécialité ne présente que rarement un goût prononcé pour la géométrie dans l’espace et, chose bien plus fâcheuse, n’a souvent pas ou peu développé les représentations en trois dimensions qui sont nécessaires à la pratique de cette dernière.
Pourtant, un constat paradoxal s’impose : la plupart des adolescents passent une partie non négligeable de leur temps à manipuler des représentations d’objets tridimensionnels, puisque les jeux vidéos les plus en vogue sont « en 3D ». Pourquoi ne pas tenter de créer un lien entre ces représentations et celles attendues en mathématiques ?
L’obstacle principal était évidemment technique, mais comme je suis un petit peu touche à tout dans le domaine de l’informatique et de la programmation, j’ai décidé de faire quelques essais, dans un premier temps par jeu et simple curiosité. Les premiers résultats furent encourageants et je décidai donc de me lancer dans un projet dont le cahier des charge était le suivant : produire un logiciel libre de représentation de fonctions de deux variables, facile d’accès pour un élève, permettant de manipuler à la souris des surfaces et d’afficher leurs intersections avec des plans. Le tout fonctionnant sur une machine de type netbook et sur les trois plateformes principales : Windows, Mac OS X et GNU/Linux.
Pour lutter (autant que possible, vu mon niveau technique ;) ) à armes égales avec nos concurrents ludiques, je décidai d’employer la bibliothèque logicielle openGL, très souvent utilisée dans le monde du jeu vidéo. Pour ceux que la partie technique intéresse, Ying est développé en C++, à l’aide de la bibliothèque WxWidgets. Le lecteur curieux pourra consulter l’annexe technique située à la fin de cet article.
Le nom du logiciel est à la fois un clin d’œil au monde du logiciel libre (même si les acronymes récursifs semblent agacer ces derniers temps) et une précision sur son but : Ying Is Not a Grapher (Ying n’est pas un grapheur de fonctions).
Un petit mot pour préciser que mon intention n’était bien sûr pas de réinventer la roue : en effet, les solutions libres existantes comme GNU Plot sont certes mathématiquement performantes (et beaucoup plus que ne le sera jamais Ying) mais peu adaptées aux élèves selon les critères exposés ci-dessus.
C’est à ce moment là que le projet fut retenu comme sujet d’un atelier de l’IREM de La Réunion, une première pour moi et surtout une expérience très enrichissante grâce à la qualité des échanges qui ont eu lieu dans ce cadre.
Les premières utilisations du logiciel en classe ont été faites à l’aide d’un ordinateur portable relié à un vidéoprojecteur manipulé par mes soins. Il s’agissait alors d’illustrer de manière dynamique le cours, les exemples et les exercices de base présentés en classe.
Le logiciel suscita un intérêt certain auprès des élèves qui demandèrent à le manipuler et, pour quelques téméraires, à pouvoir l’installer chez eux.
Voici, pour mémoire, ce que cela pouvait donner :
En version pleine :
Avec des lignes de niveaux z = k :
Remarquez les couleurs choisies avec goût (si le lecteur a une âme d’artiste, l’auteur serait ravi de recevoir quelques conseils esthétiques d’ordre graphique ;) )
Les remarques et questions formulées par les élèves amenèrent immédiatement des demandes d’amélioration et d’ajout de fonctionnalités.
Ce qui fut fait en vue d’une utilisation en salle informatique cette fois, les élèves disposant d’un ordinateur pour deux.
Je vous propose de suivre pas à pas un exemple inspiré de cette séance qui nous permettra, je l’espère, de nous familiariser avec les fonctions essentielles du logiciel.
Le sujet qui nous servira de support est l’exercice 3 du sujet du bac ES Asie de juin 2008. Il s’agit de visualiser une surface n’ayant rien de naturel pour le commun des mortels (voire même pour les autres !).
La figure de l’énoncé se présente ainsi :
L’exercice consiste essentiellement à l’étude des intersections de la surface d’équation z = x ln y avec 3 plans parallèles aux plans de base :
le plan d’équation x = 3,5
le plan d’équation y = 2
le plan d’équation z = 1
À l’avant, le « recourbement » de la figure n’est pas évident à visualiser (et non, n’est pas consécutif à une feuille repliée lors de la photocopie du sujet ...).
L’interface graphique de Ying est composée de trois zones :
À l’aide du logiciel, on peut « tourner » la figure et obtenir des angles de vue plus « clairs » pour les élèves (et leur professeur ? :) )
Le même angle de vue :
Un autre :
Un troisième :
Avec les lignes de niveaux (onglet fonctions, Afficher les lignes de niveaux) :
Astuce : le logiciel permet de faire tourner la figure de trois façons différentes :
On peut visualiser l’intersection de la surface S et du plan d’équation x = 3,5 : Aller dans l’onglet Plans
Astuce : On peut, à l’aide des curseurs et des boutons qui se passent d’explications (n’hésitez pas à faire des essais), afficher 3 plans. Il est également possible de visualiser en coupe, grâce au bouton... couper (!), qui possède trois états, permettant d’afficher l’intersection de la surface et de l’un des deux demi-espaces.
En coupe :
En coupe, vue de face :
Pour obtenir les projections sur les trois plans de base, appuyer sur la touche v, ou utiliser le menu Affichage->Vues
On peut visualiser l’intersection de la surface S et du plan d’équation y = 2 :
En coupe :
En coupe, vue de face :
On finit par l’intersection avec le plan d’équation z = 1 :
Remarquez sur cette dernière capture d’écran les deux triangles qui n’apparaissent pas de la même couleur que le reste de la surface. Ils sont parallèles au plan d’équation z = 0, et comme le logiciel se sert d’un vecteur normal et de la position de la source lumineuse pour calculer la couleur des objets, cela crée cet effet d’optique parasite.
Afin de montrer l’utilisation qui peut être faite du logiciel, je vous propose une activité réalisée en salle informatique. Je me suis inspiré de l’exercice de spécialité de l’épreuve de métropole du baccalauréat de la série ES de juin 2010. L’objectif de cette activité est d’utiliser le logiciel Ying afin de visualiser, lorsque c’est possible, les réponses aux questions posées.
Elle a été proposée après une courte initiation au logiciel (voir plus haut) suivie d’un exercice où j’ai demandé aux élèves de représenter une fonction de deux variables déjà vue en exercice et les ai laissé explorer les possibilités du logiciel. Les fonctionnalités qui ont eu le plus de succès sont la manipulation des échelles et, bien évidemment, la modification des paramètres d’affichage (couleur, transparence, reflets ...).
Dans l’activité qui nous intéresse, le logiciel peut servir à conjecturer une réponse qui est démontrée par la suite, ou à visualiser ce qui a été préalablement démontré.
Le problème est le suivant :
Un équipementier fabrique pour une usine de l’industrie automobile deux types de sièges : un modèle « luxe » et un modèle « confort ».
Soit x le nombre, exprimé en centaines, de sièges « luxe » et y le nombre, exprimé en centaines, de sièges « confort » produits chaque mois.
La fonction coût mensuel de production est la fonction F définie pour x et y appartenant à l’intervalle [0 ; 3] par :
$F (x, y) = x^{2}$−$2x+y^{2}$−$4y+6$
F (x, y) désigne le coût mensuel de production, exprimé en dizaines de milliers d’euros, pour x centaines de sièges « luxe » et pour y centaines de sièges « confort ».
Le but de l’exercice est de déterminer graphiquement les quantités mensuelles respectives de sièges « luxe » et « confort » que l’équipementier doit produire à partir du mois de juillet 2010 pour minimiser le coût mensuel de production.
Après quelques manipulations, on obtient une figure qui ressemble à cela :
On peut alors utiliser l’intersection avec des plans de type x = k puis y = k’ pour déterminer les valeurs de x et y correspondant au minimum de F. La manipulation des curseurs permet de conclure assez rapidement.
La partie algébrique du problème devient alors une vérification des conjectures obtenues par lecture graphique.
Les nouveaux programmes de la série ES prévoient la disparition des fonctions de deux variables à la rentrée 2012. Le logiciel Ying voit ainsi son existence déjà compromise ... dans le secondaire. On peut espérer qu’il continuera son chemin dans le supérieur si on lui trouve un certain intérêt.
On pourrait aussi imaginer des projets d’algorithmique se basant sur quelques idées contenues dans le code de Ying dans le cadre de la future option Informatique - Sciences du Numérique.
Pour ma part, je retire de cette aventure une expérience technique qui devrait me permettre un réinvestissement dans de futurs développements.
Mais le plus intéressant reste les échanges que j’ai pu avoir avec les élèves et les nombreux collègues qui se sont investis dans le projet. Qu’il me soit permis de les remercier pour leur soutien et la motivation qu’ils m’ont apportée.
Liens :
Ying a été écrit en C++, en utilisant les bibliothèques OpenGL pour la partie affichage en 3D et wxWidgets pour l’interface graphique.
Le développement s’est fait avec l’éditeur Code::Blocks sous Ubuntu, avec utilisations de chaines de compilations croisées permettant d’obtenir les binaires exécutables Windows depuis GNU/Linux. Une possibilité de compiler à l’aide de CMake a été rajoutée (pour MacOS X notamment).
wxWidgets est un ensemble d’objets C++ permettant de construire rapidement une interface graphique qui aura la particularité de s’adapter au système d’exploitation visé. Contrairement à ses homologues que sont Qt et GTK, wxWidgets vient en quelque sorte se greffer sur le système hôte, ce qui a pour effet de rendre l’application conforme aux habitudes du système (fenêtres, emplacement des menus et boutons ...).
Point de vue algorithmique
Du point de vue algorithmique, deux points ont nécessité un travail important :
Un petit exemple en gros plan de ce que cela donne :
On pourrait imaginer un projet algorithmique se basant sur cette idée dans le cadre de la future option Informatique - Sciences du Numérique , même si une partie des notions requises aura disparu du programme de mathématiques de lycée.