Einführung in
das Julia- Set Im Kontext der komplexen Dynamik, einem Thema der Mathematik, sind das Julia-Set und das Fatou-Set zwei komplementäre Sets (Julia-Schnürsenkel und Fatou-Stäube), die aus einer Funktion definiert werden. Informell besteht die Fatou-Menge der Funktion aus Werten mit der Eigenschaft, dass sich alle nahe gelegenen Werte bei wiederholter Iteration der Funktion ähnlich verhalten, und die Julia-Menge besteht aus Werten, so dass eine beliebig kleine Störung drastische Änderungen in der Sequenz der iterierten Funktion verursachen kann Werte. Somit ist das Verhalten der Funktion am Fatou-Set "normal", während das Verhalten am Julia-Set "chaotisch" ist.
Die Julia-Menge einer Funktion f wird üblicherweise mit J (f) bezeichnet, und die Fatou-Menge wird mit F (f) bezeichnet. Diese Mengen sind nach den französischen Mathematikern Gaston Julia und Pierre Fatou benannt, deren Arbeit im frühen 20. Jahrhundert mit dem Studium der komplexen Dynamik begann. [Quell- Wiki ]

Die Gleichung zur Erzeugung des Julia-Fraktals lautet:
f_ {c} (z) = z ^ {2} + c

Dabei ist c ein komplexer Parameter. Die Julia-Menge für dieses System ist die Teilmenge der komplexen Ebene, die gegeben ist durch:

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

Versuchen wir nun, eines der Fraktale im obigen Bild zu erstellen.



Dazu benötigen wir das Pillow- Modul von Python, das den Umgang mit Bildern und anderen Dingen erleichtert.

Geben Sie den folgenden Befehl in die Eingabeaufforderung ein, um das pillow über Pip zu installieren.

Pip installieren pillow

Verwenden Sie jetzt diese Bibliothek, um das fraktale Bild zu erstellen.

from PIL import Image 
   
if __name__ == "__main__": 
    
    
    
    w, h, zoom = 1920,1080,1
   
    
    bitmap = Image.new("RGB", (w, h), "white") 
  
    
    
    pix = bitmap.load() 
     
    
    
    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
  
            
            
            pix[x,y] = (i << 21) + (i << 10) + i*8
  
    
    bitmap.show() 

Ausgabe:

Weitere Informationen finden Sie auch in diesem Video nach numberphile .

Nachdem Sie den Code verstanden haben, versuchen Sie, die anderen Fraktale zu zeichnen, indem Sie den Wert der Variablen ändern und Ihren Github-Link zum Code unten im Kommentarbereich veröffentlichen. Ich helfe Ihnen gerne, wenn ein Fehler auftritt.

Dieser Artikel wurde von Subhajit Saha verfasst . Wenn Ihnen GeeksforGeeks gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel mit Contrib.geeksforgeeks.org schreiben oder Ihren Artikel an Contribute@geeksforgeeks.org senden . Sehen Sie sich Ihren Artikel auf der GeeksforGeeks-Hauptseite an und helfen Sie anderen Geeks.

Bitte schreiben Sie Kommentare, wenn Sie etwas Falsches finden oder weitere Informationen zu dem oben diskutierten Thema teilen möchten.