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