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

Suite récurrente complexe avec MathGraph32 : Suite de Babylone.

publication dimanche 1er décembre 2013.


En testant le logiciel MathGraph32 je suis tombé sur des résultats inattendus. C’est la preuve qu’on peut encore faire des découvertes mathématiques en utilisant un logiciel de ce type.

Le premier concerne les propriétés d’une transformation barycentrique du plan (un article est paru dans le bulletin de l’APMEP à ce sujet). Vous pouvez en trouver une présentation complète sur le site du CNDP à l’adresse suivante : http://www.cndp.fr/maths et en cliquant sur l’onglet Théorème découvert grâce à MathGraph32. Ce premier résultat semble totalement original. Le résultat fondamental découle du théorème de Ptolémée.

Le second concerne un type particulier de suite récurrente complexe. Je suis « tombé » sur ce résultat en testant le fonctionnement de MathGraph32 avec les nombres complexes. Je ne certifie pas que ce deuxième résultat soit original mais jusqu’à présent les gens à qui je l’ai présenté ne le connaissaient pas.

Un résultat connu est en effet que, si p est un réel positif, la suite réelle définie par son premier terme $u_0$ et la relation de récurrence $u_{n+1}=\frac{1}{2}\left( u_n+\frac{p}{u_n} \right)$ converge vers $\sqrt{p}$ (ce résultat est connu depuis l’Antiquité sous le nom d’algorithme de Babylone ou méthode de Héron).

Nous allons nous intéresser à la suite récurrente complexe $(z_n)$ dont le premier terme est un complexe $z_0$ donné et définie par la relation de récurrence $z_{n+1}=\frac{1}{2}\left( z_n+\frac{2i}{z_n} \right)$, puis nous généraliserons notre étude.

MathGraph32 va nous servir à étudier visuellement une telle suite et à émettre des conjectures. Je vous proposerai à la fin de cet article des démonstrations des résultats observés, puis une généralisation.

Création de deux figures illustrant cette situation avec MathGraph32

Démarrez MathGraph32.

Dans le menu Options - Préférences, onglet Niveau, vérifiez que le niveau actif est "Avancé avec prise en charge des nombres complexes.

Utilisez l’icône pour créer une nouvelle figure munie d’un repèreorthonormal. Comme type de quadrillage, cochez AvecPointillés. Cochez la case Repère avec vecteurs et entrez u et v comme nom des vecteurs. Validez.

A l’aide de l’icône , créez un point libre. Utilisez l’icône pour nommer ce point $M_0$.

Nous allons mesurer l’affixe de ce point dans notre repère. Pour cela utilisez l’icône .

Cliquez sur le point $M_0$. Un message vous confirme la création de cette affixe.

Pour plus de commodité, nous allons définir un calcul complexe nommé z0 qui contiendra l’affixe précédemment mesurée.

Utilisez pour cela le menu Calculs - Nouveau calcul dans C - Calcul complexe (raccourci clavier : Ctrl + Maj + E).

Une boîte de dialogue s’ouvre. Dans le champ Nom du calcul, entrez z0. Utilisez le bouton Valeurs pour entrer dans le champ formule Aff(M0,O,I,J). Ainsi z0 représenta l’affixe que nous venons de mesurer. Validez par OK.

Nous allons définir la suite récurrente complexe $\left( z_n \right)$ de premier terme $z_0$ donné et définie par la relation de récurrence $z_{n+1}=\frac{1}{2}\left( z_n+\frac{2i}{z_n} \right)$.

Avant cela nous devons créer une fonction complexe f d’une variable complexe définie par $f(t)=\frac{1}{2}\left(t+\frac{2i}{t}\right)$.

On utilise le menu Calculs - Nouveau calcul dans C >> Fonction complexe (raccourci clavier : Ctrl + G).

Une boîte de dialogue s’ouvre. Entrez f dans le champ Nom de la fonction et t dans le champ Variable formelle. Dans le champ Formule, entrez 1/2*(t+2*i/t). Validez par OK.

Créons maintenant la suite récurrente.

Utilisez pour cela le menu Calculs >> Nouveau calcul dans C >> Suite complexe u(n+1) = f[u(n)]. Une boîte de dialogue s’ouvre. Remplissez la comme ci-dessous.

Nous allons maintenant créer le graphe de cette suite récurrente complexe. Chaque terme de la suite sera visualisé par une marque de points et ces marques seront jointes par des segments.

Dans la palette de couleurs, activez le bleu, puis le style de trait pointillé dans la palette de style de trait.

Dans la palette de style de point, activez le « petit rond » (ceci n’est pas indispensable).

Utilisez le menu Créer >> Graphe de suite récurrente - Complexe. Le graphe apparaît.

Utilisez l’icône pour capturer le point $M_0$.

La figure obtenue figure ci-dessous animée par le moteur JavaScript de MathGraph32 de MathGraph32 (Vous pouvez capturer le point $M_0$).

Pour la figure ci-dessus, la suite semble converger vers $1 + i$. Pour d’autres positions de $M_0$, la suite semble converger vers $–1– i$.

Est-ce étonnant si l’on se souvient que $1 + i$ et $-1-i$ sont les deux complexes dont le carré est 2i ?

Lorsque le point $M_0$ se rapproche de la droite d’équation y = – x, un comportement spécial semble apparaître. Étudions cela avec MathGraph32.

Dans la palette de couleurs, activez le noir.

Traçons d’abord la droite d’équation y = – x (que nous appellerons D). Pour cela utilisons l’icône de création d’une droite par son coefficient directeur.

Cliquez ensuite sur le point O.

Dans la boîte de dialogue qui s’ouvre, entrez – 1 dans le champ Coefficient directeur. Validez par OK. La droite apparaît.

En capturant le point $M_0$, on s’aperçoit que, lorsque $M_0$ n’est pas sur la droite D, tous les points du graphe de la suite semblent rester dans le même demi-plan de bord D que le point $M_0$.

Regardons maintenant ce qui se passe lorsque $M_0$ est sur la droite D.

Utilisez pour cela le menu Modifier - Créer une liaison - Entre un point et un objet. Cliquez sur le point $M_0$, puis sur la droite D. Le point $M_0$ est maintenant devenu un point lié à la droite D.

Voici la figure obtenue (Vous pouvez capturer le point $M_0$) :

Capturez le point $M_0$ à l’aide de l’icône . Il semble que tous les points d’affixe $z_n$ restent sur la droite D et que le comportement de cette suite soit « chaotique ».

Justification mathématique des résultats observés ci-dessus

La suite de cet article peut être lue par une élève de terminale S en admettant que :

- Une suite $\left( z_n \right)$ de nombres complexes converge vers un complexe $\ell$ lorsque $\lim_{n \to {+\infty }} \left| z_n - \ell \right| = 0$.
- Les théorèmes usuels concernant les opérations sur les suites convergentes dans R se généralisent à C.

Posons a = 1+ i et b = -a = -1 - i. Appelons A et B les points d’affixes respectives a et b = – a.

Pour tout naturel n, on a : $z_{n+1}-a = \frac{1}{2}\left( z_n + \frac{a^2 }{z_n } \right)-a=\frac{1 }{2 }\left( \frac{{z_n}^2+a^2-2az_n }{ z_n} \right)=\frac{1 }{2z_n }\left( z_n-a \right)^2$.

Et on obtient de même $z_{n+1}-b ==\frac{1 }{2z_n }\left( z_n-b \right)^2$.

On en déduit alors que $\frac{z_{n+1}-a }{z_{n+1} + a } = \left( \frac{z_n-a }{z_n+a } \right)^2$.

