Logiciel libre de géométrie, d'analyse et de simulation multiplateforme par Yves Biton

Accueil Tutoriels Macro-constructions

Attracteurs en 3D : Utilisation d’une macro de construction itérative

modification mardi 27 janvier 2015.

Toutes les versions de cet article : [Español] [français]



Il s’agit ici de représenter dans un repère de l’espace la suite de points de coordonnées $\left(x_n, y_n,z_n \right)$ définie par une relation de récurrence du type $\begin{array}{l}x_{n+1}=sin\left( ay_n \right)-z_n\cos\left( bx_n \right)\\ y_{n+1}=z_n\sin\left( c x_n \right)-\cos\left( dy_n \right)\\ z_n=\sin\left( x_n \right) \end{array}$ avec possibilité de changer ces formules de récurrence ainsi que les valeurs de a, b, c et d et les valeurs des premiers termes de la suite.

Remarques :
 Pour que la figure ci-dessous garde une certaine fluidité il est préférable d’utiliser le navigateur Google Chrome, las autres navigateurs étant trop lents pour ce type de figure (rappelons que la figure est affichée en mode vectoriel dans un SVG).

- Il est conseillé d’utilser la version 5.1 de MathGraph32 (ou une version ultérieure).

Nous allons dans un premier temps créer une macro de construction que nous utiliserons ensuite de façon itérative dans une figure en pseudo 3D.

Créez une nouvelle figure vierge à l’aide du menu Fichier - Nouvelle figure sans longueur unité.

Utilisez ensuite le menu Calculs - Nouveau calcul dans R - Fonction réelle de trois variables et créez une fonction nommée f des variables x, y et z définie par f(x,y,z)=2*x (la formule n’est pas importante) comme ci-dessous :

Procédez de même pour créer deux autres fonctions réelles de trois variables nommées g et h définies par g(x,y,z)=2*y et h(x,y,z)=2*z.

Maintenant utilisez l’icône (avant dernière rangée d’icônes) pour créer trois calculs réels nommés x, y et z contenant comme formule 1.

Avec l’icône créez trois points libres nommés O, I, J et K comme sur la figure ci-dessous.

Ces points serviront à simuler un repère de l’espace.

Créez maintenant avec l’icône un calcul réel nommé x’ avec comme formule f(x,y,z).

De même créez deux autres calculs nommés y’, z’ avec comme formules respectives g(x,y,z) et h(x,y,z).

Dans les macro-constructions de Mathgraph32, les objets sources numérique doivent être désignés avant les objets sources graphiques. Le principe d’une implémentation itérative est qu’à chaque itération, les objets sources doivent être remplacés par les premiers objets finaux, qui doivent donc être de même nature et créés dans le même ordre que les objets sources, excepté les objets sources qui seront communs à toutes les implémentations.

Pour ces raisons nous devons créer après nos trois calculs x’, y et z’ quatre nouveaux points qui seront en fait confondus avec les points O, I, J, K.

Utilisez pour cela le menu Créer - Clone d’objet puis cliquez sur le point O. Inutile de nommer ce point clone (Touche échappement pour sortir de l’éditeur de nom automatique).Utilisez la touche F9 pour réactiver cet outil et créez de même (dans cet ordre) des clones des points I, J, K.

Nous allons maintenant créer un point de coordonnées (x’, y’, z’) dans le repère formé par les quatre points clones de O, I, J et K.

Utilisez maintenant le menu Constructions - Implémenter une construction prédéfinie (touche de raccourci F4), ouvrez le dossier Espace version2 puis le sous-dossier Points et ouvrez la construction nommée Point par coordonnées.

Affectez à l’élément source n°1 le calcul x’ comme ci-dessous :

Dans la liste de gauche, activez le numéro 2 et affectez-lui à droite le calcul y’.

De même, activez le numéro 3 et affectez-lui le calcul z’.

Dans la barre d’indications, en bas, il vous est maintenant demandé de cliquer sur l’origine du repère : cliquez sur le clone de O (vous devrez préciser que vous voulez désigner le point clone).

De même, cliquez successivement sur les clones des points I, J et K (dans cet ordre).

Vous voyez apparaître un nouveau point. Vous allez changer son style avec l’outil après avoir activé le style "pixel" (tout en bas de la palette de style de point) et, dans la palette de couleurs, la couleur bleue.

Notre figure est prête pour créer notre macro-construction. Il est important que les éléments aient été créés dans l’ordre indiqué : Les calculs x’, y’, z’, puis les quatre points clones de O, I, J et K, puis le point construit par la construction Point par coordonnées. En cas d’erreur, il est possible de changer l’ordre de ces objets dans le protocole de la figure (touche de raccourci F5) avec les touches de reclassement situés à droite de la boîte de dialogue d’historique).

Utilisez d’abord le menu Constructions - Choix des objets sources - numériques.

Dans la boîte de dialogue qui s’ouvre, insérez les éléments f, g, h, x, y et z à l’aide de bouton Insérer ou d’une double-clic comme ci-dessous :

Utilisez maintenant le menu Constructions - Choix des objets sources - Graphiques et cliquez sur les points O, I, J et K (il faut spécifier qu’on souhaite désigner des points libres).

Désignons maintenant les objets finaux de la construction.

Utilisez le menu Constructions - Choix des objets finaux - Numériques et, en appuyant sur la touche Ctrl, sélectionnez les calculs x’, y’ et z’ comme ci-dessous.

Reste à choisir les objets finaux graphiques avec le menu Constructions - Choix des objets finaux - Graphiques. Cliquez sur les clones des points O, I, J , K puis sur le dernier pont créé (celui auquel vous avez affecté le style "pixel").

Utilisez maintenant l’outil pour masquer les points clones de O, I, J et K (ceci n’est pas indispensable mais il est inutile d’afficher ces points à chaque itération).

Pour finir la construction utilisez le menu Constructions - Finir la construction en cours. Donnez un nom à cette construction, par exemple suiteRecurrente3D.

Utilisez maintenant le menu Constructions - Enregistrer une construction de la figure dans un fichier pour enregistrer cette construction à l’emplacement de votre choix.

Il nous reste à créer une nouvelle figure 3D dans laquelle implémenter notre construction.

Utilisez le menu Fichier - Nouvelle figure sans longueur unité
Vérifiez à l’aide du menu Options - Figure en cour que cette figure utilise le radian comme unité d’angle.

Appuyez sur la touche F4 pour implémenter une construction prédéfinie : Allez dans le dossier Espace version 2 et choisissez la construction Repère orhogonal espace. Notre figure est maintenant munie d’un pseudo repère 3D.

A l’aide de l’icône créez quatre calculs a, b, c, d contenant comme valeurs respectives -1.75, 1.6, 0.4 et 1.67.

Créez de même trois calculs x0, y0 et z0 contenant comme valeurs respectives 0, 0 et 4.

Utilisez l’icône pour créer en haut et à gauche de la figure un éditeur de la valeur de a comme indiqué ci-dessous (il se trouve dans la troisième rangée d’icônes en partant du bas).

Procédez de même pour associer des éditeurs de la valeurs associés à b, c, d, x0, y0 et z0.

Utilisez le menu Calculs - Nouveau calcul dans R - Fonction réelle de trois variables pour créer une fonction f définie par f(x)=sin(a*y)-z*cos(b*x) comme ci-dessous.

Créez de même deux autres fonctions réelles de trois variables g et h définies par g(x)=z*sin(c*x)-cos(d*y) et h(x)=sin(x).

Avec l’icône associez en bas et à gauche de la figure un éditeur associé à la fonction f comme ci-dessous :

Procédez de même pour associer aux fonctions g et h des éditeurs de formule (ils peuvent être modifiés après coup avec l’outil de modification d’objet graphique).

Utilisez le menu Constructions - Incorporer une construction dans la figure depuis un fichier et allez dans le dossier où vous avez précédemment sauvegardé la construction suiteRecurrente3D.mgc. Elle fait maintenant partie de la figure et va être utilisée dans une macro de construction itérative.

Nous allons maintenant créer une macro dont la fonction sera d’implémenter notre construction suiteRecurrente3D de façon itérative.

Pour cela utilisez le menu Macros - Nouvelle macro - Macro de construction - itérative. Cliquez en haut et à gauche de la figure pour désigner son emplacement et remplissez la boîte de dialogue comme ci-dessous :

Le nombre d’objets sources à réutiliser pour chaque itération est 3 : Il s’agit des trois fonctions de 3 variables f, g et h qui servent à définir les formules de récurrence.

Une boîte de dialogue apparaît alors pour spécifier les objets sources numériques.

Associez à l’objet source n°1 la fonction f.

Associez à l’objet source n°2 la fonction g.

Associez à l’objet source n°3 la fonction h.

Associez à l’objet source n°4 le calcul x0.

Associez à l’objet source n°5 le calcul y0.

Associez à l’objet source n°6 le calcul z0.

Il vous est ensuite demandé de cliquer sur quatre points : Cliquez dans l’ordre sur les points O, I, J et K.

La macro apparaît sur la figure.

A ce stade il est conseillé d’enregistrer la figure sur votre disque dur.

Vous pouvez maintenant cliquer sur l’icône d’exécution de macro et cliquer sur la macro Implémenter (elle ne peut être exécutée qu’une seule fois).

Vous pouvez maintenant faire tourner la figure, changer l’angle de vision, modifier les formules utilisées.

Essayez par exemple les valeurs suivantes :

 a = 2.74

 b = 1.19

 c = 1.6

 d = 0.99

 x0 = y0 = z0 = 1

 f(z) = a*cos(d*sin(a*y))-c*sin(b*x)

 g(z) = b*sin(c*cos(b*x))-d*cos(a*y)

 h(z) = x+y

Il vous faudra dézoomer sur la figure.

Attention : La figure contient maintenant un grand nombre d’objets. Vous pouvez le constater un appuyant sur la touche F5 de protocole de la figure, en cochant la case Objets intermédiaires. Vous voyez que la figure comporte environ 36000 objets. C’est la raison pour laquelle il vaut mieux enregistrer la figure avant d’exécuter la macro.

Si vous voulez exporter cette figure dans une page HTML à l’aide du menu Fichier - Exporter dans - Page Web dynamique (html5) il vaut mieux l’exporter avant d’avoir exécuté la macro et après avoir utilisé le menu Options - Figure en cours - Macro de démarrage pour choisir la macro Implémenter comme macro de démarrage. A la prochaine ouverture de la figure, cette macro sera exécutée automatiquement.