Ensemble Mandelbrot et Julia Python
Répondre à la discussion
Affichage des résultats 1 à 30 sur 30

Ensemble Mandelbrot et Julia Python



  1. #1
    inviteee38c9d5

    Ensemble Mandelbrot et Julia Python


    ------

    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

    -----

  2. #2
    pm42

    Re : Ensemble Mandelbrot et Julia Python

    Citation Envoyé par Alessandra75 Voir le message
    Lorsque je mets en marche python pour la Partie A
    3 choses : poster du code sans mettre les balistes CODE autour ce qui peut se faire avec l'éditeur en mode avancé et le bouton # rend les posts illisible.
    En python où l'indentation est fondamentale, c'est carrément rédhibitoire.

    La 2nde est chose est "cela ne fonctionne pas" ne permet absolument pas de t'aider. On ne sait pas si python ne se lance pas, si le programme donné ne fonctionne pas, si tu n'as pas la bonne version...

    Enfin, il est possible de répondre à plusieurs des questions sans avoir même besoin d'avoir python installé, juste en comprenant l'énoncé. Est ce que tu l'a fait ? Parce que comme ce n'est pas ta 1ère question, tu sais qu'il faut montrer son travail avant d'avoir de l'aide.

  3. #3
    inviteee38c9d5

    Re : Ensemble Mandelbrot et Julia Python

    J'ai calculé à la main pour la première question et j'ai bien trouvé -9407-193i. Mais je ne sais pas quoi conjecturer. Cela veut peut-être dire que le point C appartient à l'ensemble Mandelbrot.

    Lorsque je rentre un n super grand à def mandelbrot (n). J'ai mis n=10000 et cela m'écrit "invalid syntax".

    Pour la 2 le point C ne semble pas appartenir à l'ensemble mandelbrot mais faut-il le prouver ??

    Pour les sous questions de la troisième question je ne comprends pas ce que font les lignes (Python et moi c'en fait deux)

    Pour la 4 je ne peux pas puisque python ne fonctionne pas ..

    Pouvez-vous m'aider s'il vous plaît ??

    Avec l'indentation correcte:

    mport 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.',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()

  4. #4
    mach3
    Modérateur

    Re : Ensemble Mandelbrot et Julia Python

    Sans la balise code l'éditeur du forum supprime les espaces successifs, donc les indentations sautent et votre python du message précédent reste illisible. Comme cela a déjà été dit, il faut taper le code entre les balises [ CODE ] et [ /CODE ] (enlever les espaces pour que ce soit reconnu comme balise code). Ca donne par exemple :

    Code:
    non indenté
        indenté
    Alors que la même chose sans balise code, ça donne :

    non indenté
    indenté

    A noter qu'il semble qu'on ne puisse pas utiliser la touche tabulation dans l'éditeur du forum, il faut donc faire 4 espaces à la suite.

    m@ch3
    Dernière modification par mach3 ; 12/01/2021 à 13h42.
    Never feed the troll after midnight!

  5. A voir en vidéo sur Futura
  6. #5
    inviteee38c9d5

    Re : Ensemble Mandelbrot et Julia Python

    Désolé je ne comprends toujours pas comment faire ...

  7. #6
    mach3
    Modérateur

    Re : Ensemble Mandelbrot et Julia Python

    On tape un crochet ouvrant "[", ensuite on tape "CODE", puis on tape un crochet fermant "]", après on tape le code qu'on veut voir afficher correctement, puis pour finir on tape un crochet ouvrant "[", ensuite on tape "/CODE", puis on tape un crochet fermant "]". Je vous le met à l'intérieur d'une balise PHP pour que ça apparaisse clairement :

    Code PHP:
    [CODE]je tape ici 
        mon code qui contient 
             des indentations 
    [/CODE
    m@ch3
    Never feed the troll after midnight!

  8. #7
    gg0
    Animateur Mathématiques

    Re : Ensemble Mandelbrot et Julia Python

    En mode "Répondre", la balise code s'obtient en cliquant sur le bouton # qui apparait dans la deuxième ligne au dessus de la zone de texte. Tu cliques, puis tu insère ton programme dans la zone entre les deux balises :
    [ CODE ] ici [ /CODE ] (*).

    Pour la suite des Zn, que se passe-t-il si |Zn| est très grand, bien supérieur à celui de c ?

    Cordialement.

    (*) J'ai modifié les balises pour qu'elles soient encore visibles.
    Dernière modification par gg0 ; 12/01/2021 à 14h28.

  9. #8
    mach3
    Modérateur

    Re : Ensemble Mandelbrot et Julia Python

    Hélas, si Alessandra est sur le style "futura 2018", ce qui est le plus probable car c'est le style par défaut, alors quand on fait "répondre", il n'y a pas de bouton "#" pour faire apparaitre la balise CODE. Il n'y a pas "réponse rapide" et "répondre" comme dans le style "FS desktop". Il faut cliquer sur "aller en mode avancé" pour avoir accès au bouton #

    m@ch3

  10. #9
    inviteee38c9d5

    Re : Ensemble Mandelbrot et Julia Python

    Code:
     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()

  11. #10
    inviteee38c9d5

    Re : Ensemble Mandelbrot et Julia Python

    Pour la suite des Zn, lorsque |Zn| est très grand, elle est bornée entre 0 et 2 ??

  12. #11
    pm42

    Re : Ensemble Mandelbrot et Julia Python

    Citation Envoyé par Alessandra75 Voir le message
    Code:
     i
    def mandelbrot (n):
    for i in range (n):
    c=complex(4*random()-2,4*random()-2)
    Sans l'indentation, on est obligé de la refaire à ta place.

    Citation Envoyé par Alessandra75 Voir le message
    Pour la suite des Zn, lorsque |Zn| est très grand, elle est bornée entre 0 et 2 ??
    |Zn] est très grand et bornée entre 0 et 2 ? Ce n'est pas contradictoire ?

  13. #12
    inviteee38c9d5

    Re : Ensemble Mandelbrot et Julia Python

    Oui, Elle tend vers + l'infini ??

  14. #13
    gg0
    Animateur Mathématiques

    Re : Ensemble Mandelbrot et Julia Python

    Prends 10 mn pour réfléchir sérieusement. Et donner une réponse sérieuse et argumentée.
    Et évite de perdre du temps à recopier bêtement ton code non indenté entre les balises destinées à conserver l'indentation.

  15. #14
    inviteee38c9d5

    Re : Ensemble Mandelbrot et Julia Python

    Ce n'est pas de ma faute si je ne comprends pas. J'ai des difficultés d'apprentissage donc merci de ne pas me juger.

  16. #15
    pm42

    Re : Ensemble Mandelbrot et Julia Python

    Citation Envoyé par Alessandra75 Voir le message
    Ce n'est pas de ma faute si je ne comprends pas. J'ai des difficultés d'apprentissage donc merci de ne pas me juger.
    On est plusieurs à te répondre avec une grande patience. Donc on ne te juge pas. Mais si :
    - tu nous donnes l'information dans un format illisible
    - tu nous dis simplement "ça ne marche pas" sans détail
    - tu ne réponds pas aux questions
    - tu dis des chose contradictoires comme "|Zn| est très grand et bornée entre 0 et 2

    on ne peut pas faire grand chose.
    Donc si tu as des difficultés, la première chose à faire est de prendre ton temps, de bien lire ce qu'on écrit et relire ce que tu écris, d'être méthodique.
    Là, tu fais quelque chose qui aggrave tes difficultés : être très rapide, ignorer les conseils, et attendre que les réponses t'aident ce qui n'est pas possible si tu ne prends pas le temps de bien les comprendre et de les "digérer".

    Ceci dit uniquement dans le but de t'aider.

  17. #16
    inviteee38c9d5

    Re : Ensemble Mandelbrot et Julia Python

    Lorsque j'écris le programme python entre les balises cela me l'affiche correctement pour moi et non pour vous je ne sais pas pourquoi. Donc pour la question un j'ai déterminé que z5= -9407-193i. Pour la conjecture : Il semble que la distance OM5= |z5| diverge vers + l'infini quand n tend vers + l'infini et dans ce cas C(1+i) n'appartient pas à l'ensemble Mandelbrot. Est-ce le bon raisonnement?

    Pour la 2 le point C(0.1+0.2i) semble appartenir à l'ensemble Mandelbrot car la distance OMn=|zn| est bornée

  18. #17
    pm42

    Re : Ensemble Mandelbrot et Julia Python

    Citation Envoyé par Alessandra75 Voir le message
    Lorsque j'écris le programme python entre les balises cela me l'affiche correctement pour moi et non pour vous je ne sais pas pourquoi.
    Tu te rends compte que tu viens de faire exactement ce que je t'ai conseillé de ne pas faire : répondre immédiatement en disant "cela ne marche pas" sans plus de détails.
    Et toujours sans nous avoir fourni le programme indenté.

  19. #18
    inviteee38c9d5

    Re : Ensemble Mandelbrot et Julia Python

    Code:
    import matplotlib.pyplot as plt 
    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()

  20. #19
    inviteee38c9d5

    Re : Ensemble Mandelbrot et Julia Python

    J'ai fait comme vous avez dit
    Code:
     puis entrer l'algorithme et finir par

  21. #20
    pm42

    Re : Ensemble Mandelbrot et Julia Python

    [QUOTE=Alessandra75;6723764]
    Il y a effectivement peu de chances que ça marche puisque le code après "if k==50:" est mal indenté.

  22. #21
    inviteee38c9d5

    Re : Ensemble Mandelbrot et Julia Python

    Sur le DM le code après if==50 se situe en dessous de la boucle for
    Vous n'arrivez pas à observer le programme python ??

  23. #22
    gg0
    Animateur Mathématiques

    Re : Ensemble Mandelbrot et Julia Python

    Il est bizarre, ce code : On change de valeur c à chaque fois !! Et il y a un IF qui ne fait rien !!

    Si c'est bien le sujet tel qu'il a été donné, il faut voir le prof pour faire rectifier le code.

    Cordialement.

  24. #23
    pm42

    Re : Ensemble Mandelbrot et Julia Python

    Citation Envoyé par gg0 Voir le message
    Il est bizarre, ce code : On change de valeur c à chaque fois !! Et il y a un IF qui ne fait rien !!
    Il manque un import, le 1er plt.plot devrait être indenté différemment pour être dans le if.
    Pour le c, c'est normal : il trace Mandelbrot en monte-carlo, en prenant des points au hasard au lieu de parcourir une grille.
    Après, je ne sais pas ce qui est erreur dans l'énoncé et erreur dans la recopie ici.

    Le code correct avec un appel à la fonction pour le faire tourner est :

    Code:
    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()
    
    mandelbrot(10000)

  25. #24
    inviteee38c9d5

    Re : Ensemble Mandelbrot et Julia Python

    Le programme que vous m'avez envoyé est correct. Cependant, pourquoi avez-vous rajouté "mandelbrot(10000)"
    Le programme est inspiré du livre donc je ne sais pas s'il contient des erreurs ..

  26. #25
    pm42

    Re : Ensemble Mandelbrot et Julia Python

    Citation Envoyé par Alessandra75 Voir le message
    Cependant, pourquoi avez-vous rajouté "mandelbrot(10000)"
    A un moment, le fait de ne rien lire des réponses, d'ignorer les bases et tous les conseils donnés et de ne pas prendre le temps de réfléchir devient lassant.
    Si quelqu'un d'autre a le courage de prendre la suite...

  27. #26
    inviteee38c9d5

    Re : Ensemble Mandelbrot et Julia Python

    Ok. Je veux juste vous dire que lorsque j'ai rajouté cela au programme j'ai pu observer le nuage de points. Je n'avais pas compris ce que c'était "en monte-carlo" puis lorsque j'ai relu je venais juste de comprendre. Désolée, on pourrait repartir sur de bonnes bases s'il vous plaît ??

  28. #27
    Ernum

    Re : Ensemble Mandelbrot et Julia Python

    Salut,

    Citation Envoyé par pm42 Voir le message
    ...
    Après, je ne sais pas ce qui est erreur dans l'énoncé et erreur dans la recopie ici.
    même si le programme fonctionne parfaitement ainsi, mon débogueur (Vim et python3) m'indique une petite erreur de genre cosmétique, il manque une ligne vierge:
    Images attachées Images attachées  

  29. #28
    pm42

    Re : Ensemble Mandelbrot et Julia Python

    Citation Envoyé par Ernum Voir le message
    même si le programme fonctionne parfaitement ainsi, mon débogueur (Vim et python3) m'indique une petite erreur de genre cosmétique, il manque une ligne vierge:
    C’est juste les normes de présentation python. Cela n’a pas d’impact sur le fonctionnement. C’est mieux de les respecter bien sûr et normalement je fais reformatted pour l’IDE mais pour le forum, je vais au plus vite, argument classique de programmeur fainéant.

  30. #29
    jacknicklaus

    Re : Ensemble Mandelbrot et Julia Python

    Citation Envoyé par pm42 Voir le message
    je vais au plus vite, argument classique de programmeur fainéant.
    Selon mon expérience, un programmeur qui n'est pas fainéant est un mauvais programmeur.

    (désolé pour le HS)
    There are more things in heaven and earth, Horatio, Than are dreamt of in your philosophy.

  31. #30
    pm42

    Re : Ensemble Mandelbrot et Julia Python

    Citation Envoyé par jacknicklaus Voir le message
    Selon mon expérience, un programmeur qui n'est pas fainéant est un mauvais programmeur.
    "We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris." -- Larry Wall, ProgrammingPerl"

    Ou pour les non-anglophones :

    "Nous vous encouragerons à développer les trois grandes vertus d'un programmeur : la paresse, l'impatience et l'orgueil". -- Larry Wall, Programmer en Perl"

Discussions similaires

  1. [Python] Ensembles de Julia
    Par henryallen dans le forum Programmation et langages, Algorithmique
    Réponses: 7
    Dernier message: 09/04/2018, 15h56
  2. Tracer un ensemble de Julia
    Par AmigaOS dans le forum Mathématiques du supérieur
    Réponses: 33
    Dernier message: 25/01/2011, 23h18
  3. ensemble de Julia
    Par invitea1b8242a dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 26/05/2009, 18h08
  4. ensemble de Julia : symétries
    Par invite8ceb181e dans le forum Mathématiques du supérieur
    Réponses: 10
    Dernier message: 11/07/2008, 20h14
  5. ensemble de mandelbrot
    Par invitea81b67e9 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 14/05/2006, 10h26