La courbe représentative

On commence par construire un segment sur lequel on place un point mobile, nommé 'move me'.

courbePente1.png

Ensuite nous définissons notre fonction à l'aide d'un premier script en allant dans le menu Dr. Geo 'numerics>edit script'. Pour définir notre fonction nous pourrions définir un script avec comme argument une abscisse mais cela ne serait pas pratique. Nous allons plutôt définir notre fonction comme un bloc de code, c'est une spécialité de Smalltalk. Notre script s'appelle maFonction, c'est simplement la fonction cosinus :

maFonction.png

Nous définissons ensuite un deuxième script qui aura un argument, un point, et qui retournera un autre point le projeté du premier sur la courbe[1]. Pour calculer l'ordonnée de ce point nous utilisons notre fonction définie précédemment :

pointM.png

Les scripts retourne un résultat par le mot clé '^'

Nous allons maintenant utiliser ce script pour afficher ces coordonnées dans la figure. Pour cela nous utilisons la fonction 'numerics>use script' du menu Dr. Geo. Une boîte de dialogue s'affiche alors, elle explique comment utiliser les scripts. Pour tout script, après avoir sélectionné les arguments dans la figure, il faut cliquer à l'emplacement où nous souhaitons afficher la valeur retournée par le script. Pour chaque script disponible, les commentaires des premières lignes de son code source sont affichés et constituent une indication utile pour l'utilisateur :

useScriptCourbe2.png

Dans notre exemple, nous choisissons le script pointM:, nous sélectionnons le point 'move me' de la figure comme argument, puis nous cliquons à l'emplacement souhaité dans la figure pour afficher le résultat.

Nous construisons ensuite le point géométrique M avec comme coordonnées le résultat du script. Il existe une fonction pour faire exactement cela avec Dr. Geo: menu 'points>points defined by its coordinates'. Le point ainsi construit est un point de la courbe représentative de notre fonction, pour avoir la courbe il nous suffit de demander le lieu de ce point M lorsque le point 'move me' parcourt le segment. Cela nous donne la courbe :

courbePente2.png

La tangente

Pour construire la tangente, nous calculons en premier lieu la pente en tout point de la courbe (nous supposons que notre fonction est continue). Pour ce faire nous définissons un script qui pour un point de la courbe retourne la pente, un réel :

scriptPente.png Le script pourra paraître étrange, en effet il n'y a pas de parenthèses autour de la soustraction, Smalltalk n'utilise pas la priorité des opérateurs arithmétiques mais celle des messages.

Nous utilisons ensuite ce script par le menu 'numerics>use script' avec comme argument notre point M de la courbe. Éventuellement nous nommons 'pente' le résultat de ce script. Son affichage n'est pas nécessaire pour la suite, mais permet simplement de rendre compte à l'utilisateur de la valeur de la pente en M.

Pour construire notre tangente nous avons besoin de deux points. Nous avons déjà le point M. Il nous faut un point N sur la tangente. Pour ce faire nous définissons un script pointN: qui à partir du point M retourne les coordonnées de ce point N :

scriptPointN.png

Pour finir, à partir de ce dernier script, nous construisons les coordonnées de ce point N dans la figure, puis le point N et enfant la tangente passant par les points M et N. A propos de scripts utilisés dans une figure, Dr. Geo donne pour chacun d'eux des informations sur leur nom et les arguments utilisés :

courbePente3.png

On change de fonction

La conception proposée ci-dessus est indépendante de la fonction utilisée, nous pouvons donc varier les plaisirs et définir diverses fonctions.

En définissant la fonction en x->cos(4x) +sin(x)

maFonction
        ^ [:x | (x * 4) cos + x sin]

Cela nous donne la courbe suivante et bien sûr la tangente est toujours correcte :

courbeTangente1.png

Ou bien x->x * cos(x)

maFonction
        ^ [:x | x * x cos]

courbeTangente2.png

Je ne sais pas vous, mais moi, j'aurais adoré faire mumuse avec ça au lycée...

Notes

[1] Lorsque nous définissons un point, il faut l'entendre en tant qu'objet Point Smalltalk, c'est à dire un couple de coordonnées. En Smalltalk un Point peut se définir par 54@45.2.