L’exercice de spécialité du BAC S 2013 tombé en Asie traite d’une transformation géométrique et quoi de plus naturel pour étudier une telle transformation qu’un logiciel de géométrie dynamique ?
Nous verrons comment l’itération de la transformation nous conduit à étudier les systèmes dynamiques hyperboliques et à prolonger l’étude avec des systèmes dynamiques plus généraux.
Passons rapidement le début de l’énoncé pour en arriver directement à l’écriture matricielle de la transformation :
où $\left(\begin{array}{r}x\\y\end{array}\right)$ désigne les coordonnées d’un vecteur $\overrightarrow{OM}$ et $\left(\begin{array}{r}x’\\y’\end{array}\right)$ celles du vecteur $\overrightarrow{OM’}$, image de $\overrightarrow{OM}$ par la transformation étudiée.
La transformation sera étudiée à travers deux logiciels : CaRMetal et GeoGebra. Toute l’étude serait évidemment possible avec les deux logiciels, mais le plus gros du travail sera fait avec CarMetal car l’utilisation des matrices y est plus orientée géométrie au contraire de GeoGebra, orientée algèbre et la possible concision des commandes utilisées fait perdre un peu (à mon goût) la géométrie de la transformation.
Avec CaRMetal
Partie A
Commençons tout d’abord par représenter la matrice dans le logiciel. Le choix fait dans CaRMetal est de considérer la matrice comme une matrice colonne. On notera alors $\overrightarrow{u_1}$ et $\overrightarrow{u_2}$ ses deux vecteurs colonnes, c’est-à-dire :
Graphiquement, cela donne :
Par convention et pour plus de clarté visuelle, on représente le premier vecteur colonne en gras.
Le sujet demande dans la première question de déterminer les coordonnées des images des points $E$, $F$ et $G$ mais comme la partie B traite le cas de la suite des images successives du point $F$, nous ne nous intéresserons pour l’instant qu’à celui-ci.
De par l’aspect vectoriel de la transformation, on ne peut directement appliquer la macro au point $F$, il nous faut créer le vecteur $\overrightarrow{f}=\overrightarrow{OF}$
Ensuite, il n’y a plus qu’à :
- sélectionner la macro adéquate permettant d’effectuer le produit désiré ;
- sélectionner les objets initiaux, en se laissant guider par les indications dans la barre d’état :
- Vecteur - Matrice : 1re colonne (ici $\overrightarrow{u_1}$) ;
- Vecteur - Matrice : 2d colonne (ici $\overrightarrow{u_2}$) ;
- Vecteur - Vecteur colonne (celui dont on désire l’image, ici $\overrightarrow{f}$) ;
- Point - Origine du vecteur produit (ici $O$).
Évidemment, si l’on souhaite aussi obtenir les points $E’$ et $G’$, il suffit de répéter la même opération, appliquée aux vecteurs $\overrightarrow{OE}$ et $\overrightarrow{OG}$.
Partie B
Cette partie comporte un algorithme permettant, après l’avoir corrigé, d’obtenir les coordonnées des images successives du point $F$. Nous aussi, créons un algorithme (CaRScript) permettant d’obtenir ces images successives. Basons-nous fortement sur celui déjà donné :
Saisir un entier naturel non nul N ;
Initialisation de la variable v à la valeur "f" ;
Pour i allant de 1 à N par pas de 1 faire
v = image de v par la transformation ;
FinPour
La transformation en question faisant appel à une macro, nous allons logiquement utiliser la fonction ExecuteMacro
. Celle-ci admet les caractéristiques suivantes :
Paramètres :
- nom du dernier objet créé si l’on veut lui donner un nom (optionnel) ;
- nom de la macro ;
- liste des objets initiaux.
Retourne :
- le nom de l’objet créé si la macro possède un seul final ;
- ou bien un tableau contenant les noms des objets finaux.
Testons tout d’abord la fonction ExecuteMacro
seule, avec un affichage des objets créés (nous pouvons déjà anticiper qu’il y en aura deux : le vecteur et son extrémité).
L’exécution de ces quelques lignes déclenche la construction et l’affichage suivant :
On peut donc voir que la macro utilisée retourne un tableau (puisqu’elle crée deux objets) dont le 1er élément est le nom de l’extrémité du vecteur produit et le 2d élément est le nom du vecteur produit lui-même. Ainsi, le script complet devra s’écrire :
Rappel :
Dans un CaRScript, _v
signifie « contenu de la variable v
», c’est-à-dire ici la chaine de caractère correspondant au nom du vecteur dont on veut l’image.
Après l’exécution de la ligne 4, le tableau t
contiendra les noms des deux éléments créés par la macro, dont il s’agit de récupérer le 2d et le stocker dans v
pour le tour de boucle suivant.
Partie C
À partir de maintenant, ce sont les images successives du point $E$ qui nous intéressent. Là, on se dit qu’il serait peut-être intéressant de pouvoir choisir, lors de l’initialisation des variables, à quel vecteur nous intéresser au lieu de changer manuellement la valeur de v
au cas par cas. Rien de plus simple, tout est prévu : InteractiveInput
. Et le CaRScript devient :
Partie D
– Candidat, inquiet et fébrile, d’une voix hésitante : Il y avait une partie D... ?
– Auteur : Bah oui, fallait tourner la page, t’avais pas vu ?
– Candidat, en sueur : Ben euh ...
– Auteur : Mais non... c’est juste un prolongement ! Keep Calm and Carry On !
Et si nous nous intéressions maintenant à la suite des rectangles dont les sommets sont les images consécutives des points $E$, $F$ et $G$ ?
Faisons la construction à la main souris une première fois, en appliquant la macro aux trois vecteurs $\overrightarrow{e}$, $\overrightarrow{f}$ et $\overrightarrow{g}$. On obtient alors :
On peut en profiter pour afficher les aires des deux rectangles et ... tiens ! Ils ont la même aire ! La transformation n’était clairement pas une isométrie, ce n’est pas de ce côté qu’il faut chercher.
On peut alors se souvenir de ce que représente géométriquement le déterminant. Ici, l’aire du rectangle $OEFG$ est donnée par $det(\overrightarrow{e}, \overrightarrow{g})$. Mais :
et
$det \begin{pmatrix} 5/4 & 3/4 \\ 3/4 & 5/4 \end{pmatrix} = 1$
Tout s’explique ! Et de plus, on peut en conclure directement que tous les rectangles successifs auront la même aire.
Intéressons-nous alors à cette suite de rectangles. Commençons par faire de cette construction une macro. Quelques captures suffisent à tout expliquer :
Il suffit alors de scripter l’utilisation de cette macro :
– Candidat, interrogatif : mais alors si j’y vois bien, les rectangles deviennent de plus en plus longs et plats ?
– Auteur : Oui !
– Candidat : Il y a la largeur qui devient de plus en plus petite et la longueur de plus en plus grande ?
– Auteur : Oui !
– Candidat : Et le produit fait toujours 12 ?
– Auteur : Oui : un produit de deux quantités variables peut être constant. Par exemple l’hyperbole de la classe de seconde, d’équation $xy = 1$. Ici c’est presque pareil, avec le produit $l \times L = 12$.
– Candidat : Ah ?
– Auteur : Eh oui !
Le sujet demandait de démontrer que la suite des images de $E$ appartiennent à la droite d’équation $y=x$, de vecteur directeur $\overrightarrow{\varepsilon_1}=\left(\begin{array}{r}1\\1\end{array}\right)$. De même, on pourrait démontrer que la suite des images de $G$ appartiennent à la droite d’équation $y = - x$ de vecteur directeur $\overrightarrow{\varepsilon_2}=\left(\begin{array}{r}1\\-1\end{array}\right)$. Mais il y a mieux : les suites de longueurs $(OE_n)_n$ et $(OG_n)_n$ sont géométriques de raison 2 et 1/2. Cela signifie que si l’on se place dans la base $\mathcal{B}=(\varepsilon_1 ; \varepsilon_2)$, la transformation a pour matrice $\begin{pmatrix} 2 & 0 \\ 0 & 1/2 \end{pmatrix}$. Cela se traduit par la relation suivante, qui est d’ailleurs à l’origine de la formule donnant les coefficients de $A^n$ :
La matrice diagonale n’est pas sans rappeler celle-ci et en effet, si l’on considère les points d’une trajectoire (représentée dans l’illustration ci-dessous par les flèches bleues), ils sont placés sur une hyperbole dont les asymptotes sont dirigées par $\varepsilon_1$ et $\varepsilon_2$ : si l’on considère un point de coordonnées $\left(\begin{array}{r}x\\y\end{array}\right)$ dans la base $\mathcal{B}$, son image a pour coordonnées $\left(\begin{array}{r}x’\\y’\end{array}\right) = \left(\begin{array}{c}2x\\y/2\end{array}\right)$ et si ce point appartient à une hyperbole d’équation $y = k/x$, alors son image aussi.
Chaque trajectoire s’éloigne de la direction propre verte qui est le sous-espace contractant et s’approche de l’autre direction propre rouge qui est le sous-espace dilatant.
– Candidat : Encore un lien avec des hyperboles ?
– Auteur : Ben... oui. Mais bon, tu vois, on n’aurait jamais pu te demander ça dans une épreuve de Bac, c’est juste pour donner des idées d’activités aux profs.
– Candidat, effrayé : Ça veut dire que des profs peuvent donner ça à faire à leurs élèves à partir de maintenant ?
– Auteur : S’ils en ont envie, pourquoi pas. En tout cas, moi oui et dès l’année prochaine !
– Candidat, dans sa tête : Pourvu que j’aie mon Bac...
Autres systèmes dynamiques
Matrice d’Anosov
Il s’agit de la matrice suivante $A = \begin{pmatrix} 1 & 1 \\ 1 & 0 \end{pmatrix}$. Ses deux vecteurs propres sont $\varepsilon_1 = \left(\begin{array}{c}1\\-\varphi\end{array}\right)$ et $\varepsilon_2 = \left(\begin{array}{c}1\\1/\varphi\end{array}\right)$ avec $\varphi = \frac{1+\sqrt{5}}{2}$ et dans la base $\mathcal{B}=(\varepsilon_1 ; \varepsilon_2)$, la transformation a pour matrice $D = \begin{pmatrix} -1/\varphi & 0 \\ 0 & \varphi \end{pmatrix}$.
Comme la valeur propre contractante est négative, elle induit une oscillation autour de l’asymptote. Les points d’une trajectoire sont placés sur deux hyperboles équilatères. La droite verte est dirigée par $\varepsilon_1$ et la rouge par $\varepsilon_2$.
Transformation du Bac, modulo 1
Elle s’écrit $\left(\begin{array}{c}x’\\y’\end{array}\right) = \left(\begin{array}{c}5x/4+3y/4 \pmod 1\\ 3x/4+5y/4 \pmod 1\end{array}\right)$
L’attracteur est ici la diagonale du carré.
Transformation d’Anosov, modulo 1
Elle s’écrit $\left(\begin{array}{c}x’\\y’\end{array}\right) = \left(\begin{array}{c}x+y \pmod 1\\ x \pmod 1\end{array}\right)$
Pas d’attracteur. Un infime changement dans la position du point initial (M) conduit à un énorme changement de celle du point obtenu après un grand nombre d’itération (losange bleu) : c’est le chaos !
Chat d’Arnold
Celui ci, au moins, était certainement vivant du temps de l’expérience ;) Lien
Attracteur de Lorenz
Il s’agit ici d’un système dynamique différentiel. Résolvons alors numériquement ce système afin d’obtenir une assez belle illustration d’un attracteur étrange.
GingerBread Man
Bon appétit et merci au cuistot, Alain Busser
Avec GeoGebra
Évidemment, hors de question de tout refaire : juste montrer comment l’on peut obtenir les images des objets par la transformation dans GeoGebra.
Le choix fait dans GeoGebra pour représenter une matrice est beaucoup plus orienté « algébrique », la matrice se définit en saisissant la syntaxe A={{1.25, 0.75}, {0.75, 1.25}}
.
Une matrice n’existe que dans la fenêtre algèbre, indépendamment de toute considération géométrique mais peut être de taille quelconque et non obligatoirement carrée.
Après avoir créer les points et le polygone $OEFG$, il suffit d’utiliser la commande AppliquerMatrice
[1] et on est tout de suite dans le corrigé de l’exercice ! On perd tout de même un peu le côté vectoriel de la transformation.
Cela nous intéresserait maintenant d’obtenir les images successives des rectangles. Malheureusement, la commande ItérationListe
ne s’applique qu’à des nombres. Il va nous falloir utiliser un script :
Si l’on ne veut que la suite des images successives d’un seul point $M_0$, on se contente alors, dans l’algorithme, d’appliquer la matrice à cette suite point. On retrouve évidemment la même trajectoire hyperbolique déjà montrée.