1° Les macros élémentaires avec CABRI

 

La première chose indispensable est de savoir graduer un segment, de droite ou de


courbe.


Commençons par un segment de droite.


On prend une droite  munie d'une origine O et de la demi-droite d'origine O


choisie comme positive.Chaque point M a une abscisse z,

et à tout nombre abscisse correspond un point.


L'idée est qu'on envoie l'ensemble des réels sur la droite,


sans retour en arrière, ni


boucle grâce à une fonction monotone f(x).


Par exemple, on peut placer le réel a au point A d'abscisse f(a).


Premier exemple. Prenons une demi-droite qui sera la demi-droite positive

: la négative n'est pas tracée.


Prenons comme fonction la fonction neutre : x (dans "expression")


Traçons les axes et tirons l'origine de ces axes en bas à gauche

pour qu'ils ne nous gênent pas.


Plaçons sur l'axe des abscisses un point z quelconque.


Demandons à Cabri ses coordonnées.Demandons à cabri


de calculer f(z) ( appliquer une expression)


ce qui donne évidemment z.


Ouvrons la calculatrice intégrée et calculons floor(z).


Tirons le résultat et avec report


de mesure plaçons sur la demi-droite le point d'abscisse trouvée

f(floor(z)).On obtient le point M.


Demandons ensuite le lieu de M quand z varie: on obtient


une série de points qui est la


graduation cherchée.


On a ici gradué, comme le logiciel, en cm.


graduation-centimetrique.jpg

Deuxième exemple.


On pourrait désirer graduer de p en p, par exemple de 3 en 3.On procède alors ainsi:


Prenons une demi-droite qui sera la demi-droite positive: la négative


 

n'est pas tracée.

 


 

Prenons comme fonction la fonction neutre : x (dans "expression")


Prenons un nombre p que nous plaçons sur l'écran, par exemple 3 : ce sera le pas de la


graduation.

 


 

Traçons les axes et tirons l'origine de ces axes en bas à gauche pour qu'ils ne nous

 


 

gênent pas.

 


 

Plaçons sur l'axe des abscisses un point z quelconque. Demandons à Cabri ses

 


 

coordonnées.Demandons à cabri de calculer f(z) ( appliquer une expression) ce qui

 


 

donne évidemment z.

 


 

Ouvrons la calculatrice intégrée et calculons p*floor(z/p). Tirons le résultat et avec


reportde mesure plaçons sur la demi-droite le point d'abscisse trouvée


f(p*floor(z/p)).On obtient le point M.

 


 

Demandons ensuite le lieu de M quand z varie: on obtient une série de points qui est la

 


 

graduation cherchée que nous appellerons "graduation uniforme de pas p".


graduation-uniforme-de-pas-p.jpg


Nous ferons une macro plus générale tout à l'heure qui contiendra celle-ci.


Graduation fonctionnelle f(x).


Donnons nous une demi-droite (qui sera la demi-droite positive de son support).


 

Prenons comme fonction une fonction f(x) monotone, par exemple x^3/10 (dans


"expression")

 


 

Prenons un nombre p que nous plaçons sur l'écran, par exemple 2 : ce sera le pas de la

 


 

graduation.

 

 

 


 

 

 

Traçons les axes et tirons l'origine de ces axes en bas à gauche pour qu'ils ne nous

 

 

 


 

 

 

gênent pas.

 

 

 


 

 

 

Plaçons sur l'axe des abscisses un point z quelconque. Demandons à Cabri ses

 

 

 


 

 

 

coordonnées.Demandons à cabri de calculer f(z) ( appliquer une expression) et plaçons


le résultat sur l'écran.

 

 

 


 

 Ouvrons la calculatrice intégrée et calculons p*floor(z/p). Tirons le résultat et, avec

 


 

report de mesure, plaçons sur la demi-droite le point d'abscisse trouvée

 


 

f(p*floor(z/p)).On obtient le point M.

 

 

 


 

 Demandons ensuite le lieu de M quand z varie: on obtient une série de points qui est la

 

 

 

graduation cherchée que nous appellerons "graduation fonctionnelle f(x) particulière 


de pas p".


En fait, le nombre a est placée sur la demi-droite à l'abscisse f(a).On gradue de p en


