Fractales Python

Mar 22 2023
La géométrie fractale est un domaine fascinant qui traite de l'étude des structures mathématiques appelées fractales. Les fractales sont des motifs complexes et auto-similaires qui se répètent à différentes échelles, et on les trouve dans la nature, l'art et la science.

La géométrie fractale est un domaine fascinant qui traite de l'étude des structures mathématiques appelées fractales. Les fractales sont des motifs complexes et auto-similaires qui se répètent à différentes échelles, et on les trouve dans la nature, l'art et la science.

L'une des fractales les plus célèbres est l'ensemble de Mandelbrot, qui porte le nom du mathématicien Benoit Mandelbrot. L'ensemble de Mandelbrot est généré en itérant une équation simple encore et encore et en examinant le comportement de la séquence résultante de nombres complexes. L'ensemble de Mandelbrot est défini comme l'ensemble des nombres complexes c dont la suite reste bornée par itération.

Pour générer l'ensemble de Mandelbrot, nous pouvons utiliser Python et la bibliothèque matplotlib. La première étape consiste à définir une fonction qui accepte un nombre complexe c et un nombre maximum d'itérations, et renvoie le nombre d'itérations nécessaires pour que la séquence devienne illimitée.

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

Une fois l'ensemble de Mandelbrot généré, nous pouvons utiliser la bibliothèque matplotlib pour le visualiser sous forme d'image.

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

Nous pouvons maintenant utiliser ces fonctions pour générer et tracer l'ensemble de Mandelbrot pour une région d'intérêt et de résolution donnée.

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')

Une autre fractale célèbre qui peut être générée en utilisant une approche similaire est l'ensemble de Julia, qui est défini comme l'ensemble des nombres complexes c pour lesquels la séquence z_n = z_{n-1}² + c reste bornée. L'ensemble de Julia est généré en itérant la même équation que l'ensemble de Mandelbrot, mais avec une valeur fixe de c.

Pour générer l'ensemble de Julia, nous pouvons modifier la fonction de Mandelbrot pour prendre une valeur fixe de c et l'appliquer à chaque point du plan complexe.

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')

Les fractales sont des structures mathématiques fascinantes qui peuvent être générées et visualisées à l'aide de Python et de la bibliothèque matplotlib. L'ensemble de Mandelbrot et l'ensemble de Julia sont deux exemples célèbres de fractales qui peuvent être générées à l'aide d'algorithmes itératifs simples, et leurs structures complexes et magnifiques en font un sujet d'étude et d'exploration populaire en mathématiques, en sciences et en art.