Claude Bernard 2013-2014 Informatique - TP n◦8
2 Les ensembles de Mandelbrot et de Julia
On consid`ere la suite complexe (zn)n∈N, d´ependant d’un param`etre c∈C, d´efinie par :
z0∈Cet zn+1 =z2
n+cpour tout n∈N.
On s’int´eresse dans ce qui suit au caract`ere born´e (ou non) de cette suite, en fonction de cet z0.
•L’ensemble de Mandelbrot est l’ensemble des nombres complexes cpour lesquels la suite
(zn)n∈Nde premier terme z0= 0 et de param`etre cest born´ee.
•L’ensemble de Julia associ´e `a c∈Cest l’ensemble des complexes z0∈Cpour lesquels la
suite (zn)n∈Nde premier terme z0et de param`etre cest born´ee.
2.1 Pr´eliminaires
7. (Bonus) Pr´eliminaires math´ematiques. On pose m= max(2,|c|) et D2={z∈C| |z|62}.
a. Montrer que s’il existe p∈Ntel que |zp|> m, alors la suite (zn)n∈Nn’est pas born´ee.
[Fixer ε∈R∗
+tel que ε < |zp| − met montrer que |zp+1|>|zp|(1 + ε). En d´eduire que
∀n∈N∗,|zp+n|>|zp|(1 + ε)n, et conclure.]
b. En d´eduire que l’ensemble de Mandelbrot, et les ensembles de Julia associ´es `a c∈D2,
sont inclus dans D2.
8. Test du caract`ere born´e de la suite (zn)n∈N.
Vu 7, la suite (zn)n∈Nest born´ee si et seulement si tous ses termes sont de module inf´erieur `a
m= max(2,|c|). Comme il n’est bien sˆur pas possible, sur machine, de calculer l’infinit´e des
termes zn, on consid`erera dans ce qui suit que la suite (zn)n∈Nest born´ee si ses 100 premiers
termes sont de module inf´erieur `a m.
a. ´
Ecrire une fonction rang_de_sortie(c,z0) prenant en argument deux complexes cet z0
et renvoyant, dans la suite (zn)n∈Nde premier terme z0et de param`etre c, le plus petit
indice p∈[[0; 99]] tel que |zp|> m, s’il existe, ou renvoyant 100 sinon.
b. Tester cette fonction sur quelques exemples. En particulier, on doit obtenir :
>>> rang_de_sortie(1,0)
3
>>> rang_de_sortie(0,1j)
100
Ainsi, les suites (zn)n∈Nborn´ees ont un “rang de sortie” ´egal `a 100, et on consid`ere par abus
dans ce qui suit que la r´eciproque est vraie.
9. Affichage graphique d’une matrice.
La m´ethode utilis´ee en 2.2 et 2.3 ci-dessous pour visualiser les ensembles de Mandelbrot et
de Julia, fait appel `a la commande matshow de la librairie matplotlib.pyplot, qui permet
de visualiser en couleurs le contenu d’une matrice (objet de type array en Python).
a. Charger les librairies numpy et matplotlib.pyplot.
Consulter l’aide sur la commande zeros de la librairie numpy.
b. `
A l’aide de la commande zeros et d’une boucle for, d´efinir la matrice diagonale Dde
taille 100 dont le coefficient diagonal d’indice (j, j) vaut j+ 1.
[On acc`ede au coefficient (j, k)d’une matrice Dpar la commande D[j,k], en se
rappelant que la num´erotation en Python commence `a 0.]
c. Visualiser la matrice Dde 9b, par les commandes suivantes :
D = ... # D´efinition de D
matshow(D) # On calcule les donn´ees du dessin
show() # On ouvre une fen^etre graphique contenant le dessin voulu
Interpr´eter : en quelle couleur est repr´esent´e un coefficient ´egal `a 0 ? `a 100 ?
3/4