fractais Python

Mar 22 2023
A geometria fractal é um campo fascinante que lida com o estudo de estruturas matemáticas conhecidas como fractais. Os fractais são padrões complexos e autossimilares que se repetem em diferentes escalas e podem ser encontrados na natureza, na arte e na ciência.

A geometria fractal é um campo fascinante que lida com o estudo de estruturas matemáticas conhecidas como fractais. Os fractais são padrões complexos e autossimilares que se repetem em diferentes escalas e podem ser encontrados na natureza, na arte e na ciência.

Um dos fractais mais famosos é o conjunto de Mandelbrot, que leva o nome do matemático Benoit Mandelbrot. O conjunto de Mandelbrot é gerado iterando uma equação simples repetidas vezes e examinando o comportamento da sequência resultante de números complexos. O conjunto de Mandelbrot é definido como o conjunto de números complexos c para os quais a sequência permanece limitada sob iteração.

Para gerar o conjunto de Mandelbrot, podemos usar Python e a biblioteca matplotlib. A primeira etapa é definir uma função que receba um número complexo c e um número máximo de iterações e retorne o número de iterações necessárias para que a sequência se torne ilimitada.

import numpy as np 
 
def mandelbrot(c, max_iter): 
    z = 0 
    for i in range(max_iter): 
        z = z**2 + c 
        if abs(z) > 2: 
            return i 
    return max_iter

def generate_mandelbrot_set(xmin, xmax, ymin, ymax, width, height, max_iter): 
    x_values = np.linspace(xmin, xmax, width) 
    y_values = np.linspace(ymin, ymax, height) 
    mandelbrot_set = np.zeros((height, width)) 
     
    for i in range(height): 
        for j in range(width): 
            mandelbrot_set[i,j] = mandelbrot(complex(x_values[j], y_values[i]), max_iter) 
             
    return mandelbrot_set

Uma vez gerado o conjunto de Mandelbrot, podemos usar a biblioteca matplotlib para visualizá-lo como uma imagem.

def generate_mandelbrot_set(xmin, xmax, ymin, ymax, width, height, max_iter): 
    x_values = np.linspace(xmin, xmax, width) 
    y_values = np.linspace(ymin, ymax, height) 
    mandelbrot_set = np.zeros((height, width)) 
     
    for i in range(height): 
        for j in range(width): 
            mandelbrot_set[i,j] = mandelbrot(complex(x_values[j], y_values[i]), max_iter) 
             
    return mandelbrot_set

Agora podemos usar essas funções para gerar e plotar o conjunto de Mandelbrot para uma determinada região de interesse e resolução.

if __name__ == '__main__': 
    xmin, xmax, ymin, ymax = -2, 1, -1.5, 1.5 
    width, height = 1000, 1000 
    max_iter = 1000 
    mandelbrot_set = generate_mandelbrot_set(xmin, xmax, ymin, ymax, width, height, max_iter) 
    plot_mandelbrot_set(mandelbrot_set, cmap='inferno')

Outro fractal famoso que pode ser gerado usando uma abordagem semelhante é o conjunto de Julia, que é definido como o conjunto de números complexos c para os quais a sequência z_n = z_{n-1}² + c permanece limitada. O conjunto de Julia é gerado iterando a mesma equação do conjunto de Mandelbrot, mas com um valor fixo de c.

Para gerar o conjunto de Julia, podemos modificar a função de Mandelbrot para obter um valor fixo de c e aplicá-lo a cada ponto no plano complexo.

def julia(z, c, max_iter): 
    for i in range(max_iter): 
        z = z**2 + c 
        if abs(z) > 2: 
            return i 
    return max_iter

def julia(z, c, max_iter): 
    for i in range(max_iter): 
        z = z**2 + c 
        if abs(z) > 2: 
            return i 
    return max_iter

if __name__ == '__main__': 
    xmin, xmax, ymin, ymax = -2, 2, -2, 2 
    width, height = 1000, 1000 
    max_iter = 1000 
    c = complex(-0.4, 0.6) 
    julia_set = generate_julia_set(xmin, xmax, ymin, ymax, width, height, c, max_iter) 
    plot_mandelbrot_set(julia_set, cmap='inferno')

Fractais são estruturas matemáticas fascinantes que podem ser geradas e visualizadas usando Python e a biblioteca matplotlib. O conjunto de Mandelbrot e o conjunto de Julia são dois exemplos famosos de fractais que podem ser gerados usando algoritmos iterativos simples, e suas estruturas intrincadas e bonitas os tornam um assunto popular de estudo e exploração em matemática, ciência e arte.