La référence circulaire

Introduction du temps dans les figures
dimanche 26 avril 2009
par  Yves MARTIN

Les lecteurs connaissent probablement la référence circulaire des cellules dans les tableurs, et les possibilités de constructions simplifiées de feuilles complexes que cela induit. CaRMetal offre lui aussi à ses objets (au moins à ses points) cette possibilité de référence circulaire.

(english)

L’intérêt aussi bien pratique que théorique de cette possibilité pour un logiciel de géométrie dynamique parait bien plus significatif encore que pour les tableurs, et il est l’une des raisons, parmi les trois ou quatre importantes, que l’on peux présenter pour le choix d’utiliser ce logiciel.

La première partie de cet article reprend des arguments et exemples déjà présentés dans MathémaTICE n°11. La seconde partie propose d’aller plus loin sur la référence circulaire.

Pratiquement, si un point peut être défini récursivement, cela veut dire qu’on peut arriver à le rendre - dans des sens à préciser - assez indépendant de l’action de l’utilisateur.

Un de ces sens là est la mémoire de l’action de l’utilisateur sur la figure. Cela a un intérêt pratique évident dans certains cas, et revêt un intérêt théorique de premier ordre puisqu’il s’agit de mettre en cause, par la définition même de certains point, le principe déterministe qui prévaut généralement aux logiciels de géométrie dynamique : on fait en sorte que la figure doit revenir dans ses instances initiales quand ses éléments constitutifs reviennent à leurs positions initiales.

Un premier exemple d’école

La référence circulaire va permettre donc - entre autre - de s’affranchir du déterminisme en géométrie dynamique. Commençons par un exemple élémentaire mais qui montre bien les enjeux : l’exemple du baromètre qui se souvient des min et des max d’un curseur (ici horizontale pour des raisons de place) :

Dans la figure suivante on peux déplacer le point M, Min et Max sont déplacés et gardent les positions minimales et maximales prises par M. On voit donc bien que si M revient à sa positions initiales, les deux autres points n’y reviennent pas.

Le déplacement du point P permet une réinitialisation de la figure.

Pour faire cette figure, on a placé sur la droite horizontale passant par P, d’abord un point M puis un point Min et un point Max. On a ensuite défini l’abscisse de Min par cette formule

et celle de max par celle-ci,

ce qui correspond aux deux relations bien connues du min et du max de deux points : max(a, b) = (a+b+|a-b|)/2 et min(a,b) = (a+b-|a-b|)/2

On notera que dans cet exemple, les points étant posés avant la définition de leurs abscisses, malgré une écriture qui parait non initialisée, la récursivité est bien initialisée carles points ont une abscisse a priori. Cela ne serait pas le cas pour une expression qu’il conviendrait d’initialiser d’une façon ou d’une autre.

Un exemple de cette situation est le cas du calcul de l’aire maximale dans la première figure de ce court article : l’aire est concrètement initialisée à 0 par le placement d’un point à l’extrémité d’un segment.

Un autre exemple

qui lui fait désormais école aussi ... du moins dans les formations CaRMetal de l’auteur de ce papier : l’approche du triangle [1] de Sierpinski par des homothéties aléatoires. Rappelons brièvement l’algorithme : A, B, C, un triangle P$_0$ un point quelconque, h$_A$, h$_B$, h$_C$ les homothéties de centres A, B et C et de rapport ½. Alors la suite des points $P_{n+1}$ = $h_X$($P_n$) où X est aléatoirement l’un des points A, B, C construit un ensemble de points qui converge vers le triangle de Sierpinski, plus précisément un ensemble de points dense dans le triangle de Sierpinski.

On peut lancer la figure suivante, égler la vitesse maximale (la vitesse faible permet en formation de voir les premiers points) et y revenir aprés avoir parcouru le reste de l’article.

On choisit un nombre aléatoire entre 0 et 2 pour choisir A, B ou C. Pour cela on utilise alea3 une variable définie par floor(random(3)). Il suffit alors, parés avir placé un point P (pour l’initialisation) de donner à l’abscisse de ce point :

(alea3==0)*(x(A)+x(P))/2+(alea3==1)*(x(B)+x(P))/2+(alea3==2)*(x(C)+x(P))/2

La correspondance - cochée - entre abscisse et ordonnée copiant l’équivalent correspondant en ordonnée.

Pour que le random soit actualisé, il faut que la figure soit actualisée ... que quelque chose soit déplacée doù ce point qui tourne autour du cercle : il ne sert qu’à tirer des random régulièrement.

En définitive (aux améliorations près de la figure ci dessus), la construction tient essentiellement en deux lignes : celle de alea3 et celle de l’abscisse de P.

