Mathématice, intégration des Tice dans l'enseignement des mathématiques  
Sommaire > N°53 - janvier 2017 > Le point sur MathGraph32

Le point sur MathGraph32
Moteur de recherche
Mis en ligne le 13 décembre 2016, par Yves Biton

Cet article s’inscrit en continuité (mais aussi en rupture) dans le fil des articles déjà publiés au sujet de MathGraph32 dans MathémaTICE.

Le logiciel est devenu "Projet de Sésamath". Son code a beaucoup évolué. De nouvelles fonctionnalités l’ont enrichi. Son auteur, Yves Biton, y travaille au quotidien, pour que les utilisateurs des manuels Sésamath disposent d’un outil performant pour tester les corrigés et traiter les exercices proposés.

Celles et ceux qui ne connaissent pas encore MathGraph32 pourront découvrir grâce à ces articles un logiciel performant, gratuit et vraiment libre. (NDLR)

Présentation

Historique

Les spécificités de MathGraph32


Historique

MathGraph32 a été édité pour la première fois en 2002 par le CNDP.
A l’époque, le logiciel n’était pas libre et ne fonctionnait que sous Windows. Il était écrit en C++ objet.

MathGraph32 fut le premier logiciel de géométrie dynamique à prendre en charge de façon native le calcul sur les nombres complexes.

En 2002 j’ai découvert en testant le logiciel un nouveau théorème que j’ai démontré, basé sur le théorème de Ptolémée. Une démonstration de ce théorème ainsi que des figures dynamiques sont visibles sur cet article.

En 2008 le logiciel est devenu gratuit (mais pas libre).

Je me suis en suite attaqué à une réécriture complète du logiciel en Java et la première version Java est sortie en 2009.

La version Java est trilingue : Français, Anglais et Espagnol. Un collègue Uruguayen s’est chargé de toutes les traductions en espagnol (sur le logiciel lui-même et sur le site de MathGraph32).

En mai 2010 j’ai passé la version Java sous licence libre GNU GPL3.

Depuis, le logiciel a constamment évolué.
C’est maintenant un projet de l’association Sesamath.

Je citerai les évolutions majeures du logiciels :

- Possibilité d’afficher des formules écrites avec du code LaTeX, cet affichage pouvant être dynamique grâce à des fonctions LaTeX spécifiques au logiciel.

- Enrichissement du moteur de calcul, avec par exemple la possibilité de calculer des dérivées partielles de fonctions de plusieurs variables (MathGraph32 sait calculer la dérivée d’une fonction réelle depuis sa première version).

- Possibilité de mettre sur la figure des champs d’édition de formules permettant de modifier directement la formule d’une fonction sur la figure. La formule, entrée en ligne, peut-être visualisée en temps réel en écriture naturelle.

Un exemple de cette fonctionnalité sur le manuel numérique de première S sur le site de Sesamath : Exemple
Cliquez sur les boutons + et - pour faire apparaître les termes de la suite récurrente et changez à votre guise la formule de la fonction et du premier terme de la suite.

- Exportation de la figure, d’abord avec une applet (technologie qui pose des problèmes de sécurité sur les navigateurs désormais) puis en html pur (javascript).

- Exportation de la figure en LaTex-Tikz, qui fournit des résultats de grande qualité.

- Une ergonomie entièrement remaniée lors du passage à la version 5 avec des barres d’icônes déroulables et regroupées par type.


Les spécificités de MathGraph32

- MathGraph32 n’impose pas de nommer tous les objets créés. Il est possible de nommer un point ou une droite à la volée lors de sa création (un éditeur apparaît sous le point ou la droite créé) mais on peut choisir de ne pas lui attribuer un nom.

- MathGraph32 permet de créer des macros permettant d’agir sur la figure, dans un but pédagogique : Démasquer des objets cachés, lancer une animation sur la figure et bien d’autres choses encore.

Un exemple sur cette figure du manuel de Première S sur le site de Sesamath
Il s’agit pour cette figure d’une correction d’exercice. Cliquez sur une des cinq macros à gauche pour lancer une action sur la figure.

- MathGraph32 permet de créer des lieux d’objets (générés par un point ou par une variable). On peut ainsi par exemple créer le lieu d’un courbe représentant une fonction dépendant d’un paramètre. Les graduations des repères sont elles mêmes des lieux d’objets

- MathGraph32 permet d’utiliser autant de repères qu’on le souhaite.
Il est possible bien sûr de créer une nouvelle figure munie d’un repère (avec l’icône ).

Tous les types usuels de repère sont disponibles : Repère orthonormé, orthogonal, oblique, oblique normé et on peut choisir différents types de quadrillage. Les graduations des repères peuvent être déplacées avec la souris et leur taille peut être modifiée.
On peut aussi depuis la version 5 créer une figure avec un repère de type modifiable pour montrer aux élèves que certaines propriétés valables dans un repère orthonormal ne sont plus valables dans un repère quelconque (Utiliser le menu Fichier - Nouvelle figure avec - Repère de type modifiable ...).

- Pour le collège (et la classe de seconde) MathGraph32 permet d’utiliser des outils spécifiques : un rapporteur virtuel, possibilité de créer un carré ou un triangle équilatéral en cliquant sur deux points, possibilité de créer un parallélogramme en cliquant sur trois points.

- Tous les styles de marques de segment et d’angle sont disponibles (et la taille des marque d’angle peut être modifiée par capture avec la souris). Pour le lycée, on peut aussi créer des marques d’angle orienté et même des marques orientées dans le sens direct et dans le sens indirect.

- MathGraph32 gère de façon native le calcul sur les nombres complexes et leur représentation graphique : On peut par exemple mesurer l’affixe d’un point dans un repère ou créer un point défini par son affixe.

- Le protocole de la figure permet de voir comment la figure a été comprise. Une boîte de dialogue flottante apparaît et chaque objet est décrit de façon précise, avec un vocabulaire mathématique rigoureux. L’objet sélectionné dans la liste clignote sur la figure ainsi que ceux qui ont servi à sa construction.

La figure ci-dessous montre le début de la description d’une figure :

- MathGraph32 permet le reclassement d’objet, c’est-à-dire de déplacer un objet dans la liste des objets créés, vers le début ou la fin. Les boutons de droite sur la figure ci-dessus permettent ce type de reclassement.
Un exemple : Vous avez créé une fonction et sa courbe représentative. Finalement vous souhaitez que la formule de cette fonction dépende d’un calcul k (paramètre). Vous pouvez alors créer un calcul nommé k puis le reclasser avant la fonction f. Vous pourrez ensuite modifier la formule de la fonction f et la faire dépendre de k.

- MathGraph32 permet d’exporter une figure dans un page html, sans utilisation d’applet. Les points mobiles peuvent être capturés et les macros présentes sur la figure peuvent être exécutées.

- MathGraph32 permet d’exporter la figure en code LaTeX tikz.

- MathGraph32 a des possibilités de traitement de calcul avancées qui permettent de mettre en ligne des exercices de calcul comme cet exercice de calcul de dérivée disponible sur le site de MathGraph32 (et utilisant la technologie j3p de l’association Sesamath) : L’exercice

- MathGraph32 permet de créer des figures en pseudo-3D. Ce n’est pas un vrai logiciel 3D mais il peut permettre de réaliser des figures parlantes pour les élèves comme cette figure sur le manuel numérique de seconde de Sesamath. Capturez $\theta$ pour faire tourner la figure. Lancez l’animation en cliquant sur la macro Replier (vous pouvez même faire tourner la figure pendant que le patron se replie).

- MathGraph32 permet de créer ses propres macro-constructions et même d’implémenter des constructions de façon itérative ou récursive.
Un exemple de figure fractale utilisant une construction de façon récursive sur le manuel numérique de première de Sesamath : Tapis de Sierpinski.

Retour en haut de la page

Exemples de Figures


Figures pour illustrer une notion de cours

Figures de niveau avancé


Figures pour illustrer une notion de cours

- En seconde, Cette figure (qui devrait s’ouvrir dans un nouvel onglet de votre navigateur) permet d’illustrer le signe d’une fonction affine.
Vous la trouvez sur cette page du manuel numérique de seconde de Sesamath.

Un éditeur de formule permet de modifier la formule de la fonction affine en haut et à gauche (une formule non affine est refusée).
Deux macros permettent de faire apparaître ou masquer le tableau de signes correspondant.
Vous pouvez capturer x avec la souris sur l’axe des abscisses et vous remarquerez que x figure aussi dans le tableau de signes avec le signe de f(x) mis en évidence dans le tableau.

- En Terminale S, la figure ci-dessous (disponible sur cette page du manuel numérique de TS de Sesamath) permet de visualiser l’intersection de deux plans donnés par une équation cartésienne. Comme elle donne les caractéristiques de la droite d’intersection si les plans sont sécants, elles n’est disponible sur le manuel Sesamath que pour les professeurs connectés avec leur compte Sesaprof.

Vous pouvez modifier les équations des deux plans, faire tourner la figure en capturant $\theta$ , zoomer ou dézoomer en cliquant sur les boutons + et - en bas et à droite de la figure.

Vous remarquerez que si les coefficients des équations de plans sont entiers et si les droites sont sécantes, les coordonnées définissant la droite d’intersection sont données sous forme d’entiers ou de fractions irréductibles.

- En première S, la figure ci-dessous permet de visualiser les cosinus et sinus d’angles remarquables. Elle est disponible sur cette page du manuel numérique Sesamath.

Cliquez simplement sur une macro pour voir apparaître les cosinus et sinus de l’angle choisi avec visualisation graphique.

- En première, cette figure (qui devrait s’ouvir dans un nouvel onglet du navigateur) pour illustrer la notion de loi binomiale et de chemins, disponible sur cette page du manuel numérique de première S de Sesamath.

Vous pouvez capturer le curseur k pour faire varier le nombre de succès souhaités.

Vous remarquerez que les branches correspondant au nombre de succès souhaités se distinguent par leurs probabilités en rouge.

En bas et à droite de la figure, vous pouvez modifier la variable N en cliquant sur les bouton + ou - (de 2 à 5 générations de branches).

Cet article montre comment créer une figure analogue.

- En première S ou en seconde, la figure ci-dessous permet de faire comprendre le principe de la recherche de solutions d’équation f(x) = 0 par la méthode de dichotomie.
Cliquez sur les boutons + et - en bas et à droite de la figure pour changer d’étape (ces boutons sont associés à une variable).
Vous pouvez aussi modifier la formule de la fonction et l’intervalle [a ;b] de recherche de la solution (la fonction doit être strictement monotone sur [a ;b] et f(a) et f(b) de signes contraires).

- En première S (ou seconde) la figure ci-dessous disponible sur cette page permet d’illustrer la notion d’enroulement autour du cercle trigonométrique.

Vous pouvez changer le pas d’enroulement en capturant le curseur du bas.

Cliquez sur les macro Animer pour lancer l’enroulement dans le sens direct ou indirect.

Cliquez sur la macro Initialiser pour réinitialiser la figure.

Retour en haut de la page

Figures de niveau avancé

Cet article montre comment utiliser les capacités avancées de calcul de MathGraph32 pour créer une courbe du "BlancManger" (il doit s’ouvrir dans un nouvel onglet du navigateur).

Cet article montre comment utiliser le calcul sur les nombres complexes pour représenter les attracteurs de Gumowski-Mira (il doit s’ouvrir dans un nouvel onglet du navigateur). Cet article s’est inspiré de cet article d’Yves Martin sur MathémaTICE.

Cet article montre comment représenter l’ensemble de Julia en utilisant des suites récurrentes complexes (il doit s’ouvrir dans un nouvel onglet du navigateur).

Retour en haut de la page

Les constructions


Les macro-constructions de Mathgraph32 permettent d’obtenir, à partir de certains objets d’une figure existante (les objets sources) la création de nouveaux objets.

Contrairement à la plupart des autres logiciels de même type, il est possible de voir comment a été créée une construction et éventuellement de repartir d’une construction existante pour la modifier via le menu Constructions - Fusionner les constructions de la figure.

Les objets sources de type numérique doivent être déclarés en premier.

Pour les exemples ci-dessous il est conseillé d’utiliser la version 5.1.3 de MathGraph32 que vous pouvez télécharger sur cette page ou une version ultérieure.

