Plimpton_ le 31/07/2015 à 17:35
Salut à tous !
J'ai réussi à créer un algorithme permettant d'afficher une portion de fractale générée à l'aide d'un nombre complexe C.
Pour comprendre cet algorithme, le niveau de terminale minimum est nécessaire, car il nécessite des connaissances sur les nombres complexes, sur les suites arithmétiques, et les fractales.
Cet algorithme utilise la suite Z(n)=Z(n+1)+C
C'est à vous d'entrer les caractéristques du nombre complexe C, à savoir sa partie réelle a et sa partie imaginaire b (C=a+bi).
Vous devrez ensuite entrer ce que j'ai appelé la "sensibilité", qui désigne à partir de quel nombre on n'active plus les pixels du graphique. Je vous conseille de tatonner entre 1 et 20, afin de voir quelque chose. Il est important également que a et b soient compris entre -1 et 1, ou la fractale ne se génèrera pas.
Notez aussi que la fractale met plusieurs minutes à s'afficher, car elle se génère point par point. Donc faites quelque chose en attendant, regardez une petite vidéo, et retournez voir votre calculatrice après
Voici le programme (pour TI-82 Stats FR) :
Input "PART REELLE C ? ",C
Input "PART IMG C ? ",D
Input "SENSIBILITE ? ",S
-1 --> Xmin
1 --> Xmax
-1 --> Ymin
1 --> Ymax
EffDessin
AxesAff
EtiqNAff
AffGraph
For(T,0,10000)
0 --> L
entAleat(-1,0)+NbrAléat --> X
entAléat(-1,0)+NbrAléat --> Z
X --> Q
Z --> R
While {{RACINE DE}} (Q²+R²)<2
L+1 --> L
Q --> A
R --> B
A²-B²+C --> Q
2AB+D --> R
End
If L=<S \\ "=<" signifie "inférieur ou égal", il se trouve dans le menu MATHS \\
Then
Pt-On(X,Z)
End
End
Je débute un peu dans la programmation, dites-moi ce que vous en pensez

Mingerton le 31/07/2015 à 21:06
Salut Plimpton_
C'est un bel algorithme ! Il mériterait une optimisation de vitesse, je sais pas encore si c'est possible ici. On perd peut être des cycles dans les boucles.
Sinon, tu peux demander un nombre complexe directement en ayant enclenché la mode a+bi au préalable, puis récupérer les parties réelles et imaginaires respectivement avec real(nombre) et imag(nombre).
Ce qui nous donne :
Plimpton_ le 10/08/2015 à 22:08
Merci pour ta réponse ! Ton algorithme est pas mal, mais je n'ai pas tout compris au code ^^ mais je pense que je vais utiliser le tien. Je te passe quand même la 2eme version de mon algoritme qui est assez sympa. Il faut toujours attendre environ 20 min pour voir apparaitre la fractale, mais le resultat vaut vraiment le coup, et on a une vision de la totalité de l'image
Code
Input "PART REEL C ? ",C
Input "PART IMG C ? ",D
Input "SENSIBILITE ? ",S
-2-->Z
-2-4/94-->X
2-->Xmax
-2-->Xmin
2-->Ymin
-2-->Ymax
EffDessin
AxesAff
EtiqNAff
AffGraph
While Z<2
0-->L
X+4/94-->X
If X>2
Then
-2-4/94-->X
Z+4/62-->Z
End
Pt-On(X,Z)
X-->Q
Y-->R
While sqrt(Q^2+R^2)<2
L+1-->L
Texte(0,0,"....
Texte(0,0,L
Q-->A
R-->B
A^2-B^2+C-->Q
2AB+D-->R
If L>(S+1)
Then
9999-->Q
End
End
If L>=S
Then
Pt-On(X,Z
Else
Pt-Off(X,Z
End
End
Ce code affiche en plus en haut a gauche le nombre de boucles que fait le point actuel, et la fractale se genere point par point au lieu de proceder par points aleatoires
