Dans les classes technologiques, on utilise encore la notation de Leibniz « dy/dx » pour désigner une dérivée. Cette notation apparaît très naturellement dans des activités CaRMetal stimulantes tant pour le prof que pour les élèves.
Autres articles d’Alain Busser
Cet article est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 2.0 France : Servez-vous en autant que vous voulez mais n’oubliez pas de citer MathemaTICE et laissez votre version sous la même licence !
En fait, le seul aspect innovant de cet article, c’est l’utilisation de ces fonctions « d » et « sum » en analyse. D’autres utilisations ont déjà été évoquées dans d’autres contextes :
- L’enroulement de la droite réelle sur le cercle trigonométrique
- L’approche fréquentiste des probabilités
- Les vibrations de trièdre en 3D...
Vers l’infiniment petit
Pour démarrer les activités décrites dans les onglets suivants, on a besoin d’une fonction à dériver ou intégrer (sinon on est un peu embêté tout de même). Dans les exemples qui suivent, on a choisi la fonction sinus (en radians), qui, sous CaRMetal, se note rsin (ce logiciel étant à l’origine plutôt destiné au collège, les radians y sont un peu exotiques). On représente donc graphiquement une fonction, avec l’outil idoine :
Et on nomme cette fonction f, puis on lui donne comme « valeur », l’expression rsin(x) :
Elle se représente graphiquement de façon satisfaisante :
Ensuite, on a besoin d’un point attaché à la courbe ; pour cela, on sélectionne l’outil de construction de points, mais on ne clique pas n’importe où, on attend plutôt pour ce faire, que la courbe soit détectée par la souris :
Une fois le point créé (et attaché à la courbe), on le nomme M, puis on définit une expression (icône représentant un curseur), que l’on nomme dx et à qui on associe la valeur d(x(M)) qu’on peut interpréter comme « petite variation de l’abscisse de M » :
Une fois que c’est fait, la valeur affichée de dx est nulle, tout simplement parce que M n’a pas bougé. Mais pour peu qu’on le bouge (à la souris, avec le Monkey, ou au besoin en animant M), la valeur de dx s’affiche fugitivement comme un petit nombre, dont le signe indique si M va vers la droite ou vers la gauche.
Il suffit de bouger M suffisamment lentement pour avoir un dx petit et donc matérialiser un infiniment petit. Le reste n’est maintenant plus que routine carmetallienne...
Dérivée
On commence comme précédemment, puis on définit de façon analogue le « nombre » dy comme variation infinitésimale de l’ordonnée de M :
Après, selon Leibniz, il suffit de diviser cette dernière expression par dx pour avoir la dérivée (notée soit comme Lagrange par f’, soit comme Leibniz par dy/dx ; la seconde notation est préférable, car elle évite de noter un nombre comme une fonction) :
On constate que la dérivée ne s’affiche pas ; demandant pourquoi aux élèves, ceux-ci répondent « c’est normal, on ne peut pas diviser zéro par zéro, il faut bouger le point M ». Et s’impatientent d’expérimenter, soit avec la souris, soit avec le Monkey.
La constatation que le signe de la dérivée est lié aux variations de la fonction, est spontanée (quoique suggérée par des questions sur le signe) même chez les élèves qui ne savent plus leur cours de Première. Le plus intéressant, c’est qu’on voit immédiatement que ce signe est indépendant du sens de déplacement de M.
Une telle réussite appelle à la représentation graphique de la dérivée. Pour cela, il suffit de créer un point (pas sur la courbe !) auquel on donne pour coordonnées, respectivement, l’abscisse de M, et la dérivée :
Ensuite, pour un maximum de visibilité, ce point est colorié en rouge, rapetissé et mis en gras :
La représentation graphique de la dérivée apparaît alors en bougeant le point M :
Pour vérifier que c’est bien la dérivée du cours, on peut représenter celle-ci, soit en connaissant son expression formelle, soit en la faisant calculer numériquement par CaRMetal. On représente une fonction :
On lui donne comme valeur diff(f,x) (question d’un élève : « Alors diff ça veut dire dérivée en anglais ? ») :
La représentation graphique de celle-ci, en vert, coïncide presque avec le tracé approximatif fait en rouge :
Certains élèves sont très motivés (et inhabituellement dans certains cas) par cette activité, en témoigne le soin avec lequel ils tracent la courbe rouge (pour avoir une bonne précision, il faut que dx et dy soient les plus petits possibles, donc bouger M le plus lentement possible) :
Cette activité dure un peu moins d’une demi-heure, le principal facteur de ralentissement étant les erreurs de syntaxe dans les expressions (typiquement, CaRMetal refuse l’expression « dy/dx » si dy n’a pas été rebaptisé ainsi - par exemple E3 au lieu de dy ; ce qui n’arrive pas si les élèves ont déjà eu l’occasion de manipuler CaRMetal...)
Équations différentielles
Par ailleurs, la résolution d’équations différentielles est possible aussi, avec une technique similaire : Par exemple pour l’équation y’=y (que Leibniz noterait dy=ydx) et une condition initiale matérialisée par le placement d’un point, on peut faire ainsi :
Remarque 2 (de Dominique tournès, IREM de la Réunion-voir onglet précédent)
Je place un point M sur l’axe des abscisses, en position initiale (0, 0), dont le mouvement sur l’axe des abscisses va créer le dx. Je place un point N en position initiale (0,1). Puis je redéfinis le point N avec les coordonnées (x(M), y(N)+y(N)*d(x(M))) et je bouge M avec la souris. Le point N engendre comme prévu la courbe cherchée avec une précision surprenante ! Ci-dessous la trace rouge de N, à comparer avec la courbe exponentielle tracée en vert.
Cette façon d’enseigner les équations différentielles semble aujourd’hui inédite...
Intégrale
Le début est le même que la dérivée (le premier onglet) : Point M sur la courbe, et dx défini à partir de M. Mais au lieu de définir dy, on définit le produit de f(x) par dx, noté ydx :
Puis on va additionner ces ydx pour x allant de 0 à π, avec la fonction sum. Là c’est plus compliqué :
- La fonction sum accepte deux variables, la quantité à sommer, et une expression qui remet le compteur à zéro quand elle est négative (ici, le fait que M est à gauche de l’origine déclenche cette remise à zéro). Cette expression n’est pas indispensable mais elle évite quand même pas mal d’arrachage de cheveux...
- Si on se contente d’additionner les ydx, on obtient le double de l’intégrale ; alors on compense en divisant par deux.
Finalement, on entre cette expression (encore une fois, c’est la seule partie compliquée de cette activité) :
Avec un peu de soin (un mouvement suffisamment lent de la souris), on peut avoir une estimation assez précise de l’intégrale :
Pour comparer avec l’intégrale, on peut calculer celle-ci avec CaRMetal (calcul numérique et non formel) :
Ensuite, si on a le temps, on peut essayer d’autres bornes supérieures, par exemple en faisant dépendre celles-ci de M :
Ce qui amène à la notion de primitive, fonction qu’on peut représenter graphiquement comme on l’avait fait pour la dérivée : Construction d’un point :
Ensuite, la mise à zéro lors du passage par l’origine a un effet intéressant :
En bougeant M vers la gauche, on voit le tracé d’une primitive :
Puis, une fois que M est passé à gauche de l’origine, le tracé de la fonction nulle :
Enfin, en revenant lentement vers la droite, on trace une autre primitive (et on voit bien qu’elles diffèrent d’une constante) :
L’activité dure environ une demi-heure (le plus long étant, on s’en doute, la formule de la somme, avec la nécessité de diviser par deux, et l’annulation lors du passage par zéro [3]).
Longueur
Pour calculer la longueur d’une représentation graphique, on peut, une fois que dx et dy sont définis comme précédemment (avec M sur la courbe), définir l’élément de longueur ds par :
Puis, pour avoir la longueur de la représentation graphique, intégrer cette longueur comme précédemment :
En bougeant suffisamment lentement, on a une longueur d’environ 4 :
Pour comparer avec une valeur précise, on peut utiliser la fonction length de CaRMetal mais celle-ci ne s’applique qu’à la longueur totale de la courbe. Il faut donc définir une fonction g, elle aussi égale au sinus en radians, mais avec des bornes :
En créant une expression longueur égale à la longueur de g :
on constate que la longueur mesurée expérimentalement est surévaluée :
Il faut dire que si on veut éviter d’aller trop vite vers la droite, on tend à faire des micromouvements vers la gauche qui s’additionnent à l’intégrale, et comme ds est positif, ces mouvements ne sont pas compensés par les mouvements vers la droite.
Mais on peut gagner en précision si, au lieu de définir ds à partir de dx et dy, on le définit directement (en plus, on y gagne en simplicité) :
Le résultat est meilleur :
Dimension 2
En fait, le point de départ de toute cette aventure, c’est la réalisation d’un diaporama CaRMetal sur le calcul d’intégrales par résidus : voir ici
On peut donc manipuler des dz où z est complexe, et découvrir expérimentalement la notion de fonctions holomorphes.
On peut aussi aborder la notion de vecteur tangent : Toujours avec les dx et dy des onglets précédents, on peut créer un vecteur t d’origine M :
puis lui donner pour coordonnées dx et dy :
C’est tout ce qu’il faut pour avoir le vecteur tangent !
Par contre, si on essaye de définir le vecteur normal en « dérivant » par rapport à s, ce vecteur tangent, le manque de précision se fait cruellement sentir. En particulier, le vecteur normal n’est même pas forcément perpendiculaire au vecteur tangent (qui lui, est bien tangent à la courbe)
Différentielle d’une fonction de deux variables
On peut compenser ce manque de précision en utilisant du calcul formel (soit avec un logiciel de calcul formel, soit à la main).
Une transformation du plan est constituée par deux fonctions à deux variables, f pour l’abscisse de l’image et g pour l’ordonnée de l’image :
On a construit un point M et les expressions dx et dy comme précédemment, mais cette fois-ci, M n’est plus attaché à une courbe. En dimension 2, la différentielle est déterminée par une matrice appelée matrice jacobienne. C’est l’établissement de ses coefficients qui est la principale cause d’imprécision (que ce soit avec des df/dx ou la fonction diff de CaRMetal) ; alors on les calcule à la main :
La différentielle de (f,g) s’obtiendra en multipliant le vecteur (dx,dy) par cette matrice. Ce qui, grâce aux nouvelles macros matricielles de CaRMetal, se fait assez rapidement. Le principe est de considérer les deux colonnes de la jacobienne comme des vecteurs (u, première colonne, en marron et v, seconde colonne, en vert). Bien entendu, les fx et gx sont des fonctions, et on les évalue en les coordonnées de M. On commence par créer un vecteur d’origine M, que l’on nomme u et à qui on attribue les coordonnées suivantes :
Puis on crée un vecteur v toujours d’origine M (ce n’est d’ailleurs pas obligatoire) et on lui attribue les coordonnées :
Enfin, on crée un vecteur t de coordonnées dx et dy. Puis on lance la macro de multiplication d’une matrice par un vecteur colonne ; CaRMetal demande alors de sélectionner le premier vecteur colonne de la matrice :
Dès qu’on a cliqué sur u, la deuxième colonne est attendue :
On clique alors sur v, et enfin, le vecteur à transformer par la jacobienne est demandé :
On clique alors sur t, et sur M pour que celui-ci soit l’origine du vecteur obtenu.
Pour comparer ce vecteur avec les variations de f et g, on peut créer deux expressions, df tout d’abord :
Puis dg :
Ensuite, on crée un nouveau vecteur de coordonnées df et dg. Et bien, ce vecteur est remarquablement proche (en général) du vecteur produit de la jacobienne et du vecteur de coordonnées (dx,dy). En témoigne l’histogramme de l’angle que font ces deux vecteurs, par pas de 1 degré (de -20°30’ à 20°30’) :
Dans environ la moitié des cas, l’angle est compris entre -1°30’ et 1°30’. Les autres cas sont ceux où M évolue près de l’origine, et ceux où M bouge très vite.
Ceci établit expérimentalement l’égalité entre df/dx*dx+df/dy*dy et df ; ce qui permet d’introduire la notion de gradient du champ scalaire f.
Ces activités sont partiellement transposables à la dimension 3 (fonctions de x,y,z) mais l’absence de macros matricielles et la difficulté de lire les coordonnées de M lors de son mouvement (les scripts de trièdre vibrant sont nécessaires) rend l’activité beaucoup plus longue.
Bref, si Leibniz avait eu CaRMetal, il n’aurait peut-être pas défini un infiniment petit comme « non pas un zéro simple et absolu, mais un zéro relatif ... soit une quantité évanouissante mais qui retient le caractère de ce qui disparaît », mais comme un « dx lorsqu’on bouge lentement la souris »...
Pour conclure, citons encore une fois Éric Hakenholz :
Il fallait vraiment oser imaginer cette fonction-là, et il fallait aussi oser l’implémenter : merci monsieur Grothmann.