On peut alors montrer par récurrence que, pour tout naturel n, $\left( \frac{z_n-a }{z_n+a } \right)=\left( \frac{z_0-a }{z_0+a } \right)^{2^n}$. On en déduit que $\left| \frac{z_n-a }{z_n+a } \right|=\left| \frac{z_0-a }{z_0+a } \right|^{2^n}$.

Supposons que le point $M_0$ est dans le demi-plan ouvert de frontière D qui contient A. Cela revient à dire que $M_0$ est plus proche de A que de B c’est-à-dire que$\left| z_0-a \right| < \left| z_0-b \right| $ et donc que $\left| \frac{z_0-a }{z_0+a } \right| < 1$. On en déduit alors que $\lim_{n \to {+\infty }}\left| \frac{z_n-a }{z_n+a } \right| = 0$ et que la suite de complexes $\left( \frac{z_n-a }{z_n+a } \right)$ converge vers 0.

Or $\frac{z_n-a }{z_n+a }=\frac{z_n+a-2a }{z+a }=1-\frac{2a }{z_n+a }$ ce qui entraîne que $z_n+a=\frac{2a }{1-\frac{z_n-a }{z_n+a } }$. En appliquant les théorèmes relatifs aux opérations sur les limites, on en déduit que $(z_n + a)$ converge vers $2a$ et donc que $(z_n)$ converge vers a.

L’exposant $2^n$ explique l’extrême rapidité de la convergence de la suite vers a = 1 + i.

On montre de la même façon que quand $M_0$ est dans le demi-plan ouvert de frontière D qui contient A, la suite converge vers b = – a.

Intéressons-nous maintenant à ce qui se passe quand le point $M_0$ est sur la droite D.

Appelons $M_n$ le point d’affixe $z_n$.

Montrons d’abord que lorsque que le point $M_n$ est sur D, le point $M_{n+1}$ est encore sur D.

Si $M_n$ est sur D, c’est que $zn$ est de la forme $z_n = xia$ avec x réel (en effet le vecteur d’affixe i.a est orthogonal au vecteur $\overrightarrow{OA}$ d’affixe a).

On a alors $z_{n+1}=\frac{1 }{2 }\left( xia+\frac{a^2 }{xia } \right)=\frac{1 }{2 }\left( xia-i\frac{a }{x } \right)=\frac{1 }{2 }\left( x-\frac{1 }{x } \right)\times ia$, ce qui prouve que $M_{n+1}$ est encore sur D.

Par récurrence on en déduit alors que tous les points $M_n$ sont sur D.

Posons alors $z_n = x_n ia$. On a alors, pour tout n, $x_{n+1}=\frac{1 }{2 }\left( x_n - \frac{1 }{x_n } \right)$.

MathGraph32 va maintenant nous aider à expliquer le comportement chaotique de la suite des points $M_n$ lorsque $M_0$ est sur D.

Démarrez MathGraph32 et utilisez le menu l’icône et demandez un repère orthonormal non quadrillé sans vecteurs.

Utilisez l’icône pour créer une fonction f définie par $f(t) = \frac{1}{2} \left( t - \frac{1}{t} \right)$. Remplissez la boîte de dialogue comme ci-dessous. Laissez cochée la case tracer courbe et validez.

Traçons maintenant la droite d’équation y = x à l’aide de l’icône de création d’une droite par son équation (raccourci Ctrl + Q). Entrez y=x dans le champ Equation et validez par OK.

Dans la palette des couleurs, activez la couleur rouge.

Utilisez l’icône de création d’un point lié pour créer un point lié à l’axe des abscisses. Utilisez l’icône pour nommer ce point x0.

Cliquez sur l’icône qui sert à mesurer l’abscisse d’un point dans un repère. Cliquez sur le point x0. Un message vous confirme la création de cette mesure qui est noté xCoord(x0,O,I,J).

Créons maintenant la suite récurrente via le menu Calculs - Nouveau calcul dans R - Suite réelle u(n+1)=f[u(n)].

Comme Nom de la suite, entrez u. Utilisez le bouton Valeurs pour entrer xCoord(x0,O,I,J) dans le champ Premier terme. Entrez 50 dans le champ Nombre de termes puis validez par OK. Voir la boîte de dialogue ci-dessous.

Créons maintenant le graphe de cette suite.

Dans la palette de style de trait, activez le style de trait pointillé fin.

Utilisez le menu Créer - Graphe d’une suite récurrente - Réelle. Une boîte de dialogue s’ouvre. Laissez cochée la case Traits de rappels en abscisse et validez par OK.

Vous pouvez maintenant capturer le point x0 à l’aide de l’icône pour constater que le comportement de la suite semble chaotique quel que soit son premier terme.

Voici la figure obtenue (Vous pouvez capturer le point x0) :

Essayons d’expliquer ce phénomène chaotique :

La suite ne peut pas converger vers un réel non nul L car sinon, f étant continue, L vérifierait $f(L)=L\Leftrightarrow L-\frac{1 }{L }=L\Leftrightarrow -\frac{1 }{L }=0$ ce qui est impossible.

Il est évident que, pour x > 0, on a f(x) < x et que, pour x < 0, on a f(x)>x. On en déduit que si, par exemple, le premier terme de la suite est positif, la suite va commencer par décroître avec des termes positifs. Mais comme la suite ne peut pas converger, elle ne peut pas être minorée (théorème de la convergence monotone). Il y aura donc à partir d’un certain indice un terme qui sera négatif. Alors à partir de ce terme la suite va se remettre à croître avec des termes négatifs. Mais comme elle n’est pas convergente elle n’est pas majorée et à partir d’un certain rang un terme deviendra positif et ainsi de suite.

On peut aussi remarquer que pour certaines valeurs du premier terme $x_0$ , la suite peut ne pas être définie, par exemple pour $x_0 = 0$, ou pour $x_0=-1$.

Généralisation du résultat.

Les résultats précédents peuvent facilement se généraliser avec la suite définie par $z_{n+1}=\frac{1 }{2 }\left( z_n+\frac{a^2 }{z_n } \right)$ où a désigne un complexe non nul. En effet nos calculs précédents n’utilisaient pas la valeur particulière de a.

En appelant A le point d’affixe a et B le point d’affixe – a, D la médiatrice du segment [AB] (D a un vecteur directeur d’affixe ia), on montre facilement que les résultats précédents sont encore vrais :

Si la suite est bien définie :

Si $M_0$ est dans le demi-plan ouvert de bord D qui contient A, la suite converge vers a.

Si $M_0$ est dans le demi-plan ouvert de bord D qui contient B, la suite converge vers -a.

Si $M_0$ est sur la droite D alors tous les points $M_n$ d’affixe $z_n$ sont sur cette droite avec un comportement chaotique.

Illustrons ce résultat général avec une nouvelle figure MathGraph32. La construction sera au départ identique à notre première figure.

Démarrez MathGraph32 et utilisez l’icône pour créer un repère orthonormal avec pointillés et vecteurs nommés u et v.

Dans la palette de couleurs, activez la couleur rouge.

A l’aide de l’icône , créez un point libre. Utilisez l’icône pour nommer ce point $M_0$.

Nous allons maintenant mesurer l’affixe de ce point dans notre repère. Pour cela utilisez l’icône . Cliquez sur le point $M_0$. Un message vous confirme la création de cette affixe.

Pour plus de commodité, nous allons maintenant un calcul complexe nommé z0 qui contiendra l’affixe précédemment mesurée.

Utilisez pour cela le menu Calculs - Nouveau calcul dans C - Calcul complexe (raccourci clavier : Ctrl + Maj + E).

Une boîte de dialogue s’ouvre. Dans le champ Nom du calcul, entrez z0. Utilisez le bouton Valeurs pour entrer dans le champ Formule Aff(M0,O,I,J) qui représenta l’affixe que nous venons de mesurer. Validez par OK.

Dans la palette de couleurs, activez la couleur noire.

