1. Importar las bibliotecas necesarias
Para comenzar a dibujar el conjunto de Mandelbrot en Python, necesitaremos importar algunas bibliotecas que nos ayudarán en el proceso. En este caso, utilizaremos las bibliotecas numpy y matplotlib.
La biblioteca numpy nos permitirá realizar cálculos numéricos eficientes, mientras que matplotlib nos ayudará a visualizar el conjunto de Mandelbrot.
A continuación, importaremos estas bibliotecas utilizando el siguiente código:
«`python
import numpy as np
import matplotlib.pyplot as plt
«`
2. Definir las constantes y variables necesarias
Antes de comenzar a dibujar el conjunto de Mandelbrot, necesitaremos definir algunas constantes y variables necesarias para el cálculo y la visualización.
En este caso, definiremos las siguientes constantes:
- MAX_ITER: el número máximo de iteraciones permitidas para determinar si un punto está dentro del conjunto de Mandelbrot.
- WIDTH: el ancho de la imagen en píxeles.
- HEIGHT: la altura de la imagen en píxeles.
- RE_START: el valor mínimo del rango real.
- RE_END: el valor máximo del rango real.
- IM_START: el valor mínimo del rango imaginario.
- IM_END: el valor máximo del rango imaginario.
A continuación, definiremos las siguientes variables:
- re_values: un arreglo de valores reales que representan los puntos en el eje x de la imagen.
- im_values: un arreglo de valores imaginarios que representan los puntos en el eje y de la imagen.
- mandelbrot_set: una matriz vacía que almacenará los resultados de si cada punto está dentro del conjunto de Mandelbrot.
Utilizaremos el siguiente código para definir estas constantes y variables:
«`python
MAX_ITER = 100
WIDTH = 800
HEIGHT = 800
RE_START = -2
RE_END = 1
IM_START = -1.5
IM_END = 1.5
re_values = np.linspace(RE_START, RE_END, WIDTH)
im_values = np.linspace(IM_START, IM_END, HEIGHT)
mandelbrot_set = np.zeros((HEIGHT, WIDTH))
«`
3. Crear una función para verificar si un punto está dentro del conjunto de Mandelbrot
El conjunto de Mandelbrot se define como el conjunto de puntos complejos c para los cuales la secuencia de números complejos zn+1 = zn2 + c no diverge cuando n tiende a infinito.
Para verificar si un punto está dentro del conjunto de Mandelbrot, necesitaremos crear una función que realice esta verificación. Utilizaremos el siguiente código:
«`python
def is_in_mandelbrot(c):
z = 0
for i in range(MAX_ITER):
z = z**2 + c
if abs(z) > 2:
return False
return True
«`
4. Crear una función para asignar un color a cada punto
Para visualizar el conjunto de Mandelbrot, asignaremos un color a cada punto en función del número de iteraciones necesarias para determinar si el punto está dentro del conjunto.
Crearemos una función que tome como entrada el número de iteraciones y devuelva un color en función de ese número. Utilizaremos el siguiente código:
«`python
def get_color(iterations):
if iterations == MAX_ITER:
return (0, 0, 0)
else:
hue = iterations / MAX_ITER
color = plt.cm.hsv(hue)
return color[:3]
«`
5. Crear una función para dibujar el conjunto de Mandelbrot
Ahora que tenemos todas las funciones necesarias, podemos crear una función principal que dibuje el conjunto de Mandelbrot.
Esta función recorrerá todos los puntos en la imagen y verificará si cada punto está dentro del conjunto utilizando la función is_in_mandelbrot. Luego, asignará un color a cada punto utilizando la función get_color.
Utilizaremos el siguiente código para crear esta función:
«`python
def draw_mandelbrot():
for i, im in enumerate(im_values):
for j, re in enumerate(re_values):
c = complex(re, im)
if is_in_mandelbrot(c):
mandelbrot_set[i, j] = 1
else:
mandelbrot_set[i, j] = 0
color = get_color(mandelbrot_set[i, j])
plt.plot(re, im, ‘s’, color=color)
plt.title(«Mandelbrot Set»)
plt.xlabel(«Real»)
plt.ylabel(«Imaginary»)
plt.show()
«`
6. Configurar los parámetros de dibujo
Antes de ejecutar el programa, podemos configurar algunos parámetros de dibujo para personalizar la apariencia del conjunto de Mandelbrot.
Por ejemplo, podemos ajustar el número máximo de iteraciones cambiando el valor de la constante MAX_ITER. Cuanto mayor sea este valor, más tiempo tomará el cálculo, pero también se obtendrá una imagen más detallada.
También podemos ajustar el tamaño de la imagen cambiando los valores de las constantes WIDTH y HEIGHT. Cuanto mayor sea el valor de estas constantes, mayor será la resolución de la imagen.
Además, podemos ajustar el rango de valores reales e imaginarios cambiando los valores de las constantes RE_START, RE_END, IM_START y IM_END. Estos valores determinarán el área de la imagen que se mostrará.
7. Ejecutar el programa y visualizar el conjunto de Mandelbrot
Finalmente, podemos ejecutar el programa llamando a la función draw_mandelbrot. Esto calculará el conjunto de Mandelbrot y mostrará la imagen resultante.
Utilizaremos el siguiente código para ejecutar el programa:
«`python
draw_mandelbrot()
«`
Al ejecutar el programa, se abrirá una ventana emergente que mostrará la imagen del conjunto de Mandelbrot.
¡Y eso es todo! Ahora sabes cómo dibujar el conjunto de Mandelbrot en Python utilizando un enfoque paso a paso. Puedes experimentar ajustando los parámetros de dibujo para obtener diferentes resultados y explorar la belleza de este conjunto fractal.