p.

 


graduation-fonctionnelle-particuliere-de-pas-p.jpg


En fait encore, on aura, pour des raisons d'encombrement, besoin de placer le nombre


a, non pas à l'abscisse f(a), mais à l'abscisse m* f(a), m étant un nombre choisi à


l'avance appelé module de l'échelle.


Un point M de l'échelle est donc associé à deux nombres . L'un est le nombre qu'il


représente, la côte a, l'autre, l'abscisse x(M) de M sur la demi-droite.


Le lien fondamental sera donc le suivant:


x(M) = m* f(a)        abscisse = module * f(côte)



Commençons par une macro de confort qui trace un trait à la place du point de


graduation.

Trait de marque pour graduation de demi-droite

 

On se donne une demi-droite et un point M sur cette demi-droite.

 

On se donne un nombre k petit : 0,1 ou 0,2 ou 0.3.

 

Avec compas, on trace le cercle de centre M et de rayon k.

 

On trace la perpendiculaire en M à la demi-droite. Elle coupe le cercle en E et F.

 

On trace le segment EF, et on cache E et F ainsi que le cercle .

 

On fait la macro:

 

Initiaux: la demi-droite, le point M, le nombre k.

 

Finaux: on cache le point M et on clique sur le trait

 

Valider : trait pour point.

 Comme aide   on tape : demi-droite, point, nombre 0,1 ou 0,2 ou 0.3.

 

 



Nous allons faire une seconde macro qui donnera la graduation d'une droite munie


d'une échelle fonctionnelle f(x), de module m, graduée de p en p.


 


 

 

 

On se donne la demi-droite d, une fonction f(x) (par exemple x^3/10 ,expression que


l'on met sur l’écran.) et un nombre m qui sera le module.(par exemple 0.2)


On se donne aussi un nombre p qui sera le pas de la graduation, par exemple 1.



On se donne aussi un nombre k qui sera la largeur du trait de la graduation, par


exemple 0.1.


On ouvre les axes.


On place un point quelconque M sur l’axe des x.


On demande au logiciel l’abscisse x de M, « bouton coordonnées et équations ».


On ouvre la calculatrice et on calcule le nombre p* floor(x/p)).


On trouve un nombre z que l’on sort sur l’écran.


On calcule la valeur de f(z) en utilisant la commande « appliquer une expression ».On


trouve un nombre z’.


Avec la calculatrice, on calcule m*z’. On obtient un nombre z’’.


On reporte ce nombre z’’ sur la demi-droite. On obtient un point M’.

 

On construit sur M’ un trait avec la macro  « traits pour point », de largeur k.


On demande le lieu du trait quand M varie. On obtient une graduation en traits  et on


colorie ce lieu en noir.


On cache alors le point M (attention, on ne le supprime pas).


On fait alors une macro.


Initiaux : la demi-droite, le module et la fonction.


Finaux : le lieu


Valider : « Graduation fonctionnelle qcq [d, m, f(x),k] »


Pour l’aide , on met d ;µ ;f(x) et k

 

On obtient ceci:


graduation-fonctionnelle-quelconque-de-pas-p-1.jpg

 

 

Voici quelques exemples :

une-fonction-cubique.jpg



log-neperien.jpg


graduation-log.jpg

 

Nous allons résoudre quelques problèmes de base en fabriquant


des macros "ad hoc" pour automatiser.

Tout cela peut paraître un peu fastidieux mais souvenons nous


des sages du Sénégal:


 "Il faut creuser les puits d'aujourd'hui pour les soifs de demain"


Problème 1


Placer un point A de côte donnée a dans un repère fonctionnel dont on connait la


demi-droite positive, le module et la fonction, soit [d;f(x);m]


Il est clair que l'abscisse de A sera m*f(a), d'où la construction.


On se donne la demi-droite, une fonction f(x) ( expression en x, dans l’avant-dernier bouton), et un nombre m.

On se donne un nombre a qui sera la côte du point cherché M.

Dans l’antépénultième bouton, on choisit « appliquer une expression ».

On clique sur f(x) et sur a. On obtient un nombre f(a).

On ouvre la calculatrice et on calcule m*f(a) en désignant les deux nombres, et on sort le résultat qui est l’abscisse de M.

On utilise alors report de mesure pour trouver M ( On clique sur la demi-droite et sur le nombre trouvé m*f(a) ).On épaissit le point et on le met en violet.

On fait la macro :

Initiaux : la demi-droite,l’expression f(x), le module m et le nombre a.

Finaux : le point M

Valider : « Point de côte a ds rep fonctionnel [d ;µ ;f(x)] »

point-de-cote-donnee-ds-d-f-m.jpg



Evidemment, on aura aussi besoin de résoudre le problème inverse:

trouver la côte d'un point donné A dans le repère [ d;f(x); m].

Comme f(a) = x/m , il faut donc avoir déjà


deux macros, l'une donnant l'abscisse de A, l'autre donnant


l'inverse d'un nombre y par une fonction f(x) monotone sur un intervalle.


Abscisse d'un point M sur une demi-droite


On se donne une droite et une demi-droite sur elle.Tout point M de la droite aura une


abscisse sur la demi-droite calculée ainsi.


On mesure OM. On obtient un nombre positif h pour cette longueur.


On ouvre la calculatrice et on divise h par lui-même, ce qui donne évidemment 1.000.


Avec "compas" on trace le cercle de centre O et de rayon 1 ( le 1.00 trouvé).


Ce cercle coupe la demi-droite en un point I.


On ouvre la calculatrice et on multiplie le nombre 1.00 trouvé par 90:on obtient 90.00.


On va dans rotation et on demande l'image de I par la rotation de centre O et d'angle


90.00 trouvé. On obtient un point J.


On va dans "nouveaux axes" et on trace les axes définis par O,I,J.


On demande ensuite au logiciel les coordonnées du point M dans ces axes.


On efface la deuxième qui est 0. La première est l'abscisse de M sur la demi-droite.


( elle peut être négative).


On fait la macro:


Initiaux: la demi-droite, le point M


Finaux : le nombre trouvé


Validation: "abscisse d'un pt sur demi-droite"


Comme aide : la demi-droite, le point M.


On a souffert, mais le plaisir sera là , plus tard.


Inverse d'un nombre y par une fonction f(x).



Pour que le problème ait un sens,il faut que f soit monotone, au moins sur un


intervalle ]a;b[.


On se donne une fonction f(x)  (par exemple x^2/4 +2 et un nombre y ( par exemple 5)

que l'on place tous deux sur l'écran. On se donne aussi deux nombres a et b tels que

f soit monotone sur l'intervalle ]a;b[.( par exemple 1 et 7)


(on peut le voir rapidement en traçant le graphique de f avec "appliquer une


expression .Penser alors à cocher la case "lier les points" du menu "options" "lieux").


On ouvre les axes, et on place avec "report de mesure" les nombres a et b sur l'axe des


abscisses.On trace le segment AB obtenu.


Ensuite, on trace avec "appliquer une expression" le graphique de f(x).


Puis on place le nombre y sur l'axe des ordonnées avec "report de mesure".


On obtient un point N.


On trace par N la parallèle à l'axe des x . On vérifie que dans la case ""options" "lieux",


l'options1000 points est bien cochée.


On demande l'intersection de cette parallèle avec le graphique. On a un point P.


On trace par P la parallèle à l'axe des y et on demande l'intersection H de cette


parallèle avec le segment AB.


On demande au logiciel les coordonnées de H.


L'abscisse de H est la solution de l'équation f(x) = y.


On fait la macro:


Initiaux: le nombre y, l'expression f(x), les axes, a et b


Finaux: l'abscisse de H


Validation : "inverse de y par f(x) entre a et b"


Aide : le nombre, la fonction, les axes, les bornes utiles de monotonie


On voit qu'on a une macro pour résoudre f(x) = y sur un intervalle


de monotonie ab.


inverse-de-y-par-f-x-sur-ab.jpg



On a alors ce qu'il faut pour résoudre notre problème:


Etant donné un repère fonctionnel [Od;f(x);m] et un point M

du support, trouver sa côte x.



On se donne une droite et sur cette droite une demi-droite positive Od.


On se donne un point M sur la droite.


On se donne une fonction f(x) ( par exemple x^2+2).


On se donne un nombre m qui sera le module (par exemple 0.5)


On se donne deux nombres a et b sur l'écran ( ce sont les bornes de monotonie):


ici par exemple 0 et 100 car x²+2 n'est pas monotone partout .( ici,on prendra 0 et 100


par exemple).


On commence par chercher l'abscisse de M avec la macro "abscisse d'un pt sur demi-droite" 


vue plus haut.


Comme on a m*f(côte) = abscisse, on divise l'abscisse par le module (en montrant les


nombres). Puis on cherche l'inverse du nombre obtenu en utilisant la macro vue plus


