Julia fractal en Python

Introducción al conjunto julia
En el contexto de la dinámica compleja, un tema de las matemáticas, el conjunto Julia y el conjunto Fatou son dos conjuntos complementarios (Julia ‘laces’ y Fatou ‘polvos’) definidos a partir de una función. De manera informal, el conjunto de Fatou de la función consta de valores con la propiedad de que todos los valores cercanos se comportan de manera similar bajo iteraciones repetidas de la función, y el conjunto de Julia consta de valores tales que una perturbación arbitrariamente pequeña puede causar cambios drásticos en la secuencia de la función iterada. valores. Así, el comportamiento de la función en el conjunto de Fatou es ‘regular’, mientras que en el conjunto de Julia su comportamiento es ‘caótico’.
El conjunto de Julia de una función f se denota comúnmente como J(f), y el conjunto de Fatou se denota como F(f). Estos conjuntos llevan el nombre de los matemáticos franceses Gaston Julia y Pierre Fatou, cuyo trabajo inició el estudio de la dinámica compleja a principios del siglo XX. [Fuente Wiki ]

La ecuación para generar el fractal de Julia es:
f_{c}(z)=z^{2}+c

donde c es un parámetro complejo. El conjunto de Julia para este sistema es el subconjunto del plano complejo dado por:

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

Así que ahora intentemos crear uno de los fractales en la imagen de arriba.

Para hacerlo, necesitamos el módulo Pillow de python, que facilita el manejo de imágenes y demás.

Para instalar la Pillow a través de pip, escriba el siguiente comando en el símbolo del sistema.

pip install Pillow

Ahora usando esta biblioteca para crear la imagen fractal.

# Python code for Julia Fractal
from PIL import Image
   
# driver function
if __name__ == "__main__":
    
    # setting the width, height and zoom 
    # of the image to be created
    w, h, zoom = 1920,1080,1
   
    # creating the new image in RGB mode
    bitmap = Image.new("RGB", (w, h), "white")
  
    # Allocating the storage for the image and
    # loading the pixel data.
    pix = bitmap.load()
     
    # setting up the variables according to 
    # the equation to  create the fractal
    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
  
            # convert byte to RGB (3 bytes), kinda 
            # magic to get nice colors
            pix[x,y] = (i << 21) + (i << 10) + i*8
  
    # to display the created fractal
    bitmap.show()

Producción:

Consulte también este video de numberphile para obtener más información.

Después de comprender el código, intente dibujar los otros fractales cambiando el valor de las variables y publique su enlace de github al código en la sección de comentarios y estaré encantado de ayudarle si surge algún error.

Este artículo es una contribución de Subhajit Saha . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *