Création de la macro
La fonction affine à iterer est $z\mapsto az+a$ où $a=\frac{1+i}{2}$. On construit donc le point de coordonnées (1,1) (nommé 1+i sur la figure ci-dessous) puis le milieu (nommé (1+i)/2 ci-dessous) du segment joignant celui-ci à l’origine. CaRMetal ayant nommé P3 ce point (d’affixe a), on repère ce nom pour usage ultérieur.
Ensuite on crée un point M, mobile, d’affixe $z$, puis
- avec la macro "produit" (de nombres complexes), le point dont l’affixe est $az$ (on clique successivement sur P3 puis sur M). Ce point est en rouge ci-dessous.
- avec la macro "somme" (de nombres complexes), le point M’ dont l’affixe est $az+a$ (en cliquant successivement sur le point nouvellement créé puis sur le point P3).
M’ est alors l’image de M par la similitude directe.
On sélectionne alors dans le menu des macros l’option "créer une macro", et on sélectionne P3 et M comme objets initiaux, et M’ comme objet final. Enfin on nomme "simil" (sans oublier d’appuyer sur "entrée") la macro créée.
On notera que la création de la macro est très rapide, surtout si elle est faite par un élève qui a déjà créé des macros pendant l’année scolaire.
Utilisation de la macro
Tout d’abord, une modification légère de la figure s’impose : Supprimer le point M. Désormais on peut même en JavaScript appliquer la similitude à un point M avec l’instruction suivante :
ExecuteMacro("simil","P3,M");
Le nuage de points est maintenant aisément créé par le script suivant :
/*Programme tp 111a
*/
a=Point("A0",4,2);
for(n=1;n<=30;n=n+1){
b=ExecuteMacro("A"+n,"simil","P3,_a");
a=b;
}
Comme le point A0 n’a pas été fixé, on peut bien que ce soit hors sujet, déplacer celui-ci pour conjecturer que la limite de la suite ne dépend pas de A0 :
Conjecture sur la limite
Avec un fichier muni de la macro simil et du point J(0 ;1) (téléchargeable ci-dessous), on peut modifier le script ci-dessus pour qu’en plus du nuage de points, on ait les distances entre ces points et J :
/*Programme tp 111a
*/
j="J";
a=Point("A0",4,2);
for(n=1;n<=30;n=n+1){
b=ExecuteMacro("A"+n,"simil","P3,_a");
e=Expression("d(_j,_b)",-5,-5);
SetHide(e,true);
d=GetExpressionValue(e);
Println(d);
a=b;
}
Le principe de ce nouveau script est de créer une expression (en (-5,-5) pour qu’elle soit en dehors de la fenêtre, et en plus elle est cachée) e puis de récupérer (en d) la valeur de cette expression, et enfin de l’affficher. Une légère modification du script ci-dessus produit le tableau que voici [1] :
Point | Distance à J |
A1 | 2.9154759474226504 |
A2 | 2.0615528128088303 |
A3 | 1.4577379737113252 |
A4 | 1.0307764064044151 |
A5 | 0.7288689868556626 |
A6 | 0.5153882032022076 |
A7 | 0.3644344934278313 |
A8 | 0.2576941016011038 |
A9 | 0.18221724671391565 |
A10 | 0.1288470508005519 |
A11 | 0.09110862335695782 |
A12 | 0.06442352540027595 |
A13 | 0.04555431167847891 |
A14 | 0.03221176270013797 |
A15 | 0.022777155839239456 |
A16 | 0.016105881350068987 |
A17 | 0.011388577919619728 |
A18 | 0.008052940675034493 |
A19 | 0.005694288959809864 |
A20 | 0.004026470337517247 |
A21 | 0.002847144479904932 |
A22 | 0.0020132351687586233 |
A23 | 0.001423572239952466 |
A24 | 0.0010066175843793117 |
A25 | 0.000711786119976233 |
A26 | 0.0005033087921896558 |
A27 | 0.0003558930599881165 |
A28 | 0.0002516543960948279 |
A29 | 0.00017794652999405825 |
A30 | 0.00012582719804741396 |
On conjecture que $\displaystyle\lim_{n \rightarrow \infty} \left| z_n - i\right|=0$ soit $\displaystyle\lim_{n \rightarrow \infty} z_n=i$.
Commentaires