haut "inverse de y par f(x) entre a et b". C'est le nombre x cherché: la côte de M.


On peut alors faire la macro:


Initiaux: la demi-droite, f(x), m, le point M, les axes et les bornes a et b


Finaux: le nombre x trouvé.


Validation: "côte d'un pt dans [Od;f(x); m]"


Aide : demi-droite, fonction f, module m, point M, les axes , deux bornes a et b


cote-d-un-pt-dans-od-f-x-m.jpg

Deux petites macros utiles pour plus tard:


Demi-droite de même sens qu'un vecteur

On se donne  un vecteur u et un point A.

On trace l'image de A par la translation de vecteur u. On obtient un point A'.

On trace la demi-droite [AA').

On fait la macro :

Initiaux: le vecteur u et le point A

Finaux: la demi-droite [AA')

Valider: Demi-droite de même sens qu'un vecteur

Aide ; point, vecteur.


Demi-droite de sens contraire à un vecteur


 

On se donne  un vecteur u et un point A.

 

On trace l'image de A par la translation de vecteur u. On obtient un point A'.


On trace le symétrique A''de A' par rapport à A.

 

On trace la demi-droite [AA'').


On cache le point A''( important)

 

On fait la macro :

 

Initiaux: le vecteur u et le point A

 

Finaux: la demi-droite [AA'')

 

Valider: Demi-droite sens contraire à un vecteur

 

Aide ; point, vecteur.


 

 









Repères limités et macros associées

 

En fait, la plupart du temps, les variables des formules

ne parcourent pas l'axe des réels mais prennent seulement

des valeurs de côte comprises entre deux nombres a et b et donc

ont un point représentatif qui parcourt un segment AB ou même,

par abus de langage ( ce qui fait tout le charme des mathématiques),

un vecteur AB.


Nous allons donc préparer des macros qui permettent de travailler là dessus.


Le repère fonctionnel sera donc défini par le quintuplet [AaBb f(x)].(On supposera


toujours a<b).


Un premier problème va être, étant donné  le repère [AaBb f(x)],


de trouver le module


m par une macro.


Module de [AaBb f(x)]


On se donne donc deux points A et B et deux nombres a et b que l'on place à côté.


On peut tracer le vecteur AB.


On ne connaît pas l'origine géométrique O, mais on sait que, en utilisant les si


pratiques mais hélas si décriées mesures algébriques:


 x(A) = OA = m*f(a) et x(B) = OB = m* f(b)


donc AB = m*[f(b)-f(a)] d'où   m = AB/[f(b)-f(a)]

Si on choisit comme sens positif celui de A vers B, on aura AB = AB .


On mesure donc AB


Avec "appliquer une expression", on calcule f(b),f(a). On va dans calculatrice et on


calcule AB /[(f(b)-f(a)] en montrant les nombres.On m obtient m que l'on tire sur


l'écran.


On fait la macro:


Initiaux: A,a,B,b et f(x)


finaux : le nombre m trouvé


Validation : " module de [AaBb f(x)]"


Aide : A,a,B,b et f(x)


module-de-aabb-f-x-1.jpg



Un autre problème important à automatiser:


 

Etant donné un repère fonctionnel [AaBb f(x)],

trouver son origine géométrique ( c'est  à dire le point d'abscisse 0,


qu'il ne faut pas confondre avec le point de côte 0).


On se donne deux points A et B et leurs côtes a et b. ( par exemple 2 et 12).

On se donne une fonction f(x), par exemple x^2+57.

Avec la macro " module de [AaBb f(x)]" on calcule le module m.

On veut trouver le point O tel que l'abscisse de A soit m*f(a) sur la demi-droite d'origine O qui contient A. Le point O a donc pour

abscisse -m*f(a) dans la demi-droite [AB).On trace la demi-droite [AB).

On calcule donc f(a) avec "appliquer une expression", on multiplie par - m avec la calculatrice et on reporte le nombre obtenu sur

[AB). C'est le point O cherché.

On l'épaissit et on le colore en noir.

On fait la macro:

Initiaux : AaBb f(x)

Finaux : O

Valider : "origine géométrique de AaBb f(x)"

Aide : AaBb f(x)


 

 origine-geometriques-de-aabb-f-x-1.jpg


Macro de luxe "origines du repère fonctionnel AaBb f(x)


On reprend la figure précédente.


On a souvent besoin de la demi-droite positive du repère,


c'est à dire d'origine O et de


même sens que le vecteur AB.


On la trace avec la macro vue plus haut. On cache la demi-droite [AB) et on colorie en


marron par exemple cette nouvelle demi-droite et on la met en pointillés.


Ensuite, il est souvent commode pour l'intuition de connaître


aussi l'origine des côtes c'est à dire le point Q de côte 0.


On le place donc avec la macro "point de côte donnée


dans le repère [Od,m,f(x)]" de la façon suivante:


on ouvre la calculatrice, on calcule b-b par exemple, ce qui donne 0.000.


on calcule f(0.000) avec appliquer une expression et on place


le nombre trouvé avec "report de mesure" sur la demi-droite positive en pointillés. On


a un point W que l'on met en rouge pour le distinguer de l'origine des abscisses.


( cet artifice pour avoir 0 paraît un peu débile, mais il permet

de faire la macro avec moins d'objets initiaux).


On fait la macro:

Initiaux : AaBb f(x)

Finaux : O, la demi-droite pointillée positive, le point W

Valider : "origines de AaBb f(x) luxe "

 


origines-de-aabb-f-x-luxe-2.jpg


Point de côte donnée dans [AaBB f(x)]


On se donne un repère limité [AaBB f(x)] et un nombre x.

On veut placer le point M de côte x.


On détermine le module m avec la macro " module de [AaBb f(x)]" .


On détermine l'origine géométrique O et la demi-droite positive Od avec la macro de


luxe "origines de AaBb f(x) luxe ".


On place le point M avec la macro « Point de côte a ds rep fonctionnel [d ;µ ;f(x)] »


On fait la macro:


Initiaux: AaBB f(x) et le nombre x


Finaux : le point M.


Validation: "Point de côte donnée dans [AaBB f(x)]"


Aide : AaBb f(x) et la côte x


point-de-cote-donnee-ds-aabb-f-x.jpg



Maintenant le problème inverse:


Côte d'un point donné dans [AaBb f(x)]


On suppose que l'on sait que f est monotone sur l' intervalle [ab] ( on peut


simplement l'avoir deviné en traçant le graphique de f(x) rapidement


avec "appliquer une expression").


On se donne un repère fonctionnel [AaBb f(x)] et un  point M  entre A et B.


On cherche le module de [AaBb f(x)], soit m.(macro : " module de [AaBb f(x)]")


On cherche l'origine de ce repère avec la macro de luxe : "origines de AaBb f(x) luxe ".


On demande la côte de M avec la macro "côte d'un pt dans [Od;f(x); m]".( les bornes de


monotonie sont ici précisément a et b).On trouve un nombre x.


On fait la macro:


Initiaux : AaBb f(x) et le point M


Finaux : le nombre trouvé x


Validation : "côte d'un pt donné ds [AaBb f(x)]


Aide : AaBb f(x) le point M et les axes


Cependant, il est pédagogiquement plus interessant de procéder


directement à la résolution du problème.


Côte d'un point donné M dans [AaBb f(x)]


On se donne donc un repère fonctionnel réduit [AaBb f(x)] et un point M sur ce repère


entre A et B.On a vérifié que f est monotone entre a et b.


Par exemple a=8 et b=12; f(x) = (x-10)^2/6


On ouvre les axes.On calcule f(a),f(b).


On calcule le module m avec la macro adéquate. On place l'origine géométrique O avec


la macro ad hoc.


On calcule m*f(a)= OA algébrique ; m*f(b) = OB algébrique et on place ces nombres sur


l'axe des y, ce qui donne deux points A' et B'. On trace le segment [A'B'].


On mesure la distance OM et on la met sur l'écran. Avec la commande "compas", on


on trace le cercle centré sur l'origine des axes et de rayon OM.Ce cercle coupe le


segment [A'B'] en un point M'.


On demande au logiciel les coordonnées de M', soit 0 et t qui est égal à m*f(x), x étant


la côte de M.


On divise alors t par m, ce qui donne f(x). On place alors ce nombre sur l'axe des


ordonnées ce qui donne un point M''.


On trace alors le graphique de f(x). On trace la parallèle à l'axe des abscisses par M''.


Elle coupe la courbe en un point M'''.


On trace par M''' la parallèle à l'axe des ordonnées.


On place sur l'axe des abscisses les points A'' et B'' d'abscisses a et b.


On trace le segment [A''B''] qui coupe cette parallèle en un point M''''.


On demande au logiciel les coordonnées de ce point. L'abscisse est la côte de M


cherchée.


On fait la macro :


Initiaux : A a B b f(x) le point M et les axes


Objets finaux :le nombre x trouvé.


Validation : " côte d'un pt donné dans [AaBb f(x)]"


Aide : AaBb f(x) le point M et les axes.


Pour que la figure soit utilisable, utiliser par exemple

la fonction (x^2-10)/6 et bouger les points A et B pour que ça rentre,


car une fois la macro faite, elle s'appliquera à tous les cas .


cote-d-un-pt-m-f-dans-aabb-f-x-3.jpg



Nous avons maintenant les outils nécessaires pour atteindre

notre premier objectif: graduer en quelques secondes un repère fonctionnel


entre deux côtes a et b :[ABb f(x)].












La macro de base : graduation d'un repère réduit

 

Graduation de [AaBb f(x)] de pas p et de trait k.


On se donne deux points A et B sur une droite et leurs côtes a et b

(par exemple 3 et 12 que l'on place sur l'écran).


On se donne une fonction f(x), par exemple x^2+6 : on la place sur l'écran.


On se donne un pas de graduation p, par exemple 2 que l'on place sur l'écran.


On se donne un nombre k qui sera la largeur du trait de graduation( par exemple 0.1).


( on a souvent besoin de plusieurs largeurs et même de plusieurs pas,


d'où l'interêt d'avoir tout automatisé)


On ouvre les axes. On place sur l'axe des abscisses les nombres a et b.


On obtient deux points A' et B'. On trace le segment [A'B'].


On choisit un point arbitraire M sur se segment. On demande ses coordonnées:


l'abscisse est par exemple z.


On ouvre la calculatrice et on calcule le nombre p*floor(z / p) en montrant les nombres.


On obtient un nombre z'.

 

On va chercher la macro "point de côte donnée dans [AaBb f(x)]" et on l'utilise pour


placer le point de côte z' dans le repère [AaBb f(x)] . On obtient un point M'.


On ouvre alors la macro vue au début " trait pour point" en désignant la demi-droite


adéquate, le point et la largeur choisie.


On obtient donc un segment perpendiculaire à l'échelle.


Puis on demande le lieu du segment quand M varie.


(Attention, il faut avant aller dans "options", "préférences", "lieux"


et décocher la case "lier les points" et mettre 500 ou 1000 points).


Attention aussi à bien montrer le petit segment pour avoir des traits


et non des points.


Et voilà notre graduation fonctionnelle entre A et B, de pas p.


 

On fait la macro:


Initiaux : A,a,B,b,f(x), p, et k.


Finaux: le lieu


Validation : "graduation de AaBb f(x) ; pas p, largeur k"


graduations-aabb-f-x-pas-p-largeur-k-1.jpg


Remarque:


On peut faire des sous-graduations en appliquant à nouveau la macro avec une autre

 


 

largeur. On peut aussi graduer une partie de l'échelle avec un autre pas (10 ou 100, etc).

 

Il est un  peu désagréable de travailler sans trop savoir où on va.


Mais, dit le griot :"marcher dans l'obscurité te fait voir plus clair"