Une méthode rapide pour tracer les ensembles de Julia : l'itération inverse

Connaissant $Z_{n+1}$ et $C$, on peut calculer les 2 racines de la formule d'itération de l'ensemble de Julia :

(1)
\begin{align} Z_n = \pm\sqrt{Z_{n+1}-C}. \end{align}

Ces deux points sont deux antécédents possibles pour $Z_{n+1}$. Partant d'un point quelconque du plan (en général 0), on peut ainsi calculer $2^n$ antécédents en $n$ étapes d'itérations inverse. Les orbites de ces points arrivent en 0 au bout de $n$ étapes, en particulier elles ne fuient donc pas vite à l'infini. On peut montrer que ces points sont denses dans la frontière de $J$, ils donnent ainsi rapidement une bonne idée graphique de la forme de $J$ (même si le point de départ n'appartient pas au Julia, on peut donc toujours partir de 0).

On commence donc par choisir un $n$ assez grand (en pensant à réserver de la mémoire pour stocker $2^n$ points), puis on pose

(2)
\begin{align} X_{n+1} = 0 \mbox{ et } Y_{n+1} = 0. \end{align}

Pour calculer effectivement la racine à partir de nombres réels, on doit passer par la forme polaire des complexes :
Posons

(3)
\begin{align} m_{n+1} = \sqrt{ (X_{n+1}-C_x )^2 + (Y_{n+1}-C_y )^2 } \end{align}

le module de $Z_{n+1}-C$, c'est à dire la distance du point $(X_{n+1}-C_x ,Y_{n+1}-C_y )$ au centre $(0,0)$, et

(4)
\begin{align} a_{n+1} = arctg\left(\frac{Y_{n+1}-C_y }{ X_{n+1}-C_x } \right) \end{align}

l'argument de $Z_{n+1}-C$, c'est à dire l'angle entre le vecteur de coordonnées $(X_{n+1}-C_x ,Y_{n+1}-C_y )$ et l'axe des abcisses, on obtient alors deux antécédents $(X_n,Y_n)$ et $(-X_n,-Y_n)$ avec :

(5)
\begin{align} X_n = \sqrt{ m_{n+1} cos(\frac{1}{2} a_{n+1}) } \end{align}
(6)
\begin{align} Y_n =\sqrt{ m_{n+1} sin(\frac{1}{2} a_{n+1}) }. \end{align}

Puis on recommence, pour chaque antécédent obtenu. A l'étape suivante $n-1$, on obtiendra donc 4 antécédents, puis 8 à l'étape $n-2$, etc.

Remarquons que cet algorithme ne peut pas être utilisé pour approcher le Mandelbrot.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License