Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Ensembles Mandelbrot et Julia python

Posté par
Alessandra75
11-01-21 à 20:29

Bonjour, pouvez-vous m'aider à ce DM sur l'ensemble de Mandelbrot et Julia s'il vous plaît ?

Partie A : Ensemble de Mandelbrot

Dans le plan complexe muni d'un repère d'origine O, on considère un point C d'affixe zc. A partir de ce point, on construit la suite de points Mn dont les affixes zn sont définie par la suite de nombres complexes suivantes:
{z0= 0 et Zn+1=Zn^2+zc pour tout n appartenant à N
Concernant le comportement d'une telle suite, on peut démontrer que deux cas peuvent se présenter:
- Soit la distance OMn=|zn| diverge vers + l'infini, dans ce cas, le point C fixé au départ n'appartient pas à l'ensemble de Mandelbrot;
- Soit la distance OMn= |zn| est bornée et dans ce cas, le point C fixé au départ appartenant à l'ensemble de Mandelbrot.

Programme Python:
import matplotlib.pyplot as plt
from random import random

def mandelbrot (n):
for i in range (n):
c=complex(4*random()-2,4*random()-2)
z=0
k=0
while abs(z)<2 and k<50:
z=z**2+c
k=k+1
if k==50:
plt.plot(c.real,c.imag, 'r.' , ms=0.5)
plt.xlim(-2,2)
plt.ylim(-2,2)
ax=plt.gca()
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0))
plt.show()

1) Soit C le point d'affixe 1+i. Monter, à l'aide du logiciel python, que M5 a pour affixe -9407-193i. Que peut-on alors conjecturer concernant le point C ?
2) Soit C(0,1+0,2i). Ce point C semble-t-il appartenir à l'ensemble de Mandelbrot ?
3) On admet le résultat suivant: "s'il existe un entier n tel que la distance OMn soit supérieure à 2, alors, la suite |zn| tend vers + l'infini quand n tend vers + l'infini. En revanche, si la distance OMn reste inférieure à 2 pour n assez grand, la suite |zn| est bornée (entre 0 et 2)."
a. Expliquer la ligne 6 de la fonction python ci-contre.
b. Quel est le rôle du nombre 50 à la ligne 9?
c. Pourquoi affiche-t-on un point uniquement si k=50 ?
4) Programmer cette fonction et observer le nuage de points obtenu pour n assez grand.

Partie B: Ensembles de Julia

Dans le plan complexe muni d'un repère d'origine O, soit A un point du plan d'affixe a et c un nombre complexe donné. On construit la suite de points Mn dont les affixes zn sont définies par la suite de nombres complexes suivante:
{z0=a et zn+1=zn^2+c pour tout n appartenant à N
L'ensemble des points A d'affixe a tels que |zn| est bornée est appelé un ensemble de Julia. En admettant le même type de résultats que précédemment, créer une fonction Julia qui prend comme argument c et n et qui affiche une partie de l'ensemble de Julia associé.

Lorsque je mets en marche python pour la Partie A cela ne fonctionne pas et je n'arrive pas à m'avancer, en espérant que vous puissiez m'aider.

Merci d'avance

Posté par
mathafou Moderateur
re : Ensembles Mandelbrot et Julia python 11-01-21 à 21:34

bonjour,

avec l'indentation correcte :


import matplotlib.pyplot as plt
from random import random

def mandelbrot (n):
    for i in range (n):
        c=complex(4*random()-2,4*random()-2)
        z=complex(0)
        k=0
        while abs(z)<2 and k<50:
            z=z**2+c
            k=k+1
        if k==50:
            plt.plot(c.real,c.imag, 'r.')
    plt.xlim(-2,2)
    plt.ylim(-2,2)
    ax=plt.gca()
    ax.spines['bottom'].set_position(('data',0))
    ax.spines['left'].set_position(('data',0))
    plt.show()


en appelant (dans la console )

>>> mandelbrot(10000)

on obtient au bout d'un certain temps (100000 boucle for de au plus 50 boucles while chacune)
une fenêtre graphique qui apparait :

Ensembles Mandelbrot et Julia python

j'ai viré le paramètre ms=0.5 du plt.plot() dont je n'ai pas trouvé la signification
avec ce paramètre aucun point visible ne s'affiche, que les axes

Posté par
Alessandra75
re : Ensembles Mandelbrot et Julia python 11-01-21 à 21:38

J'ai essayée de faire comme vous cependant il y a un message d'erreur qui apparaît pour la valeur 10000...

Posté par
mathafou Moderateur
re : Ensembles Mandelbrot et Julia python 11-01-21 à 21:51

en fait avec ms=0.5 (abréviation de markersize, j'ai trouvé !) les points sont tout petits et je ne les avait pas vu dans mes essais avec peu de points (mandelbrot(10))
surtout que sur les 10 valeurs de c essayées au hasard, il y a toutes les chances pour que "plusieurs" n'affichent pas de point du tout (= en dehors de l'ensemble de Mandelbrot)

en remettant ms=0.5 et 100000 valeurs :

Ensembles Mandelbrot et Julia python

Posté par
mathafou Moderateur
re : Ensembles Mandelbrot et Julia python 11-01-21 à 21:54

"erreur qui apparaît pour la valeur 10000"
tu dois avoir une version de Python qui limite le nombre de boucles exécutées.
moi j'utilise EduPython installé sur le PC (Windows)

Posté par
mathafou Moderateur
re : Ensembles Mandelbrot et Julia python 11-01-21 à 22:02

avec seulement 1000 points le nuage de point est trop "ténu" on ne le distingue qu'à peine si ms=0.5

avec ms=1.0 (défaut) pour que les points soient vraiment visibles, et 1000 valeurs seulement (mandelbrot(1000)) l'ensemble ne ressemble vraiment à rien :

Ensembles Mandelbrot et Julia python

Posté par
Alessandra75
re : Ensembles Mandelbrot et Julia python 11-01-21 à 22:16

J'ai IDLE mais aussi Edupython version 2.5 en essayant sur les deux logiciels cela ne fonctionne toujours pas. Je vais essayé d'installer une nouvelle version.

***Le site a détecté un multicompte***Situation à régulariser***cf Q29 de la FAQ : [lien]
**En cas de souci (oubli du pseudo ou autre) utiliser signaler un problème sous la zone de saisie à destination d'un admin**

La réponse sera visible  en se rendant dans mon espace membre / mes alertes modérateurs

Posté par
mathafou Moderateur
re : Ensembles Mandelbrot et Julia python 11-01-21 à 22:27

edit : quand tu auras régularisé ta situation ...

peux tu copier-coller (et pas retaper) ton code en le mettant entre des balises "code" :
Ensembles Mandelbrot et Julia python

edit encore ;
le demandeur a fait faire son exo ailleurs
fermeture définitive. il n 'y a rien de régularisable à sa situation avec un tel comportement.





Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !