Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Futur Membre du Club
    Inscrit en
    janvier 2011
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : janvier 2011
    Messages : 84
    Points : 19
    Points
    19

    Par défaut Julia et caml

    Bonjour,
    j'ai crée un programme caml pour visualiser les ensembles de Julia dans une fenêtre 400*400


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    #load "graphics.cma";;
    open Graphics;;
    open_graph "800x800";;
    clear_graph();;
    
    let estdsjulia (xo:float) (yo:float) (cr: float) (ci: float) = 
    	let x = ref xo in
    	let y = ref yo in
    	let i = ref 1 in
    	let res = ref true in
    	while ((!res = true) && (!i<50)) do 
    		x:= (!x)*.(!x) -.(!y)*.(!y) +.cr;
    		y:= 2.*.(!x)*.(!y)+.ci;
    		res:= (!x)*.(!x) +.(!y)*.(!y)< 4.;
    		i:= (!i)+1;
    	done;
    !res
    ;;
    estdsjulia 0.01 0.0001 0.1 0.2;;
    
    	
    
    let affiche (cr:float) (ci:float) = 
    	clear_graph();
    	for i = 0 to 400	 do
    		for j = 0 to 400 do
    			if estdsjulia 
    				((float_of_int (i)/.400.)*.2.5 -.1.25	)
    				((float_of_int (j)/.400.)*.2.5 -.1.25) cr ci then 
    				fill_circle i j 1
    		done;
    	done;
    ;;
    affiche (-.0.85) (0.2);;
    Sauf que ce que je vois n'a pas l'air de ressembler à la courbe de Julia pour c = -0.85 +0.2i . J'ai testé pour d'autres valeurs et à chaque fois ça ne ressemble pas...
    J'ai pas trouvé le problème.... =(
    Merci.

  2. #2
    Membre Expert
    Inscrit en
    avril 2007
    Messages
    831
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 831
    Points : 1 009
    Points
    1 009

    Par défaut

    Il y a un problème (que je te laisse découvrir) avec ce style de mises à jour :

    Code :
    1
    2
    3
    4
    		x:= (!x)*.(!x) -.(!y)*.(!y) +.cr;
    		y:= 2.*.(!x)*.(!y)+.ci;
    		res:= (!x)*.(!x) +.(!y)*.(!y)< 4.;

  3. #3
    Futur Membre du Club
    Inscrit en
    janvier 2011
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : janvier 2011
    Messages : 84
    Points : 19
    Points
    19

    Par défaut

    C'est une erreur en lien avec les maths ? (J'ai bien vérifié, quand on pose z = x+ i*y...) ou c'est plus une erreur de syntaxe ( ça ne calcule pas vraiment les (xn,yn) = (zn), comme il faut)?
    Merci.

  4. #4
    Futur Membre du Club
    Inscrit en
    janvier 2011
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : janvier 2011
    Messages : 84
    Points : 19
    Points
    19

    Par défaut

    ahhh oui,
    je modifie x
    puis en calculant y je prend la valeur suivante de x....
    Bref, j'ai modifié et ça marche!
    Merci!!

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •