π
<-

fractale : ensemble de julia

fractale : ensemble de julia

Unread postby loupiot » 24 Sep 2017, 21:18

je vous présente mon code générant d'autres fractales, liées à l'ensemble de mandelbrot ; elles appartiennent à l'ensemble de julia
Attention : Ce code ne fonctionne pas si votre numworks tourne avec une version 1.2 ou supérieure. Un script est présenté plus tard sur ce topic pour les version 1.2 ou supérieure.
Code: Select all
import kandinsky
N_iteration = 40
X_min = -2
X_max = 2
Y_min = -2
Y_max = 2
for x in range(320):
    for y in range(240):
        c_r = -1
        c_i = 0.3
        z_r = X_min +(X_max-X_min)*x/320
        z_i = Y_min +(Y_max-Y_min)*y/240
        i=0
        while (i < N_iteration ) and ((z_r*z_r)+(z_i*z_i) < 4):
            i+1=i
            stock = z_r
            z_r = z_r * z_r - z_i * z_i +  c_r
            z_i = 2 * stock * z-i + c_i
        rgb = int(255*i/N_iteration)
        col = kandinsky.color(rgb,rgb,rgb)
        kandinsky.set_pixel(x,y,col)

ça affiche ça
Image
Alors oui, le programme est très proche du programme fourni avec la version bêta du python, mais j'y ai mis 4 variables permettant de modifier les parties du plan affichées par la calculatrice (et de faire des zooms)
exemple avec c_r et c_i = 0.36 :

Image

c'est pas mal, mais en modifiant un peu le plan :

Image

ça donne d'un coup plus envie :p (pensez à augmenter le nombre d'itérations)
c'est pratique quand la fractale générée n'est pas connexe

Pour modifier les couleurs, il suffit de modifier la 20ème ligne de code (pensez à rajouter int( entre chaque "rgb" car chaque valeur se doit d'être entière
pour c_r = 0.3 et c_i = 0.5 :

Image

c_r = 0.285 et c_i = 0.013 avec recadrage

Image

amusez vous bien :p
Last edited by loupiot on 19 Feb 2018, 17:54, edited 3 times in total.
User avatar
loupiotProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 1.9%
 
Posts: 158
Images: 4
Joined: 30 Oct 2015, 13:23
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2A ENS Lyon maths

Re: fractale : ensemble de julia

Unread postby Ti64CLi++ » 24 Sep 2017, 21:30

Waouh, magnifique loupiot :bj:
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: fractale : ensemble de julia

Unread postby Hamza.S » 24 Sep 2017, 21:33

@loupiot tu nous avais caché tes talents.
c'est très joli, franchement bravo :bj:

dommage qu'il n'y ait pas de logiciel de transfert pour numworks pour le moment
Image
User avatar
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 29%
 
Posts: 4501
Images: 18
Joined: 07 Nov 2014, 00:43
Gender: Male
Calculator(s):
MyCalcs profile

Re: fractale : ensemble de julia

Unread postby critor » 24 Sep 2017, 21:33

Super ! :bj:
Le tout premier programme NumWorks publié par la communauté, je me trompe ? ;)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48.1%
 
Posts: 41993
Images: 15900
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: fractale : ensemble de julia

Unread postby Ti64CLi++ » 24 Sep 2017, 21:35

Quelqu'un peut m'expliquer comment marche les codes qui dessinent des fractales, avec des couleurs :D
Je ne sais pas du tout comment ca marche :(
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: fractale : ensemble de julia

Unread postby loupiot » 25 Sep 2017, 22:34

les fractales sont générées en appliquant à un nombre complexe Z une suite du type Zn+1 = Z²+C avec C un complexe
Quand on a un résultat borné, on peut colorier le point Z du plan. Fais ça pour tout le plan et t'obtient une belle fractale :)
Quand il y a des couleurs comme dans ce programme, c'est en général qu'on colorie selon la "vitesse" avec laquelle Zn diverge ; plus ça prend un temps long, plus le point est clair
En réalité on prend le nombre d'itération que ça a prit pour comprendre que la suite diverge
j'espère que j'ai été clair :p
User avatar
loupiotProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 1.9%
 
Posts: 158
Images: 4
Joined: 30 Oct 2015, 13:23
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2A ENS Lyon maths

Re: fractale : ensemble de julia

Unread postby parisse » 26 Sep 2017, 11:42

Une maniere assez generale pour generer une fractale est la suivante: on se donne une equation polynomiale
$mathjax$P(z)=0$mathjax$
dans
$mathjax$\mathbb{C}$mathjax$
, par exemple
$mathjax$P(z)=z^3-1$mathjax$
, on applique la methode de Newton pour la resoudre
$mathjax$u_{n+1}=u_n-P(u_n)/P'(u_n)$mathjax$
. Selon la valeur initiale
$mathjax$u_0$mathjax$
, la suite convergera vers un des points fixes, c'est-a-dire une des racines complexes de P ou divergera. On peut alors donner une couleur au point du plan d'affixe
$mathjax$u_0$mathjax$
en fonction de la racine vers laquelle on converge, ou une autre couleur s'il n'y a pas convergence (numerique) au bout d'un nombre maximal d'iterations.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86.2%
 
Posts: 3666
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: fractale : ensemble de julia

Unread postby Ti64CLi++ » 26 Sep 2017, 21:02

Ok, merci il me semble que j'ai compris. Je vais essayer de faire ma proper fractale :)
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: fractale : ensemble de julia

Unread postby parisse » 27 Sep 2017, 06:36

On notera d'ailleurs que l'absence de complexes dans le module Python de la Numworks rend le code de fractales plus difficile a lire et comprendre, et sa conception fastidieuse.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86.2%
 
Posts: 3666
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: fractale : ensemble de julia

Unread postby loupiot » 19 Feb 2018, 22:14

Voici le script pour les versions 1.2 ou supérieur.
Il faut créer un script, qui s'appelle julia.py
Code: Select all
from kandinsky import*
def julia(c,N_i,xmin,xmax,ymin,ymax):
    """c'est une fonction qui prend en entrées :
    c un nombre complexe,
    N_i le nombre d'itérations,
    xmin et autres la fenêtre du plan que l'on va afficher"""

    if type(N_i*xmin*xmax*ymin*ymax)==complex or N_i<1 or xmin>=xmax or ymin>=ymax:
        """juste pour vérifier que les paramètres correspondent bien à leur utilité ...
        On peut enlever ce if si on est sûr de pas faire n'importe quoi :p """
        return "N_i>=1, xmin<xmax, ymin<ymax"
    else:
        for x in range(320):
            for y in range(222):
                i=0
                z=xmin+(xmax-xmin)*x/320+(ymax-(ymax-ymin)*y/222)*1J
                while i<N_i and abs(z)<=2:
                    z=z*z+c
                    i+=1
                rgb=int(255*i/N_i)
                col=color(rgb,rgb,rgb)
                set_pixel(x,y,col)


cette nouvelle version corrige aussi un autre problème, c'est que l'ancien script générait des images qui étaient le miroir de ce qu'on attendait.
User avatar
loupiotProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 1.9%
 
Posts: 158
Images: 4
Joined: 30 Oct 2015, 13:23
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2A ENS Lyon maths


Return to Programmation Python

Who is online

Users browsing this forum: ClaudeBot [spider] and 0 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1044 utilisateurs:
>1010 invités
>25 membres
>9 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)