Python-Fraktale

Mar 22 2023
Die fraktale Geometrie ist ein faszinierendes Gebiet, das sich mit der Untersuchung mathematischer Strukturen befasst, die als Fraktale bekannt sind. Fraktale sind komplexe, selbstähnliche Muster, die sich in verschiedenen Maßstäben wiederholen und in der Natur, Kunst und Wissenschaft zu finden sind.

Die fraktale Geometrie ist ein faszinierendes Gebiet, das sich mit der Untersuchung mathematischer Strukturen befasst, die als Fraktale bekannt sind. Fraktale sind komplexe, selbstähnliche Muster, die sich in verschiedenen Maßstäben wiederholen und in der Natur, Kunst und Wissenschaft zu finden sind.

Eines der bekanntesten Fraktale ist die Mandelbrot-Menge, die nach dem Mathematiker Benoit Mandelbrot benannt ist. Die Mandelbrot-Menge wird generiert, indem eine einfache Gleichung immer wieder wiederholt wird und das Verhalten der resultierenden Folge komplexer Zahlen untersucht wird. Die Mandelbrot-Menge ist definiert als die Menge der komplexen Zahlen c, für die die Folge unter Iteration beschränkt bleibt.

Um die Mandelbrot-Menge zu generieren, können wir Python und die Matplotlib-Bibliothek verwenden. Der erste Schritt besteht darin, eine Funktion zu definieren, die eine komplexe Zahl c und eine maximale Anzahl von Iterationen aufnimmt und die Anzahl der Iterationen zurückgibt, die erforderlich ist, damit die Sequenz unbegrenzt wird.

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

Sobald die Mandelbrot-Menge generiert wurde, können wir sie mithilfe der Matplotlib-Bibliothek als Bild visualisieren.

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

Wir können diese Funktionen nun verwenden, um die Mandelbrot-Menge für einen bestimmten interessierenden Bereich und eine bestimmte Auflösung zu generieren und darzustellen.

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

Ein weiteres berühmtes Fraktal, das mit einem ähnlichen Ansatz erzeugt werden kann, ist die Julia-Menge, die als die Menge der komplexen Zahlen c definiert ist, für die die Folge z_n = z_{n-1}² + c beschränkt bleibt. Die Julia-Menge wird durch Iterieren derselben Gleichung wie die Mandelbrot-Menge erzeugt, jedoch mit einem festen Wert von c.

Um die Julia-Menge zu erzeugen, können wir die Mandelbrot-Funktion so modifizieren, dass sie einen festen Wert von c annimmt und ihn auf jeden Punkt in der komplexen Ebene anwendet.

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

Fraktale sind faszinierende mathematische Strukturen, die mit Python und der Matplotlib-Bibliothek generiert und visualisiert werden können. Die Mandelbrot-Menge und die Julia-Menge sind zwei berühmte Beispiele für Fraktale, die mit einfachen iterativen Algorithmen erzeugt werden können, und ihre komplizierten und schönen Strukturen machen sie zu einem beliebten Studien- und Forschungsgegenstand in Mathematik, Naturwissenschaften und Kunst.