Introdução ao conjunto julia
No contexto da dinâmica complexa, um tópico da matemática, o conjunto Julia e o conjunto Fatou são dois conjuntos complementares (Julia 'laços' e Fatou 'poeiras') definidos a partir de uma função. Informalmente, o conjunto Fatou da função consiste em valores com a propriedade de que todos os valores próximos se comportam de maneira semelhante sob iteração repetida da função, e o conjunto Julia consiste em valores tais que uma perturbação arbitrariamente pequena pode causar mudanças drásticas na sequência da função iterada valores. Assim, o comportamento da função no conjunto Fatou é "regular", enquanto no conjunto Julia seu comportamento é "caótico".
O conjunto Julia de uma função f é comumente denotado J (f), e o conjunto Fatou é denotado F (f). Esses conjuntos foram nomeados em homenagem aos matemáticos franceses Gaston Julia e Pierre Fatou, cujo trabalho deu início ao estudo da dinâmica complexa durante o início do século XX. [Source Wiki ]

A equação para gerar o fractal Julia é:
f_ {c} (z) = z ^ {2} + c

onde c é um parâmetro complexo. O conjunto Julia para este sistema é o subconjunto do plano complexo dado por:

J (f_ {c}) = \ left \ {z \ in \ mathbb {C}: \ forall n \ in \ mathbb {N}, | f_ {c} ^ {n} (z) | \ leq 2 \ right \}

Então, agora vamos tentar criar um dos fractais da imagem acima.



Para fazer isso, precisamos do módulo Pillow do python, que torna mais fácil lidar com imagens e outras coisas.

Para instalar o pillow por meio de pip, digite o seguinte comando no prompt de comando.

pip instalar pillow

Agora, usando esta biblioteca para criar a imagem fractal.

from PIL import Image 
   
if __name__ == "__main__": 
    
    
    
    w, h, zoom = 1920,1080,1
   
    
    bitmap = Image.new("RGB", (w, h), "white") 
  
    
    
    pix = bitmap.load() 
     
    
    
    cX, cY = -0.7, 0.27015
    moveX, moveY = 0.0, 0.0
    maxIter = 255
   
    for x in range(w): 
        for y in range(h): 
            zx = 1.5*(x - w/2)/(0.5*zoom*w) + moveX 
            zy = 1.0*(y - h/2)/(0.5*zoom*h) + moveY 
            i = maxIter 
            while zx*zx + zy*zy < 4 and i > 1: 
                tmp = zx*zx - zy*zy + cX 
                zy,zx = 2.0*zx*zy + cY, tmp 
                i -= 1
        pix[x,y] = (i << 21) + (i << 10) + i*8
  
    
    bitmap.show() 

Resultado:

Consulte também este vídeo por numberphile para obter mais informações.

Depois de entender o código, tente desenhar os outros fractais alterando o valor das variáveis ​​e poste seu link do github para o código na seção de comentários e ficarei feliz em ajudá-lo se houver algum erro.

Este artigo é uma contribuição de Subhajit Saha . Se você gosta de GeeksforGeeks e gostaria de contribuir, você também pode escrever um artigo usando contribute.geeksforgeeks.org ou enviar o seu artigo para contribute@geeksforgeeks.org. Veja o seu artigo que aparece na página principal do GeeksforGeeks e ajude outros Geeks.

Escreva comentários se encontrar algo incorreto ou se quiser compartilhar mais informações sobre o tópico discutido acima.