Premier exemple : Création d’une fonction polynôme de degré inférieur ou égal à 3 dont la courbe représentative passe par 4 points donnés.

Avant d’entrer dans cet exemple il faut remarquer que des macros permettant d’obtenir ainsi un polynôme de degré inférieur ou égal à n passant par n + 1 points donnés sont disponibles via le menu Constructions - Utiliser une construction prédéfinie dans le dossier Polynomes (degré de 2 à 7).

Notre première macro-construction n’utilisera que des objets sources numériques.

Créez une nouvelle figure vierge, sans repère avec l’icône .

Nous avons d’abord besoin de créer 8 calculs correspondant aux coordonnées des quatre points par lesquels devra passer la courbe de la fonction polynôme.

Pour cela utilisez l’icône (qui se trouve dans l’avant-dernière rangée d’icônes) ou le raccourci clavier Ctrl - E.

Créez ainsi 8 calculs nommés x1, x2, x3, x4, x5, x6, x7 et x8 avec comme valeurs respectives -2, 0, -1, 1, 0, 1, 1, 1 (les valeurs choisies n’ont pas vraiment d’importance, car ces calculs seront nos objets sources).

Pour créer notre fonction polynôme nous allons utiliser la formule de Legendre.

Avec l’icône créez une fonction nommée q comme sur la figure ci-dessous.

Pour plus de facilité vous pouvez recopier le contenu du champ ci-dessous dans l’éditeur de formules de la boîte de dialogue .

y1*(x-x2)*(x-x3)*(x-x4)/(x1-x2)/(x1-x3)/(x1-x4)+y2*(x-x1)*(x-x3)*(x-x4)/(x2-x1)/(x2-x3)/(x2-x4)+y3*(x-x1)*(x-x2)*(x-x4)/(x3-x1)/(x3-x2)/(x3-x4)+y4*(x-x1)*(x-x2)*(x-x3)/(x4-x1)/(x4-x2)/(x4-x3)

Nous voulons que notre macro-construction fournisse comme objets finaux les coefficients de ce polynôme et la fonction polynôme correspondante.

Pour calculer les coefficients du polynôme nous allons utiliser la possibilité pour MathGraph32 de calculer des dérivées formelles. Nous pourrons ainsi calculer les coefficients de Taylor de ce polynôme. L’icône correspondante se trouve dans l’avant-dernière rangée d’icônes (icônes de calcul et curseur).

Utilisez l’icône pour créer la fonction dérivée de p que nous appellerons p1 comme ci-dessous :

.

Procédez de même pour créer la dérivée de p1 que vous appelerez p2. p2 sera donc la dérivée seconde de p (la touche de raccourci F9 permet de réactiver l’outil précédent).

De même créez la dérivée de p2 que vous appelerez p3 : (p3 sera donc la dérivée troisième de p).

Nous allons maintenant calculer nos quatre coefficients.

Les formules de Taylor donnent : $a=\frac{f’’’(0)}{3 !}$, $b=\frac{f"(0)}{2 !}$, $b=\frac{f’(0)}{1 !}=f’(0)$ et $d=f(0)$

Créez quatre nouveaux calculs a, b, c et d avec les formules suivantes :

- a : p3(0)/6

- b : p2(0)/2

- c : p1(0)

- d : p(0)

Nous pouvons maintenant créer notre macro-construction.

Utilisez le menuConstruction - Choix des éléments sources - Graphiques.

La boîte de dialogue ci-dessous apparaît :

Il faut transférer les éléments sources de la gauche vers la droite avec le bouton Insérer ou un doucle clic sur chaque élément.

Les éléments sources sont x1, x2, x3, x4, x5, x6, x7 et x8.

A la fin du transfert de la gauche vers la droite, la liste de gauche se retrouve vide comme ci-dessous.

Nous allons maintenant choisir les éléments finaux de notre construction.

Utilisez pour cela le menu Constructions - Choix des objets finaux - Numériques.

Dans la liste proposée, sélectionnez p, a, b, c et d (Il faut appuyer sur la touche Ctrl pour une sélection multiple). Validez.

Il reste à achever notre construction. Utilisez le menu Constructions - Finir la construction en cours. Remplissez la boîte de dialogue comme ci-dessous :

Vous pouvez copier le code ci-dessous dans le champ Informations sur la construction :

Fournit une fonction polynôme de degré inférieur ou égal à 3
dont la courbe passe par quatre points donnés
#1:Abscisse de point 1
#2:Ordonnées du point 1
#3:Abscisse de point 2
#4:Ordonnées du point 2
#5:Abscisse de point 3
#6:Ordonnées du point 3
#7:Abscisse de point 4
#8:Ordonnées du point 4

Les lignes commençant par le caractère # serviront à donner une information à l’utilisateur lorsqu’il implémente la construction.

Vous allez maintenant enregistrer cette construction sur votre ordinateur sous le nom PolynomDeg3.mgc à l’endroit de votre choix avec le menu Constructions - Enregistrer une construction de la figure dans un fichier. A noter que si vous enregistrez cette figure, la construction qu’elle contient sera contenue dans la figure enregistrée.

Deuxième exemple : Création de la courbe d’une fonction polynôme de degré inférieur ou égal à 3 passant par 4 points donnés.

Nous allons maintenant créer une autre figure et une autre construction utilisant la construction précédente.

Utilisez l’icône pour créer une nouvelle figure munie d’un repère (par exemple orthonormal mais ce n’est pas important).

A l’aide de l’outil (point libre, première rangée d’icônes), créez quatre points libres que vous nommerez A, B, C et D.

Utilisez l’icône (mesure d’abscisse dans un repère pour mesurer l’abscisse des points A, B, C et D que vous nommerez respectivement xA, xB, xC et xD.

Utilisez l’icône (mesure d’ordonnée dans un repère pour mesurer l’ordonnée des points A, B, C et D que vous nommerez respectivement yA, yB, yC et yD.

Utilisez le menu Construction - Incorporer une construction dans la figure depuis un fichier et allez chercher la construction PolynomeDeg3.mgc à l’endroit où vous l’aviez enregistrée, puis validez.

Une boîte de dialogue s’ouvre pour vous demander les objets sources.
Il faut par exemple affecter la mesure d’abscisse xA à l’élément source n°1 comme ci-dessous :

Affectez ainsi dans l’ordre xA, yA, xB, yB, xC, yC, xD, yD aux éléments sources 1, 2, 3, 4, 5, 6, 7 et 8, puis validez.

Il vous est demandé si vous voulez renommer les objets numériques finaux. C’est ici inutile.

Si vous appuyez sur la touche F6 (pour voir et modifier les objets numériques) vous pourrez voir que notre figure comporte maintenant une fonction p0 et quatre calculs a0, b0, c0 et d0 qui sont les objets finaux de notre construction.

Nous allons maintenant créer la courbe représentative de la fonction p0. Nous n’utiliserons pas pour cela l’icône car la courbe dépendrait de l’origine du repère. Nous allons donc implémenter une construction prédéfinie à l’aide du menu Constructions - Utiliser une construction prédéfinie.

Ouvrez le dossier Courbes et choisissez la construction Courbe Fonction Pour Construction Sur R.

Affectez à l’élément source n°1 le repère (O,I,J) comme ci-dessous :

et de même affectez à l’élément source n°2 la fonction p0 puis validez.

La courbe apparaît. Vous pouvez si vous le souhaitez modifier sa couleur et son style de tracé avec l’outil

Nous allons maintenant créer une nouvelle macro construction qui, à partir d’un repère et de quatre points, construira la courbe de la fonction polynôme correspondante.

Utilisez d’abord le menu Constructions - Choix des objets sources - Numériques et choisissez comme ci-dessous le repère (O,I,J) comme seul objet source numérique.

Utilisez maintenant le menu Constructions - Choix des objets sources - Graphiques et cliquez successivement sur les points A, B, C et D.

Nous allons maintenant choisir les objets finaux graphiques avec le menu Constructions - Choix des objets finaux - Graphiques : Cliquez sur la courbe qui est notre seul objet final graphique.

Choisissons maintenant les objets finaux numériques avec le menu Constructions - Choix des objets finaux - Numériques. Remplissez la boîte de dialogue comme ci-dessous puis validez :

Il nous reste à finaliser notre construction avec le menu Constructions - Finir la construction en cours comme ci-dessous :

Voici le code à coller dans le champ Infos :

Construit la courbe d'une fonction polynôme de degré inférieur ou égal à 4
passant par 4 points donnés. Dans les objets finaux, p est la fonction polynôme
et a, b, c et d sont les coefficients.
#1:Le repère
#2:Le premier point
#3:Le deuxième point
#4:Le troisième point
#5:Le cinquième point

Utilisez le menu Construction - Enregistrer une construction de la figure dans un fichier pour enregistrer notre construction sous le nom CourbePolyPar4Points.mgc.

Nous allons pour finir créer une dernière figure dans laquelle nous utilserons cette nouvelle construction.

Utilisez l’icône pour créer une nouvelle figure munie d’un repère par exemple orthogonal.

Utilisez l’outil pour créer quatre points libres à coordonnées entières dans ce repère.

Utilisez maintenant le menu Constructions - Implémenter une contruction depuis un fichier et allez chercher la construction CourbePolyPar4Points à l’endroit où vous l’avez sauvegardée.

L’objet source n°1 (le repère) est choisi par défaut car la figure ne contient qu’un seul repère.

Il vous est ensuite demandé dans la ligne d’indication de cliquer sur quatre points qui seront donc nos quatre points précédemment créés.

La courbe apparaît.

Enregistrez votre figure.

Pour finaliser la construction, utilisez maintenant le menu Construction - Finir la construction en cours

Pour finir nous allons enrichir cette figure en affichant la formule de la fonction polynôme en arrondissant les coefficients du polynôme à ${10}^{-2}$ près.

Créez quatre calculs a, b, c et d avec les formules ci-dessous :

- a : int(a0*100+0.5)/100
- b : int(b0*100+0.5)/100
- c : int(c0*100+0.5)/100
- d : int(d0*100+0.5)/100

puis utilisez l’icône pour créer une nouvelle fonction nommée f avec comme formule a*x^3+b*x^2+c*x+d.
Attention : Décochez la case Tracer courbe car la courbe existe déjà.

Pour afficher la formule de la fonction f, nous allons créer un affichage LaTeX dynamique.

Utilisez pour cela l’icône .

Cliquez en haut et à gauche de la figure et remplissez la boîte de dialogue ainsi :

- Dans le champ Code LaTeX, entrez \ForSimpf.

- Cochez la case Effacement du fond

La formule est dynamique : Elle se modifie quand vous capturez les points A, B, C et D et elle est écrite toujours sous la forme la plus simple possible. Par exemple, si la courbe passe par l’origine, le coefficient constant 0 n’apparaît plus.

Le code LaTeX utilise une fonction LaTeX spécifique à MathGraph32 : \ForSimp{}. Cette fonction remplace les valeurs des calculs utilisés par la formule et l’écrit sous une forme simplifiée.

Voici la figure obtenue ci-dessous :

Retour en haut de la page

Le LaTeX

Nous allons ici montrer comment utiliser MathGraph32 pour réaliser la figure ci-dessous. Cette figure utilise un affichage LaTeX dynamique et des fonctions LaTeX internes au logiciel MathGraph32.

Le lecteur pourra aussi se référer à ce premier article et un second sur le site de MathGraph32.

Pour l’exemple ci-dessous il est conseillé d’utiliser la version 5.1.3 de MathGraph32 que vous pouvez télécharger sur cette page ou une version ultérieure.

Vous pouvez changer l’affixe du point dans le champ d’édition de z. Pour utiliser une racine carrée, utilisez la syntaxe rac() ou sqrt(). Si l’argument est remarquable (multiple de $\frac{\pi}{8}$ ou de $\frac{\pi}{12}$) il est écrit sous la forme d’une fraction de $\pi$.

Commencez par créer une nouvelle figure munie d’un repère orthonormal avec l’icône
(barre d’outils supérieure à gauche). Remplissez la boîte de dialogue comme ci-dessous en cochant la case Avec vecteurs

Vérifiez à l’aide du menu Options - Figure en cours que l’unité de la figure est le radian.

Dans la palette de couleurs, activez la couleur bleue, puis affectez cette couleur au vecteur $\vec{u}$ et à l’affichage LaTeX qui représente le nom.

Procédez de même pour donner au vecteur $\vec{v}$ et à l’affichage LaTeX associé la couleur verte.

Utilisez l’icône (avant dernière rangée d’icônes à gauche) pour créer un calcul complexe nommé z avec comme formule 3+3*i.

Vous allez maintenant créer un éditeur de formules qui permettra de modifier sur la figure la valeur de z.

Utilisez pour cela l’icône , cliquez en haut et à gauche de la figure et remplissez la boîte de dialogue comme ci-dessous (les éditeurs de formule peuvent être déplacés avec l’outiil de capture en capturant leur en-tête).

Nous allons maintenant créer un point d’affixe z dans notre repère.

Utilisez pour cela l’icône .

Dans la boîte de dialogue qui s’ouvre, entrez z dans le champ Affixe du point et validez.

Nous allons maintenant créer un affichage LaTeX lié à ce point avec l’outil .

Cliquez d’abord sur le point créé puis remplissez la boîte de dialogue comme ci-dessous :

Utilisez le menu Calculs - Nouveau calcul dans R - Partie réelle de complexe pour créer un calcul nommé a qui contiendra la partie réelle du complexe z.

Utilisez le menu Calculs - Nouveau calcul dans R - Partie imaginaire de complexe pour créer un calcul nommé b qui contiendra la partie imaginaire du complexe z.

Utilisez l’outil pour créer un point de coordonnées (a,0) et un point de coordonnées (0,b).

Dans la palette de style de trait, activez le style de trait pointillé, et joignez les deux derniers points créés au point M.

Utilisez le menu Calculs - Nouveau calcul dans R - Argument principal de complexe pour créer un calcul nommé argz contenant la mesure de l’argument du complexe z.

Utilisez le menu Calculs - Nouveau calcul dans R - Module de complexe pour créer un calcul nommé modz qui contiendra la partie imaginaire du complexe z.

Avec l’outil créez un calcul nommé q1 contenant comme formule argz/(pi/8).

Nous allons maintenant créer un calcul q’1 qui contiendra l’entier le plus proche de q1.

Utilisez l’outil pour créer un calcul nommé q’1 contenant comme formule int(q1+0.5).

De même créez un calcul nommé q2 contenant comme formule argz/(pi/12) et un calcul nommé q’2 contenant comme formule int(q2+0.5).

Créez maintenant les calculs suivants :

- g1 contenant comme formule pgcd(abs(q'1),8)

- n1 contenant comme formule q'1/g1

- d1 contenant comme formule 8/g1

- g2 contenant comme formule pgcd(abs(q'2),12)

- n2 contenant comme formule q'2/g1

- d2 contenant comme formule 12/g2

Les fonctions que nous allons maintenant créer nous serviront à créer un affichage LaTeX particulier.

Utilisez l’icône pour créer une fonction nommée f1 comme ci-dessous en n’oubliant pas de décocher la case Tracer courbe.

Voici la formule à entrer : n1*pi/d1

De même créer une fonction nommée f2 comme ci-dessous en n’oubliant pas de décocher la case Tracer courbe.

Voici la formule à entrer : n2*pi/d2

Nous allons créer un premier affichage LaTeX libre chargé d’afficher une valeur approchée du module de z : Utilisez l’icône et cliquez en haut et à gauche de la figure, au-dessous de l’éditeur de formules.

Dans le champ Code Latex entrez |z| = |\text{OM}| \approx \Val{modz,3} et cochez la case Effacement du fond.

Le code \approx peut être obtenu en cliquant le caractère correspondant dans la boîte de dialogue flottante (onglet Maths).

Le code \Val{modz,3} peut être obtenu en cliquant sur le bouton Insertion de valeur dynamique. Il provoque l’affichage approché de modz avec 3 décimales.

Au-dessous de cet affichage, créez un nouvel affichage LaTeX libre.

Avant de créer l’affichage laTeX suivant, nous allons créer une fonction et deux calculs.

Utilisez l’icône pour crée une fonction nommée zero comme ci-dessous en n’oubliant pas de décocher la case Tracer courbe.
Voici le contenu du champ Formule : abs(x)<0.000000001

Maintenant avec l’icône pour créer deux calculs :

- Un calcul nommé test1 contenant comme formule zero(q1-q'1)

- Un calcul nommé test2 contenant comme formule zero(q2-q'2)

Ces deux calculs nous servent à savoir si les nombres contenus dans q1 et q2 sont entiers (en évitant les erreurs d’arrondi).

Utilisez l’icône et cliquez en haut et à gauche de la figure, au-dessous de l’affichage précédent.

Voici le code LaTeX à entrer :

\If {test1}
{
\theta = arg(z) = \ForSimp{f1} \left[ 2\pi  \right]
}
{
\If{test2}
{
\theta = arg(z) = \ForSimp{f2} \left[ 2\pi  \right]
}
{
\theta = arg(z) \approx \Val{argz,3}\; rad
}
}

Quelques explications concernant ce code LaTeX :

Le code \If est spécifique à MathGraph32 : La syntaxe est \If{calcul}{Affichage si calcul = 1}{Affichage sinon}

Ainsi, si q1 est un nombre entier, on affichera la formule de la fonction f1, ce qui provoquera un affichage d’une fraction de $\pi$ quand l’argument est un multiple de $\frac{\pi}{8}$, sinon, si q2 est un nombre entier, on affichera la formule de f2 qui provoquera un affichage d’une fraction de $\pi$ quand l’argument est un multiple de $\frac{\pi}{12}$ et dans mes autres cas on affichera une valeur approchée de argz avec 3 décimales, suivi de rad.

A noter que le code \ForSimp{f1}} provoque un affichage simplifié de la formule contenue dans f1, en éliminant les multiplications ou divisions par 1 et les additions de 0. Ainsi, dans le cas où, par exemple, n1 = 1 et d1 = 4, le résultat affiché sera $\frac{\pi}{4}$ et non pas $\frac{1 \times \pi}{4}$.

Complétons la figure :

- Utilisez l’icône pour joindre le point O au point M par un segment (Choisir avant la couleur marron et un trait continu avec une épaisseur de 3 pixels par exemple).

- Utilisez l’icône pour créer une marque d’angle orienté en cliquant dans l’ordre sur le point I (sur l’axe des abscisse), le point O et le point M (Choisir avant la couleur rouge et un trait continu avec une épaisseur de 2 pixels par exemple). Les icônes de marques de segment ou d’angle figurent dans la sixième barre d’icônes à partir du haut).

- Utilisez l’icône pour créer la bissectrice de l’angle IOM.

- Utilisez l’icône pour créer un point lié à catte bissectrice, au-dessus de la marque d’angle.

- Utilisez l’icône pour créer un affichage LaTeX lié à ce dernier point comme ci-dessous :

Maintenant utilisez l’outil pour masquer la bissectrice et le point lié.

Pour finir nous allons créer trois macros chargées de montrer ou masquer l’affichage de module et de l’argument.

utilisez le menu Macro - Nouvelle macro - Apparition d’objets. Une boîte de dialogue s’ouvre. Remplissez la comme ci-dessous (Cliquez sur l’ellipse pour choisir la couleur de fond d’affichage) :

Voici le code de l’intitulé : $\text{Voir } |z|$

Cliquez ensuite sur l’affichage LaTeX du module de z puis clic droit de souris pour finir. La macro apparaît.

A remarquer que l’intitulé étant encadré par des caractères $, il sera affiché en style LaTeX.

A la droite de l’intitulé de la macro précédente, créez une nouvelle macro d’apparition d’objets comme ci-dessous puis cliquez sur l’affichage LaTeX de l’argument de z.

Voici le code de l’intitulé : $\text{Voir }arg(z)$

Enfin, utilisez le menu Macro - Nouvelle macro - Masquage d’objets et remplissez la boîte de dialogue comme ci-dessous :

Voici le code de l’intitulé : $\text{Cacher}$

Cliquez ensuite sur les deux affichages LaTeX du module et de l’argument puis clic droit de souris pour finir.

La figure est terminée.

Retour en haut de la page

L’export en html


Via le menu Fichier - Exporter dans - Page Web Dynamique (html5) MathGraph32 permet d’exporter une figure dans une page html, via une bibliothèque écrite en JavaScript.

Cette bibliothèque JavaScript évolue constamment.

Toutes les figures dynamiques insérées dans cet article utilisent cette bibliothèque.

Au contraire des autres logiciels de géométrie dynamique (à ma connaissance), l’exportation se fait dans un SVG, c’est à dire en vectoriel. Ceci permet de garder une qualité irréprochable d’affichage quand on zoome sur périphérique mobile, par exemple.

Lorsqu’une figure ne s’affiche pas correctement, essayez de vider le cache de votre navigateur car il se peut que le défaut ait été corrigé mais que votre navigateur utilise une version précédente qu’il a mise en cache.

Les figures MathGraph32 insérées dans une page html sont décrites dans une grande chaîne de caractères (Base 64).

Lorsque vous voulez récupérer une telle figure, demandez au navigateur d’afficher le code source de la page et copiez cette chaîne dans le presse-papier. Démarrez ensuite MathGraph32 et utilisez le menu Fichier - Nouvelle figure par code et collez cette chaîne dans le champ Code Base 64 de la figure.

Par exemple la chaîne ci-dessous contient le début du code d’une figure vierge munie d’un repère orthonormal (la chaîne complète ne peut pas être affichée dans cet article) :

TWF0aEdyYXBoSmF2YTEuMAAAAA8+TMzNAANmcmH###8BAP8BAAAAAAAAAAAHrwAABPUAAAAAAAAAAAAAAAEAAAAy#####

Inversement, pour récupérer le code Base 64 d’une figure, utilisez le menu Edition - Copier le code de la figure (Pour html).

Pour en savoir plus sur l’exportation html vous pouvez vous référer à cette page.

Retour en haut de la page

MathGraph32 et Sesamath

Après avoir été un projet soutenu par Sesamath, MathGraph32 est devenu un projet à part entière de l’association il y a deux ans.

Via son moteur en JavaScript, MathGraph32 intervient dans de nombreuses ressources Sesamath :

- Plusieurs centaines de figures dynamiques sur les manuels numériques de seconde, première S et terminale S (certaines ne sont accessibles que pour le professeur qui doit se connecter avec son code Sesaprof).

- Des exercices interactifs utilisent aussi ce moteur JavaScript en utilisant des figures dynamiques ou en utilisant certaines fonctions avancées de MathGraph32 permettant de savoir si l’élève a entré sa réponse sous la forme demandée. Il est ainsi possible de créer des exercices d’apprentissage du calcul

- L’exportation des figures en LaTeX-Tikz permet de créer des pas-à pas en PDF permettant de dévoiler pas à pas la solution d’un exercice.

Retour en haut de la page

Exercices de calcul

MathGraph32 permet, via les ressources de l’association Sesamath, de mettre en ligne des exercices de calcul.

Exemples d’exercices en ligne

Voici des exercices en ligne sur le site de MathGraph32 via l’outil j3p de Sesamath (qui doivent s’ouvrir dans un nouvel onglet de votre navigateur) :

La plupart de ces exercices sont disponibles dans LaboMep.

Exercices sur les puissances

Exercices de factorisation

Résolution d’équations du premier degré

Résolution d’inéquations du premier degré

Exercices de calcul formel (qui conviennent aussi en classe de première).

Exercices sur les équations de droites (les deux derniers sont des exercices de transformation d’équation cartésienne en équation réduite)

Exercices de réduction au même dénominateur

Exercices sur les dérivées (niveau première)

Introduction sur un exemple des outils offerts par MathGraph32 pour créer des exercices de calcul

Voici un des ces exercices de calcul de dérivée en première. Il doit démarrer dans un nouvel onglet de votre navigateur.

L’éditeur utilisé par les réponses est un éditeur de formules de MathGraph32.

L’élève doit rentrer sa réponse en ligne mais voit en temps réel ce que donne la formule qu’il a tapée. Il est ainsi forcé de mettre les parenthèses, l’oubli des parenthèses étant un problème majeur de calcul au lycée de nos jours.

Il est spécifié dans le texte qu’il doit donner la dérivée sous forme réduite au même dénominateur, simplifiée au maximum.

Quand l’élève appuie sur la touche Entrée, sa réponse est évaluée.

Si sa réponse est incorrecte sur le plan syntaxique, le champ d’édition devient rouge.

Si la réponse est correcte, elle s’affiche en bleu.

S’il pense qu’il a fini l’exercice, il doit valider en cliquant sur le bouton OK à droite.

Pour éviter de retaper tout à chaque fois, l’élève peut cliquer sur le bouton permettant de recopier la réponse précédente.

Dans cet exercice, on lui laisse le droit de se tromper une fois (tout cela peut être paramétré).

La figure ci-dessous permet de comprendre le fonctionnement de l’exercice :

Dans cette figure nous avons dévoilé la correction de l’exercice ainsi que l’affichage LaTeX donnant la formule à dériver.

Si, par exemple, vous entrez dans le champ d’édition -3+3/x² vous voyez que la valeur de reponse est 2 : La réponse est bonne mais n’a pas été réduite au même dénominateur.

Si vous entrez une réponse fausse, la valeur de reponse sera 0.

Si vous entrez comme réponse 3(1-x²)/x², reponse vaut 1 ce qui correspond à une réponse exacte et écrite sous une des formes attendues.

Montrons quelques étapes pour construire une figure de ce type.

Pour l’exemple ci-dessous il est conseillé d’utiliser la version 5.1.3 de MathGraph32 que vous pouvez télécharger sur cette page ou une version ultérieure.

Démarrez MathGraph32 et utilisez le menu Fichier - Nouvelle figure sans longueur unité.

Utilisez l’icône pour créer une variable k comme ci-dessous.

Utilisez l’icône de création d’un calcul et l’icône de création d’une fonction pour créer les éléments suivants :

- Un calcul nommé a contenant comme formule : int(rand(0)*3+1)*(2*int(rand(0)*2)-1)

Ainsi a contiendra un entier aléatoire non nul compris entre -3 et 3.

- Un calcul nommé b contenant comme formule : int(rand(0)*6)*(2*int(rand(0)*2)-1)

Ainsi b contiendra un entier aléatoire compris entre -5 et 5.

- Un calcul nommé c contenant comme formule : int(rand(0)*5+1)*(2*int(rand(0)*2)-1)

Ainsi c contiendra un entier aléatoire non nul compris entre -5 et 5.

- Un calcul nommé g contenant comme formule : pgcd(abs(a),abs(c))

Ainsi g contiendra le PGCD de |a| et |c|.

- Une fonction nommée zero définie comme ci-dessous :

Voici la formule de cette fonction : abs(x)<0.000000001

- Un calcul nommé test contenant comme formule : zero(g-k*int(g/k))

Ainsi test contiendra 1 si g est divisible par k et 0 sinon.

- Un calcul nommé a’ contenant comme formule : a/k

- Un calcul nommé c’ contenant comme formule : c/k

- Une fonction rep de la variable x contenant comme formule 0

Cette fonction rep recevra la formule qui sera entrée dans le champ d’édition de la formule en haut de la figure.

Utilisez l’icône pour créer une éditeur de formule en haut et à gauche de la figure. Cliquez donc en haut et à gauche et remplissez la boîte de dialogue comme ci-dessous :

Créez maintenant :

- Une fonction nommée solution1 de la variable réelle x contenant comme formule k*(a'*x^2-c')/x^2

- Une fonction nommée solution2 de la variable réelle x contenant comme formule -k*(c'-a'*x^2)/x^2

- Nous allons maintenant créer un calcul très spécial caché au fond des menus de MathGraph32 : Utilisez le menu Calculs - Nouveau calcul dans R - Calcul avancé - Test d’équivalence de deux calculs pour créer un test d’équivalence entre solution1 et rep.

Remplissez la boîte de dialogue comme ci-dessous :

Voici comment fonctionne ce test d’équivalence :

- Si le calcul test n’est pas égal à 1 (donc si g n’est pas divisible par k) il renvoie 0.

- Si le calcul test est égal à 1 (donc si g est divisible par k) il commence par remplacer dans la fonction solution1 les calculs k, a’ et c’ par leurs valeurs, simplifie ensuite les multiplications ou divisions par 1, les additions de 0, et compare ensuite la formule obtenue à cette de la fonction rep en regardant si elles sont équivalentes au point de vue algébrique (compte-tenu de la commutativité de l’addition et de la multiplication). Il renvoie comme valeur 1 s’il y a équivalence et 0 sinon.

- Créez de même un nouveau test d’équivalence de calculs pour créer un test d’équivalence entre solution2 et rep comme indiqué ci-dessous :

La solution proposée par l’élève sera considérée comme bonne si, pour les valeurs de k variant de 1 à g, la fonction rep est équivalente à solution1 ou solution2, ce qui revient à accepter les formes factorisées par une constante pour le numérateur (constante positive ou négative).

Utilisez le menu Calculs - Nouveau calcul dans R - Calcul avancé - Somme indicée et remplissez la boîte de dialogue comme ci-dessous :

Ainsi, si un des tests d’équivalence est égal à 1 pour une valeur de k divisant g, notre somme ne sera pas nulle.

De même créez une deuxième somme indicée comme ci-dessous :

Créez maintenant un calcul nommé resolu avec comme formule S1|S2.

L’opérateur | est le OU logique. resolu vaudra 1 si au moins un des deux calculs S1 ou S2 est égal à 1.

Nous devons maintenant savoir si la réponse de l’élève est exacte, même si le calcul n’est pas fini.

Nous allons d’abord utiliser l’icône (avant dernière rangée d’icônes) pour créer la fonction dérivée de f que nous nommerons f’ comme ci-dessous :

Créez maintenant les calculs suivants (les valeurs choisis pour x1, x2 et x3 n’ont pas grande importance du moment qu’un élève ne puise pas les deviner)

- Un calcul x1 contenant comme formule rac(2.37)

- Un calcul x2 contenant comme formule rac(7.12)

- Un calcul x3 contenant comme formule rac(9.315)

- Un calcul nommé exact contenant comme formule zero(f'(x1)-rep(x1))*zero(f'(x2)-rep(x2))*zero(f'(x2)-rep(x2))

Si exact est égal à 1, nous pouvons considérer la réponse de l’élève comme bonne.

Pour finir, créez un calcul nommé reponse qui contiendra la formule suivante : si(resolu,1,si(exact,2,0)).

Ainsi, reponse vaudra 1 si la réponse de l’élève est bonne et si elle est donnée sous une forme acceptée, 2 si le calcul est exact mais considéré comme pas terminé et <à sinon.

Avec l’icône créez maintenant un affichage de la valeur de reponse à l’endroit de votre choix en remplissant la boîte de dialogue comme ci-dessous :

Maintenant vous pouvez entrer dans le champ d’édition de rep ldes formules de votre choix pour vérifier que tout se passe comme sur la figure ci-dessus.

Pour que cet exercice soit complet il faut ensuite pourvoir afficher une correction dans un affichage LaTeX, mais c’est ici très technique et je ne rentrerai pas dans les détails.

Les lecteurs intéressés pourront étudier la figure fournie dans le fichier zip en début de cet article. Cet affichage LaTeX utilise beaucoup d’affichages conditionnels (code LaTeX spécifique à MathGraph32) spécifiques à MathGraph32.

J’invite des lecteurs qui seraient intéressés par la création de tels exercices à se rapprocher de l’association Sesamath.

Pour des explications techniques sur l’utilisation d’une figure et la communication entre cette figure et le langage JavaScript, merci de vous référer à cette page.

Quelques explications techniques pour comprendre comment cette figure peut-être utilisée par l’outil j3p de l’association Sesamath :

L’outil j3p contient un squelette nommé Sectionsquelettemtg32_Deriv_Param qui est chargé de gérer tous les exercices de calcul de dérivée de la même façon.

A chaque exercice est associé un fichier contenant la chaîne base 64 décrivant la figure MathGraph32 et des instructions à afficher au début de l’exercice.

Cette figure doit vérifier les conditions suivantes (en simplifiant) :

- Comporter en haut et à gauche un champ d’édition de la fonction nommée rep

- Contenir une calcul nommé reponse qui vaut 0 si la réponse est fausse, 1 si elle est bonne et écrite sous la forme demandée et 2 si elle est bonne mais pas écrite sous la forme demandée.

- Le premier affichage LaTeX de cette figure doit contenir le texte de l’exercice (du type f(x)= ...) éventuellement précédé d’une condition d’existence.

- Elle doit comporter une macro d’intitulé solution qui masque l’éditeur de formule de la réponse et affiche la solution sous la forme en général d’un affichage LaTeX. Cet affichage LaTeX est en général ce qui demande le plus de travail.

Voici par exemple le code LaTeX contenant la solution de cet exercice :

\begin{array}{l}
\If{aetbnuls}
{
{f(x)=\If{cpos}{}{-} \Val{absc,0,1} \If{testc1}{}{\times} \frac{1 }{x }}
\If{cegal1}{}
{
\\ {f=\If{cpos}{}{-} \If{testc1}{}{\Val{absc}}v \text{ avec } v(x)=\frac{1 }{x }}
\\ {\text{Donc } f'= \left( {\If{cpos}{}{-} \Val{absc,0,1}v } \right)' \If{testc1}{}{= \If{cpos}{}{-} \left( {\Val{absc,0,1}v } \right)'} = \If{cpos}{}{-} \Val{absc,0,1}v'}
\\ {\text{avec } v'(x)=\frac{-1 }{x^2}}
\\ {\text{Donc } f'(x)=\If{cpos}{}{-} \If{testc1}{} {\Val{absc,0,1} \times} \left( {\frac{-1 }{x^2 } } \right)  = \ForSimp{sol1}}
}
\\ {\text{Donc } f'(x)= \ForSimp{form1}}

}
{
{f(x)=\ForSimp{form2} \If{cpos}{+}{-} \Val{absc,0,1} \If{testc1}{}{\times} \frac{1 }{x }}
\\ {f=u \If{cpos}{+}{-} \If{testc1}{}{\Val{absc}}v \text{ avec } u(x)=ax+b=\ForSimp{form2} \text{ et } v(x)=\frac{1 }{x }}
\\ {\text{Donc } f'= \left( {u \If{cpos}{+}{-} \Val{absc,0,1}v } \right)' = u'  \If{cpos}{+}{-} \left( {\Val{absc,0,1}v } \right)' = u'   \If{cpos}{+}{-} \Val{absc,0,1}v'}
\\ {\text{avec }u'(x)=a=\Val{a} \text{ et } v'(x)=\frac{-1 }{x^2}}
\\ {\text{Donc } f'(x)=\Val{a}  \If{cpos}{+}{-} \If{testc1}{} {\Val{absc,0,1} \times} \left( {\frac{-1 }{x^2 } } \right)  = \ForSimp{sol1}}
\\ {\text{Donc } f'(x)= \ForSimp{form1} = \ForSimp{sol2}}
}
\end{array}

Retour en haut de la page

Perspectives

Je suis en train de développer pour l’association Sesamath une version de MathGraph32 qui puisse fonctionner directement dans une page html, écrite entièrement en JavaScript et travaillant en vectoriel comme le moteur JavaScript actuel.

Cette version fonctionnera aussi bien sur PC que sur périphérique mobile.

A terme, les outils de Sesamath permettront de reprendre une figure pour la modifier (le professeur pourra étudier une figure qu’il aura faite compléter à un élève).

J’espère aussi pouvoir faire des exercices de construction vérifiant automatiquement la réponse de l’élève . Ces exercices existaient il y a quelques années dans LaboMep mais ils étaient à base d’applets et les applets sont condamnées à terme par les navigateurs pour des problèmes de sécurité.

Yves Biton.

Retour en haut de la page


Documents associés à l'article
  Dérivée de ax + b + c/x   |   (Zip - 1.8 ko)
Réagir à cet article
Vous souhaitez compléter cet article pour un numéro futur, réagir à son contenu, demander des précisions à l'auteur ou au comité de rédaction...
À lire aussi ici
MathémaTICE est un projet
en collaboration avec
Suivre la vie du site Flux RSS 2.0  |  Espace de rédaction  |  Nous contacter  |  Site réalisé avec: SPIP  |  N° ISSN 2109-9197