Beaucoup plus, avec plus de détails, sur ce thème dans l’article Suspendre le temps pour affiner l’investigation dans MathémaTICE

Manipulation directe d’objets auto-référents

Dans la première partie ci-dessus, on a utilisé l’autoréférence uniquement avec des points sur lesquels ne s’appliquait pas la manipulation directe. Voyons que l’on peut aussi manipuler des points ayant une définition autoréférente.

Commençons par un premier exemple que tout le monde a probablement construit dans sa version classique : un segment de longueur constante qui se déplace sur un axe pour modéliser un bâton qui glisse sur le sol et contre un mur. Si le point de base est un point du sol, le point sur le mur est construit et non accessible à la manipulation directe. Ce n’est pas le cas dans la figure suivante :

Voyons l’écriture de l’abscisse du point Q.

if(x(Q) < x(@xMax) ; x(@O)+sqrt((x(@B)-x(@A))^2-(y(@P)-y(@O))^2)+0*y(Q) ;x(@xMax))

On y voit que l’abcisse de Q est calculée à partir de l’ordonnée de P mais si on regarde l’ordonnée de P ...

if(y(P) < y(@yMax) ; y(@O)+sqrt((x(@B)-x(@A))^2-(x(@Q)-x(@O))^2)+0*x(P) ;y(@yMax))

... on voit qu’elle est calculée en fonction de l’abcisse de Q : ces deux points P et Q sont donc mutuellement référents l’un de l’autre et on peut les manipuler tous les deux.

Cette possibilité - originellement présente dans CaR - a été découverte par Eric Hakenholz, l’auteur de CaRMetal. Les règles permettant cette possibilité sont les suivantes :

Pour qu’on puisse déplacer un point dont les coordonnées sont des formules récursives, il faut que :
• dans ces formules toutes les références à d’autres objets soient précédées d’un @,
• que le point lui-même apparaisse dans ces formules, sans @ (soit dans l’abscisse, soit l’ordonnée, par exemple – s’il n’intervient pas – avec un + 0*x(A)).

Autre exemple d’utilisation

Dans certains manuels, la symétrie centrale n’est pas décrite sous l’angle de la transformation qui à un point va donner un autre point, mais plus sous la forme axiomatique.
Ainsi on lit dans certains manuels récents de 5° que « deux figures sont dites symétriques par rapport à un point I si elles se superposent dans un demi-tour ».

On ne va pas « récurser » sur la « définition » de la symétrie par « le demi tour », l’idée est ici de remarquer que l’on parle d’abord de figures symétriques (exploration des propriétés du monde sensible et modélisation de ce qui est observé) avant de définir la symétrie.

Et si on parle de figures symétriques, elles ont le même statut l’une que l’autre. Dans le cadre de la géométrie dynamique il faudrait pouvoir rendre compte de cela ; construire les symétriques de telle manière que A, et A’ soient tous les deux manipulables …

Cette figure est plus facile que la précédente à reproduire, en utilisant les relations pour la définition des coordonnées du point A :

2*x(@I)-x(@« B’ »)+0*x(B)
2*y(@I)-y(@« B’ »)+0*y(B)

On peut même transformer cette figure en macro-construction en conservant sa propriété d’autoréférence. Pour cela il suffit de sélectionner les objets récursifs par un shif-clic.

Utilisation en classe ? : il s’agit ici d’une approche bien spécifique, qui donne une vision dynamique de ce qui est proposé par certains manuels. On peut y voir un intérêt (on touche à s2=Id) comme bien entendu un grand danger qui peut perturber ce qu’est une application vu que l’on traite ici de s comme étant aussi son inverse.

C’est à chacun d’évaluer l’intérêt : le vieux prof de maths aurait tendance à penser au danger d’utiliser cela alors que des jeunes enseignants, avec des enfants du XXI°s, rompus à la manipulation des images, peuvent avoir d’autres regards tout en comprenant bien l’image et l’antécédent …

Conclusion

On a vu dans ces quelques figures les possibilités assez extraordinaires de l’autoréférence.

Dans cet autre article on verra des exemples d’utilisation permanente de l’autoréférence sur le traitement de la fluctuation des échantillonnages.

Un autre procédé, totalement spécifique à CaRMetal, permet de traiter autrement de la mémoire du mouvement d’un point.

L’autoréférence a aussi une utilisation renforcée quand on la mélange avec les possibilités de l’aimantation comme cela est présenté dans cette page qui aborde le concept d’engagmeent direct augmenté.


[1idée originale et figure initiale de Rémy sur le forum de CaRMEtal à ce topic


Commentaires