A l’aide de l’icône , créez un autre point libre.

Utilisez l’icône pour nommer ce point A.

Utilisez l’icône pour créer l’image du point A dans la symétrie centrale de centre O (pour cela, cliquez d’abord sur O, puis sur A).

Nommez ce point B.

Utilisez l’icône pour créer le segment [AB] puis l’icône pour créer la médiatrice du segment [AB].

Mesurez maintenant l’affixe de ce point A (icone et clic sur A).

Nous allons maintenant un calcul complexe nommé a qui contiendra l’affixe précédemment mesurée.

Utilisez pour cela le menu Calculs - Nouveau calcul dans C - Calcul complexe (raccourci clavier : Ctrl + Maj + E).

Une boîte de dialogue s’ouvre. Dans le champ Nom du calcul, entrez a. Utilisez le bouton Valeurs pour entre dans le champ Formule Aff(A,O,I,J) qui représenta l’affixe que nous venons de mesurer. Validez par OK.

Nous devons créer une fonction complexe f d’une variable complexe définie par $f(t)=\frac{1}{2}\left( t+\frac{a^2}{t} \right)$.

On utilise le menu Calculs - Nouveau calcul dans C - Fonction complexe.

Une boîte de dialogue s’ouvre. Entrez f dans le champ Nom de la fonction et t dans le champ Variable formelle. Dans le champ Formule, entrez 1/2*(t+a^2/t). Validez par OK.

Créons maintenant la suite récurrente.

Utilisez pour cela le menu Calculs - Nouveau dans C - Suite complexe u(n+1) = f[u(n)]. Une boîte de dialogue s’ouvre. Remplissez-la comme ci-dessous.

Dans le champ Nom de la suite, entrez z. Dans la liste des fonctions complexes existantes, la fonction f est déjà sélectionnée. Utilisez le bouton Valeurs pour entrer z0 dans le champ Premier terme. Entrez 50 comme nombre de termes et validez par OK.

Nous allons maintenant créer le graphe de cette suite récurrente complexe.

Dans la palette de couleurs, activez le bleu et activez le style de trait pointillé dans la palette de style de trait.

Dans la palette de style de point, activez le « petit rond » (ceci n’est pas indispensable).

Utilisez maintenant le menu Créer >> Graphe de suite récurrente - Complexe et demandez la graphe de la suite z. Le graphe apparaît.

Vous pouvez maintenant capturer le point A et le point $M_0$ et constater que le résultat précédent se généralise bien.

Voici la figure obtenue (Vous pouvez capturer le point A et le point $M_0$) :

Regardons maintenant ce qui se passe quand on est sur la médiatrice du segment [AB].

Utilisez l’icône pour créer la médiatrice du segment [AB].

Maintenant liez le point $M_0$ à cette médiatrice (menu Modifier - Créer une liaison - Entre un point et un objet puis clic sur la médiatrice).

Vous constaterez que tous les points de la représentation graphique de la suite (il peut arriver que certains points s’écartent de la droite : c’est dû à des phénomènes d’accumulation d’erreurs d’arrondi).

Voici la figure obtenue (Vous pouvez capturer le point A et le point $M_0$.) :

Conclusion

Nous avons vu sur cet exemple que MathGraph32 est un outil très pratique pour faire des figures sophistiquées en quelques clics de souris. Reste ensuite le plaisir d’essayer de démontrer ce qu’on a pu observer.

MathGraph32 est ainsi un outil particulièrement adapté à des épreuves pratique en classe de terminale scientifique, grâce à ses capacités à calculer sur les nombres complexes et les représenter graphiquement.

La pratique régulière d’un tel outil devrait encourager chez nos élèves le plaisir de conjecturer et d’expérimenter et ce dès le collège. (MathGraph32 peut s’adapter au niveau collège en choisissant ce mode dans le menu Préférences >> Niveau du logiciel).

Yves Biton (auteur de MathGraph32)