Mandelbrotbaum

Der Mandelbrotbaum zählt zu den Fraktalen. Dieses sind geometrische Gebilde, die aufgrund einer mehr oder weniger komplexen mathematischen Berechnung entstehen. Beispiele für den Mandelbrotbaum zeigen die beiden untenstehenden Bilder, die sich nur in in ihren Anfangsbedingungen unterscheiden. Beiden liegt der selbe Algorithmus zu Grunde

"Apfelmännchen"
typische Figur des Mandelbrotbaums
"Zoom ins Apfelmännchen"
Vergrösserung des Mandelbrotbaumes

"mandel.exe" stellt nun ein Programm dar, welches diese Gebilde berechnet und als Bitmap auf der Platte ablegt. Da dieses Projekt einer Studienarbeit entsprang und die wesentliches Aspekte in der Programmierung paralleler Prozesse lagen, fehlt dieser Software (noch) eine grafische Oberfläche. Das wirklich einzigartige und einmalige ist hierbei die Berechnung von Bilderfolgen, die aneinandergehängt eine virtuellen Fahrt in bzw. aus dem Fraktal wiedergeben. Einen kleinen Vorgeschmack zeigt das zum Download verfügbare Video.

Eigenschaften der Fraktale:

Zusammenfassend lässt sich ein Fraktal wie folgt beschreiben. Es stellt die graphische Summe aller Glieder eines Algorithmus dar, die auf einen Attraktor zugehen. Je nach Anzahl der Iterationsschritte, die notwendig sind, bis die Gleichung konvergiert oder divergiert, erhalten die einzelnen Punkte eine andere Farbe. Dadurch kann das zeitliche und räumliche Verhalten der Konvergenz grafisch sichtbar gemacht werden.
Die Mandelbrotmenge kann als Untermenge der Juliamenge gesehen werden. Beide basieren auf der komplexen Zahlenebene und liegen der gleichen relativ einfachen nichtlinearen Iterationsformel zu Grunde:

Durch eine kleine mathematische Umformung lässt sich diese einfache Iterationsgleichung auch wie folgt ausdrücken:

 

Bei den Julia-Mengen ist die Größe c eine konstante Anfangsbedingung, d.h., für verschiedene c gibt es auch verschiedene Mengen, sogenannte Anfangsbedingungskarten (Julia-Mengen). Die Eingangsgröße x hingegen ist ein beliebiges Element der komplexen Zahlenebene. Nun wird eben dieser beliebige Wert von c in die obige Gleichung eingesetzt und iteriert. Es können jetzt zwei Fälle auftreten:

  1. Die Iteration divergiert ins Unendliche, d.h. mit zunehmenden Iterationsschritten nähert sich das Ergebnis dem Unendlichen
  2. Die Iteration divergiert nicht. Sie bleibt begrenzt und das Ergebnis strebt einen bestimmten Wert an, der sich innerhalb eines Kreises um den Ursprung befindet

Im Gegensatz zu den Julia-Mengen ist bei der Mandelbrotmenge die komplexe Zahl c nicht fest. Der komplexen Zahl c werden bei der Iteration die Koordinaten des Pixels innerhalb eines darzustellenden Bereiches zugeordnet. D.h. auf den Achsen der komplexen Ebene sind Parametergrößen aufgetragen.
Mit einer bestimmten Anfangsbedingung, z.B. z=0, und den Koordinaten c wird die oben erwähnte Gleichung solange iteriert, bis die Anzahl der Iterationen ein Maximum erreicht oder der Betrag der komplexen Zahl z den vorher definierten Wert 2 überschreitet, also mit ihm konvergiert.
Für alle Pixelkoordinaten werden nun die Iterationen durchgeführt. Die Anzahl der benötigten Durchläufe beschreibt das Verhalten der Funktion an dieser Koordinate. Entweder wird der Punkt begrenzt, oder er divergieren mit einer bestimmten Geschwindigkeit ins Unendliche. Und diese Geschwindigkeit wird durch eine bestimmte Farbe dargestellt. So entstehen die eher komisch wirkenden Gebilde der Mandelbrotmenge, die aufgrund ihres Aussehens auch gerne als Apfelmännchen bezeichnet werden.
Das nebenstehendeFlussdiagramm soll den Ablauf noch einmal verdeutlichen. Die komplexe Zahl z besteht aus einem Realteil A und einem Imaginärteil B, gekennzeichnet durch die komplexe Zahl i.
Im ersten Schritt wird Z ein Anfangswert zugewiesen. In unserem Fall Z=0. Mit der Formel

wird der neue Wert basierend auf dem vorherigen Z und den Bildkoordinaten berechnet. Die Koordinaten sind hier ebenfalls als komplexe Zahl in C eingebettet.
Jede Berechnung von Z erhöht zwangsläufig die Variable Iteration, die die gesamte Anzahl der Durchläufe zählt. Im anschließenden Vergleich wird kontrolliert, ob der Betrag von Z kleiner als 2 und die Anzahl der Iterationsschritte kleiner einem maximalen Wert geblieben ist. Wenn ja, verzweigt die Routine nach "oben" und berechnet ein neues Z. Dies wird solange durchgeführt, bis der Vergleich falsch ist. Dann wird der Wert in Iteration der Koordinate als Farbwert übergeben.


Software

Wie schon anfangs erwähnt, stand in der Programmierung nicht der Algorithmus und dessen Visualisierung im Vordergrund. Primäres Ziel war es, ein parallel ablaufendes Programm auf einem PC-Cluster zu implementieren. Näheres ist zu diesen Techniken ist auf der Seite MPI zu finden.
Um nun jeden in den Genuss der Mandelbrotbäume zu bringen, existiert neben der Cluster-Variante auch noch eine normale unter Windows 9x/2000/XP lauffähige Version des Programms. In absehbarer Zeit wird es sicherlich zu Neuerungen kommen bis hin zur grafischen und damit benutzerfreundlichen Oberfläche.

Download

Video Mandelbrotbaum (ca 900 kB)

mandel.exe Windows

mandel.exe MPI