Mandelbrot-Menge

fraktal erscheinende Menge, die eine bedeutende Rolle in der Chaosforschung spielt

Die Mandelbrot-Menge, benannt nach Benoît Mandelbrot, ist die Menge der komplexen Zahlen , für welche die durch die iterative Vorschrift mit dem Startwert definierte Folge endlich bleibt, d. h. beschränkt ist.

Mandelbrot-Menge (schwarz) mit farbig kodierter Umgebung (rot→blau→grün→…)
Jeder Pixel entspricht einer komplexen Zahl . Farbig kodiert ist die Anzahl an notwendigen Iterationen , sodass wird. Sie steigt von den Ecken von (reines dunkelrot) nach innen von Farbstreifen zu Farbstreifen um je .

Interpretiert man die Mandelbrot-Menge (eine Teilmenge der Gaußsche Zahlenebenen) als geometrische Figur, so ergibt sie ein Fraktal, das im allgemeinen Sprachgebrauch oft Apfelmännchen genannt wird. Bilder berechnet man, indem man jedem Pixel eines Bildes eine komplexe Zahl zuordnet () und beginnend mit untersucht, ob und wann die Iterationen anfangen, zu „explodieren“. Bleiben die Werte klein, wird das Pixel häufig schwarz gefärbt, kommt es zu einer „Explosion“ der Zahlenwerte, wird die Anzahl der dafür notwendigen Iterationen als Farbe kodiert.

Die ersten mit einem Computer generierten Darstellungen wurden 1978 von Robert Brooks und Peter Matelski vorgestellt.[1] 1980 veröffentlichte Benoît Mandelbrot eine Arbeit über das Thema.[2] Später wurde sie von Adrien Douady und John Hamal Hubbard in einer Reihe grundlegender mathematischer Arbeiten systematisch untersucht.[3] Die mathematischen Grundlagen dafür wurden bereits 1905 von dem französischen Mathematiker Pierre Fatou erarbeitet.

DefinitionBearbeiten

 
Die Mandelbrot-Menge (schwarz) in der komplexen Ebene

Definition über RekursionBearbeiten

Die Mandelbrot-Menge   ist die Menge aller komplexen Zahlen  , für welche die rekursiv definierte Folge komplexer Zahlen   mit dem Anfangsglied

 

und dem Bildungsgesetz

 

beschränkt bleibt. Das heißt, eine komplexe Zahl   ist Element der Mandelbrotmenge  , wenn die Beträge der mit diesem   berechneten   nicht über jede Grenze wachsen, unabhängig davon, wie groß   wird. Dies lässt sich wie folgt schreiben:[4]

 

Man kann leicht zeigen, dass der Betrag der   über jede Grenze wächst, sobald ein   mit   auftritt, somit ist diese Definition gleichbedeutend mit:

 

Definition über komplexe quadratische PolynomeBearbeiten

Die Mandelbrotmenge lässt sich auch über komplexe quadratische Polynome beschreiben:

 

mit einem komplexen Parameter  . Für jedes   wird die Folge

 

iterativ berechnet, wobei   die  -fache Hintereinanderausführung der Iteration bedeutet, also

 
 

In Abhängigkeit vom Wert des Parameters   wächst diese Folge dann entweder unbeschränkt, sodass also   kein Element der Mandelbrotmenge ist, oder sie verbleibt innerhalb eines Bereichs um den Ursprung der Zahlenebene, und   ist Element der Mandelbrotmenge.

Die Mandelbrotmenge ist eine Untermenge der komplexen Zahlen mit der Definition

 

oder gleichbedeutend

 

Zur Erläuterung werden einige Eigenschaften und Beispiele angeführt:

  • Aufgrund der zuvor beschriebenen Feststellung kann   gesetzt werden. Dabei gibt der Wert   den Radius um den Ursprung an, innerhalb dessen ein Element von   liegen kann. Außerhalb dieses Kreises sind keine Elemente von   zu finden.
  • Wegen der Betragsfunktion ist   symmetrisch zur reellen Achse.
  • Um die Menge   grafisch darzustellen, müssen die Werte des Parameters   alle einzeln bis zu einer selbstbestimmten Anzahl von Iterationen berechnet werden.
  • Für   lautet die Folge   und ist beschränkt. Daher ist   Element von  .
  • Für   lautet die Folge   und ist divergent. Daher ist   kein Element von  .

Definition über Julia-MengenBearbeiten

Die Mandelbrot-Menge   wurde von Benoît Mandelbrot ursprünglich zur Klassifizierung von Julia-Mengen eingeführt, die bereits Anfang des 20. Jahrhunderts von den französischen Mathematikern Gaston Maurice Julia und Pierre Fatou untersucht wurden. Die Julia-Menge   zu einer bestimmten komplexen Zahl   ist definiert als der Rand der Menge aller Anfangswerte  , für die die obige Zahlenfolge beschränkt bleibt. Es kann bewiesen werden, dass die Mandelbrot-Menge   genau die Menge der Werte   ist, für die die zugehörige Julia-Menge   zusammenhängend ist.[5]

Dieses Prinzip wird in vielen Resultaten über das Verhalten der Mandelbrotmenge   vertieft. So zeigt Shishikura, dass der Rand der Mandelbrotmenge   ebenso wie die zugehörige Julia-Menge   die Hausdorff-Dimension 2 hat.[6] Ein unveröffentlichtes Manuskript von Jean-Christophe Yoccoz diente John Hamal Hubbard als Grundlage für seine Ergebnisse über lokal zusammenhängende Julia-Mengen   und lokal zusammenhängende Mandelbrot-Mengen  .[7]

 
oben: Feigenbaumdiagramm[8], mitte/unten: Mandelbrot-Menge.  Die vertikale roten Linien zeigen die Übereinstimmung charakteristische Punkte der Mandelbrot-Menge für reelle  -Werte und des Feigenbaumdiagramms.

Bezug zur ChaostheorieBearbeiten

Das Bildungsgesetz, das der Folge zugrunde liegt, ist die einfachste nichtlineare Gleichung, anhand der sich der Übergang von Ordnung zu Chaos durch Variation eines Parameters provozieren lässt. Dazu genügt es, reelle Zahlenfolgen zu betrachten.

Für Werte  , das heißt innerhalb der Kardioide, konvergiert die Folge. Auf der „Antenne“, die bis   reicht, verhält sich die Folge chaotisch. Der Übergang zu chaotischem Verhalten erfolgt nun über ein Zwischenstadium mit periodischen Grenzzyklen. Dabei nimmt die Periode zum chaotischen Bereich hin stufenweise um den Faktor zwei zu, ein Phänomen, das als Periodenverdopplung und Bifurkation bezeichnet wird. Jeder  -Bereich zu einer bestimmten Periode entspricht dabei einer der kreisförmigen „Knospen“ auf der  -Achse.

Die Periodenverdopplung beginnt mit dem „Kopf“ und setzt sich in der Folge der „Knospen“ zur „Antenne“ hin fort. Das Verhältnis der Längen aufeinander folgender Parameterintervalle und damit das der Knospendurchmesser zu unterschiedlicher Periode strebt dabei gegen die Feigenbaum-Konstante  , eine fundamentale Konstante der Chaostheorie. Dieses Verhalten ist typisch für den Übergang realer Systeme zu chaotischer Dynamik. Die auffälligen Lücken im chaotischen Bereich entsprechen Inseln mit periodischem Verhalten, denen in der komplexen Ebene die Satelliten auf der „Antenne“ zugeordnet sind.

Für gewisse komplexe  -Werte stellen sich Grenzzyklen ein, die auf einer geschlossenen Kurve liegen, deren Punkte jedoch nicht periodisch, sondern chaotisch abgedeckt werden. Eine solche Kurve ist in der Chaostheorie als sogenannter seltsamer Attraktor bekannt.

Die Mandelbrot-Menge ist daher ein elementares Objekt für die Chaostheorie, an der sich fundamentale Phänomene studieren lassen. Sie wird aus diesem Grund hinsichtlich ihrer Bedeutung für die Chaostheorie gelegentlich mit der von Geraden für die euklidische Geometrie verglichen.

Geometrische und mathematische EigenschaftenBearbeiten

Zoomfahrt in die Mandelbrot-Menge

Die Mandelbrotmenge ist abgeschlossen (da ihr Komplement offen ist) und in der abgeschlossenen Scheibe mit dem Radius 2 um den Ursprung enthalten und somit kompakt.

Es sei   und   bezeichne die  -te Iteration. Ein Punkt   gehört genau dann zur Mandelbrotmenge, falls

   für alle   

Wird der Betrag von   größer als 2, dann entkommt die Iteration ins Unendliche, der Betrag wächst über jede Grenze.   gehört dann nicht zur Mandelbrotmenge.

Der ungeheure Formenreichtum der Mandelbrot-Menge erschließt sich aus ihrem Bezug zu Julia-Mengen. Julia-Mengen zur Iteration   sind Fraktale, außer für einige  -Werte wie   (Strecke) oder   (Kreis). Die Formen dieser fraktalen Strukturen sind innerhalb einer Julia-Menge stets die gleichen, umspannen aber für Julia-Mengen zu verschiedenem Parameter   einen enormen Formenreichtum. Es zeigt sich, dass die Strukturen der Mandelbrot-Menge in der Umgebung eines bestimmten Wertes   genau die Strukturen der zugehörigen Julia-Menge   wiedergeben. Damit enthält die Mandelbrot-Menge den kompletten Formenreichtum der unendlich vielen Julia-Mengen (s. u.).

In den fraktalen Strukturen am Rand finden sich verkleinerte ungefähre Kopien der gesamten Mandelbrot-Menge, die Satelliten. Jeder Bildausschnitt der Mandelbrot-Menge, der sowohl Punkte aus   als auch solche außerhalb von   umfasst, enthält unendlich viele dieser Satelliten. Unmittelbar am Rand eines Satelliten treten fast die gleichen Strukturen auf wie an den entsprechenden Stellen des Originals. Diese Strukturen sind jedoch nach weiter außen hin mit den Strukturen kombiniert, die für die größere Umgebung des Satelliten typisch sind.

Da jeder Satellit wiederum mit Satelliten höherer Ordnung bestückt ist, lässt sich immer eine Stelle finden, an der eine beliebige Anzahl beliebiger verschiedener Strukturen in beliebiger Reihenfolge kombiniert auftritt. Diese Strukturen sind allerdings nur bei extremer Vergrößerung erkennbar.

Die Mandelbrot-Menge ist spiegelsymmetrisch zur reellen Achse. Sie ist zusammenhängend (das heißt, sie bildet keine Inseln), wie Adrien Douady und John Hamal Hubbard 1984 bewiesen, und es wird vermutet (Douady/Hubbard), dass sie lokal zusammenhängend ist (MLC-Vermutung). Dies ist eine der großen offenen Fragen in der komplexen Dynamik und bisher unbewiesen (obwohl es Teilresultate zum Beispiel von Jean-Christophe Yoccoz gibt, der lokalen Zusammenhang für bestimmte Werte von   bewies, für die endlich-renormalisierbaren Punkte). Die MLC erlaubt weitreichende Folgerungen über die Topologie der Mandelbrotmenge. Beispielsweise würde daraus die Hyperbolizitätsvermutung folgen, dass jede offene Menge in der Mandelbrotmenge (also das Innere der Mandelbrotmenge) aus Punkten mit attraktiven Zyklen besteht. Die Mandelbrot-Menge ist zwar selbstähnlich, aber nicht exakt, denn keine zwei Teilstrukturen ihres Randes sind exakt gleich; aber in der Nähe vieler Randpunkte bilden sich bei fortgesetzter Ausschnittvergrößerung im Grenzfall periodische Strukturen. An speziellen Punkten hat die Mandelbrotmenge Selbstähnlichkeit (vermutet von John Milnor und bewiesen von Mikhail Lyubich 1999).

Da die Mandelbrot-Menge Kardioid- und Kreisflächen enthält, hat sie die fraktale Dimension 2. Der Rand der Mandelbrot-Menge hat eine unendliche Länge, und seine Hausdorff-Dimension beträgt nach Arbeiten von Mitsuhiro Shishikura ebenfalls 2; das impliziert, dass die Box-Dimension den Wert 2 hat. Es ist denkbar, dass der Rand der Mandelbrot-Menge einen positiven (notwendig endlichen) Flächeninhalt hat; andernfalls wäre dieser Flächeninhalt null. Der Flächeninhalt der Mandelbrot-Menge ist nicht bekannt und beträgt nach numerischen Schätzungen etwa 1,5065918849.[9]

Die Mandelbrotmenge enthält deformierte Kopien aller Julia-Mengen, wie Tan Lei 1990 für die Misiurewicz-Punkte der Mandelbrotmenge bewiesen hat, die dicht im Rand der Mandelbrotmenge liegen. Das ist ein weiterer Beleg für die enge Verwandtschaft der Struktur von Julia- und Mandelbrotmengen. So wurden in den Beweisen von Yoccoz für lokalen Zusammenhang der Mandelbrotmenge bei endlich renormalisierbaren Punkten und von Shishikura über die fraktale Dimension des Randes der Mandelbrotmenge zuerst die entsprechenden Eigenschaften bei den zum Parameterwert gehörigen Julia-Mengen untersucht und dann auf die Mandelbrotmenge übertragen.

Die Frage, ob die Mandelbrot-Menge entscheidbar ist, ergibt zunächst keinen Sinn, da   überabzählbar ist. Einen Ansatz, den Begriff der Entscheidbarkeit auf überabzählbare Mengen zu verallgemeinern, stellt das Blum-Shub-Smale-Modell dar. Innerhalb dessen ist die Mandelbrot-Menge nicht entscheidbar.

Bildergalerie einer ZoomfahrtBearbeiten

Die folgende Bildersequenz zeigt beginnend vom Übersichtbild der Mandelbrotmenge (Startbild) jeweils einen Ausschnitt des vorangegangenen Bildes (Ausschnitt n). Dabei wird in 16 Schritten ein Ausschnitt des vorhergehenden Bildes jeweils um einen Faktor 4 bis 8 vergrößert. Die Vergrößerung des letzten Bildes relativ zum Startbild ist etwa 60 Milliarden-fach.

Die Sequenz gibt einen Eindruck vom geometrischen Formenreichtum und erläutert gewisse typische Strukturelemente.[Anm 1]

Bild Beschreibung
Startbild:
Die Mandelbrot-Menge mit stufenlos eingefärbtem Außenraum.
Ausschnitt 1:
Spalte zwischen „Kopf“ und „Körper“, „Tal der Seepferdchen“ genannt.
Ausschnitt 2:
Links Doppelspiralen, rechts „Seepferdchen“.
Ausschnitt 3:
„Seepferdchen“. Der „Körper“ wird von 25 „Speichen“ gebildet, von denen sich zwei Zwölfergruppen nach Art einer Metamorphose auf jeweils einen der beiden „Finger“ an der „oberen Hand“ der Mandelbrotmenge zurückführen lassen. Die Zahl der „Speichen“ nimmt daher von einem „Seepferdchen“ zum nächsten um zwei zu. Die „Nabe“ wird von einem Misiurewicz-Punkt gebildet (s. u.). Zwischen „Oberkörper“ und „Schwanz“ ist ein deformierter Satellit erkennbar.
Ausschnitt 4:
Der „Seepferdchenschwanz“ endet ebenfalls in einem Misiurewicz-Punkt.
Ausschnitt 5:
Teil des „Schwanzes“. Der einzige Pfad, der sich durch den gesamten „Schwanz“ windet, und damit gewährleistet, dass   einfach zusammenhängend ist, führt im Zickzack von einer „Schwanzseite“ zur anderen und passiert dabei die „Naben“ der großen 25-spiraligen Gebilde.
Ausschnitt 6:
Satellit. Die beiden „Seepferdchenschwänze“ bilden den Auftakt für eine Folge von konzentrischen Kränzen mit dem Satelliten im Zentrum.
Ausschnitt 7:
Jeder dieser Kränze besteht aus gleichartigen Strukturelementen, deren Anzahl pro Kranz mit Potenzen von 2 wächst, ein typisches Phänomen in der Umgebung von Satelliten. Der oben erwähnte Pfad durch den „Seepferdchenschwanz“ passiert den Satelliten über die Kerbe der Kardioide und die Spitze der „Antenne“ auf dem „Kopf“.
Ausschnitt 8:
„Antenne“ des Satelliten. Auf ihr sind mehrere Satelliten 2. Ordnung erkennbar.
Ausschnitt 9:
„Tal der Seepferdchen“ des Satelliten. Es zeigen sich die gleichen Strukturelemente wie in Ausschnitt 1.
Ausschnitt 10:
Doppelspiralen und „Seepferdchen“, die jedoch im Unterschied zu Ausschnitt 2 nach außen hin mit seepferdchenschwanzartigen Fortsätzen bestückt sind. Dieses Phänomen demonstriert die für Satelliten  -ter Ordnung typischen Verkettungen von   Strukturelementen für den Fall  .
Ausschnitt 11:
Doppelspiralen mit Satelliten 2. Ordnung. Sie lassen sich als Metamorphose der „Antenne“ interpretieren.
Ausschnitt 12:
Im Bereich der äußeren Fortsätze sind stets inselartige Strukturen eingestreut, die Julia-Mengen Jc ähneln. Die im Bild größte ist im Zentrum des „Doppelhakens“ rechts gerade eben erkennbar.
Ausschnitt 13:
Teil des „Doppelhakens“.
Ausschnitt 14:
Diese Inseln scheinen auf den ersten Blick nach Art von Cantor-Mengen wiederum aus unendlich vielen unzusammenhängenden Teilstücken zu bestehen, wie es für die zugehörigen Jc tatsächlich der Fall ist, sie sind jedoch hier über filigrane Strukturen miteinander verbunden. Diese Strukturen gehen von einem Satelliten im Zentrum aus, der bei dieser Vergrößerung noch nicht sichtbar ist, und zwar derart, dass das Ganze ein einfach zusammenhängendes Gebilde ergibt. Der zum entsprechenden Jc gehörige  -Wert ist nicht der des Bildzentrums, sondern hat relativ zur Hauptkardioide die gleiche Position wie das Bildzentrum zum Satelliten, der in Ausschnitt 7 dargestellt ist.
Ausschnitt 15:
Details einer Insel.
Ausschnitt 16:
Details einer Spirale.

Verhalten der ZahlenfolgeBearbeiten

Die verschiedenen Strukturelemente von   stehen in engem Zusammenhang mit bestimmten Verhaltensweisen der Zahlenfolge, die   zugrunde liegt. Je nach Wert von   ergibt sich eine der folgenden vier Möglichkeiten:

  • _    Sie konvergiert gegen einen Fixpunkt.
  • ____ Sie konvergiert gegen einen periodischen Grenzzyklus, der aus zwei oder mehr Werten besteht. Dazu zählen auch die Fälle, in denen sich die Folge von Anfang periodisch verhält.
  • _    Sie wiederholt sich nie, bleibt aber beschränkt. Manche Werte zeigen chaotisches Verhalten mit Wechsel zwischen fast periodischen Grenzyklen und scheinbar zufälligem Verhalten.
  • _    Sie divergiert gegen Unendlich (bestimmte Divergenz).

Alle  -Werte, die nicht bestimmt divergieren, gehören zu  .

Die folgende Tabelle zeigt Beispiele für diese vier Grenzverhalten der Iteration   für  :

Parameter   und Glied   Folgeglieder   Grenzverhalten
auf der reellen Achse …
    bestimmte Divergenz gegen  
    bestimmte Divergenz gegen  
    sofortige Konvergenz gegen Fixpunkt  
    Konvergenz gegen 12er-Grenzzyklus
    sofortige Konvergenz gegen Dreier-Grenzzyklus
    Konvergenz gegen Dreier-Grenzzyklus  
    chaotisches Verhalten
    Konvergenz gegen 32er-Grenzzyklus
    Konvergenz gegen alternierenden Grenzzyklus  
    sofortige Konvergenz gegen alternierenden Grenzzyklus  
    sehr langsame Konvergenz gegen Fixpunkt  
    Konvergenz gegen Fixpunkt  
    Konvergenz gegen Fixpunkt  
    sofortige Konvergenz gegen Fixpunkt  
    Konvergenz gegen Fixpunkt  
    bestimmte Divergenz gegen  
    bestimmte Divergenz gegen  
in der komplexen Zahlenebene …
    sofortige Konvergenz gegen alternierenden Grenzzyklus  
   
 
Konvergenz gegen Dreier-Grenzzyklus
 
 
 
 
 
 
 
sofortige Konvergenz gegen Dreier-Grenzzyklus

Geometrische ZuordnungBearbeiten

Konvergenz liegt genau für die Werte von   vor, die das Innere der Kardioide bilden, den „Körper“ von  , sowie für abzählbar viele ihrer Randpunkte. Periodische Grenzzyklen finden sich in den (angenähert) kreisförmigen „Knospen“ wie im „Kopf“, in den Kardioiden der Satelliten sowie ebenfalls auf abzählbar vielen Randpunkten dieser Komponenten. Eine fundamentale Vermutung besagt, dass es für alle inneren Punkte der Mandelbrot-Menge einen Grenzzyklus gibt. Die Folge ist echt vorperiodisch für abzählbar viele Parameter, die oft Misiurewicz-Thurston-Punkte genannt werden (nach Michał Misiurewicz und William Thurston). Dazu gehören die „Antennenspitzen“ wie der Punkt   ganz links und Verzweigungspunkte der Mandelbrot-Menge.

In den überabzählbar vielen übrigen Punkten der Mandelbrot-Menge kann sich die Folge auf viele verschiedene Weisen verhalten, die jeweils sehr unterschiedliche dynamische Systeme erzeugen und die teilweise Gegenstand intensiver Forschung sind. Je nach Definition des Wortes lässt sich „chaotisches“ Verhalten finden.

Periodisches VerhaltenBearbeiten

 
Mandelbrot-Menge mit farbkodierter Periodenlänge der Grenzzyklen

Die kreisförmigen StrukturenBearbeiten

Jede kreisförmige „Knospe“ und jede Satelliten-Kardioide zeichnet sich durch eine bestimmte Periodizität des Grenzzyklus aus, gegen den die Folge für die zugehörigen  -Werte strebt. Die Anordnung der „Knospen“ an der zugehörigen Kardioide folgt dabei den folgenden Regeln, aus denen sich unmittelbar die Periodizitäten ablesen lassen. Jede „Knospe“ berührt genau einen Basiskörper, nämlich eine größere „Knospe“ oder eine Kardioide.

Die Periodizität einer „Knospe“ ist die Summe der Periodizitäten der beiden nächsten größeren „Nachbarknospen“ in beide Richtungen am selben Basiskörper, sofern es solche gibt. Gibt es am Rand des Basiskörpers bis zur Kontaktstelle mit dessen Basiskörper oder bis zur Kerbe der Kardioide nur kleinere „Knospen“, so trägt anstelle der Periodizität einer „Nachbarknospe“ die des Basiskörpers selbst zur Summe bei. Daraus leiten sich unmittelbar die folgenden Eigenschaften ab:

  • Tendenziell sind die „Knospen“ oder Kardioiden umso kleiner, je größer ihre Periodizität ist.
  • Die Periodizität der größten „Knospe“ an einem Basiskörper beträgt stets das Doppelte, wie der „Dutt“ mit der Periode   am „Kopf“.
  • Die Periodizität einer „Knospe“ eines Satelliten ist das Produkt der Periodizität der Satelliten-Kardioide und der der korrespondierenden „Knospe“ der Hauptkardioide.

Ferner erklärt diese Regel das Auftreten bestimmter Folgen von „Knospen“ wie vom „Kopf“ zur Kardioidkerbe hin mit einer Periodizitätszunahme zur nächsten „Knospe“ hin um den Wert   oder vom „Arm“ zum „Kopf“ hin um den Wert  .

Ermittlung der KnospenwerteBearbeiten

 
Mandelbrot-Menge mit farbkodierter Periodizität aller Bildpunkte, gezoomt bei Periode 11
 
Mandelbrot-Menge mit farbkodierter Periodizität aller Bildpunkte

Es gibt eine Eigenschaft im Iterationsverlauf, der den Wert der Periodizität am jeweiligen Punkt   anzeigt. Dazu muss man im Iterationsverlauf eines Punktes das Iterationsergebnis suchen, das den kleinsten Betrag von Z hat. Im Randbereich kann die Suche auch über 100000 Iterationen liegen. Wie zu sehen ist, korreliert die Min-Count-Nr. mit der Periodizität der angrenzenden Knospen. Aus zwei benachbarten Bereichen entspringt eine dritte, deren Wert die Summe der beiden Vorherigen ist. Dadurch entsteht eine Fibonacci-Folge. Bei Bereichen die auf einer Linie stehen, verdoppelt sich dieser Wert. Dieses Prinzip gilt auch noch für den kleinsten Satelliten. Auch die Speichenanzahl hängt von dieser Zählweise ab.

Im folgenden Programmcode für einen Bildpunkt wird der Iterationsverlauf durchsucht und die Zählweise demonstriert.

Zugehöriger Programmcode (zum Ausklappen)

Programmbeispiel für einen Bildpunkt.

Funktion SeekMinZ( complex C, int MaxIter ) {

complex	    Z;
double		BetragMinZ, bz;
int		    IterCount, MinCount;

Z = (0.0, 0.0);
MinCountNr = IterCount = 1;
BetragMinZ = 999.00;              // Anfangsbedingung ist eine sehr große Zahl
                                  // aber 2 würde auch genügen. Zu suchen ist etwas < 0.01
do {
	Z = (Z * Z) + C;	
	bz = betrag( Z );

	if ( bz < BetragMinZ ) {
		BetragMinZ = bz;
		MinCountNr = IterCount;
		}
	IterCount += 1;
	} while ( IterCount < MaxIter and bz < 2.0 );
return( MinCountNr );
}

Attraktive ZyklenBearbeiten

Gibt es für ein   ein Folgenglied mit der Eigenschaft  , so wiederholt sich die Folge von Anfang an streng periodisch und zwar mit der Periode  . Da sich   durch  -malige Anwendung der Iterationsvorschrift ergibt, wobei bei jedem Schritt quadriert wird, lässt es sich als Polynom von   vom Grad   formulieren. Die  -Werte für periodische Folgen der Periode   werden daher über die   Nullstellen dieses Polynoms erhalten. Es zeigt sich, dass jede Zahlenfolge gegen diesen Zahlenzyklus konvergiert, sofern eins ihrer Folgenglieder hinreichend nahe an diesen Zyklus gerät, die werden Attraktoren genannt. Das führt dazu, dass alle Zahlenfolgen zu einer gewissen Umgebung des  -Wertes, der den Attraktor repräsentiert, gegen einen stabilen Zyklus der Periode   konvergieren. Jede kreisförmige „Knospe“ und jede Kardioide eines Satelliten repräsentiert genau eine solche Umgebung. Exemplarisch seien die Gebiete mit den Perioden   bis   aufgeführt:

  • Periode 1: Die Kardioide des Hauptapfelmännchens. Der Rand dieser Kardioide ist gegeben durch Punkte der Form   mit  .
  • Periode 2: Der „Kopf“. Die 2. Nullstelle   entspricht der Hauptkardioide, die wegen der Periode   natürlich bei der Ermittlung aller höherer Perioden als Nullstelle auftritt. Diese Überlegung zeigt, dass die Zahl der Attraktoren mit der Periode   maximal   betragen kann, und das nur dann, wenn   eine Primzahl ist. Der Kopf selbst ist eine Kreisscheibe mit Mittelpunkt   und Radius  , d. h., der Rand dieser Kreisscheibe ist gegeben durch Punkte der Form   mit  .
  • Periode 3: Die „Knospen“, die den „Armen“ entsprechen und die Kardioide des größten Satelliten auf der „Kopfantenne“. Die vierte Nullstelle   entfällt wieder.

Die Anzahl der anziehenden Zyklen mit der genauen Periode  , d. h.   und   ist minimal mit dieser Eigenschaft, ist die Folge A000740 in OEIS.

Galerie der IterationBearbeiten

Die folgende Galerie gibt einen Überblick über die Werte von   für einige Werte von  . Dabei hängt   vom Parameter   ab, dessen Realteil sich in den Bildern von links nach rechts von −2,2 bis +1 erstreckt, und dessen Imaginärteil von −1,4 bis +1,4 reicht.

  Die Iteration z → z² + c nach n Schritten  
Iterationen Beschreibung Iterationen Beschreibung
n = 1  (1 reelle Nullstelle)
Nach dem ersten Schritt gilt  . Das Bild ist also eine farbige Darstellung der komplexen Zahlen  , die sich in dem gezeigten Gebiet befinden. Die Null wird dabei in Weiß dargestellt und Unendlich in Schwarz. Daher erscheint ein Punkt umso dunkler, je weiter er vom Ursprung entfernt ist. Die Farbe eines Punktes gibt Auskunft über sein Argument, also über den Winkel, den er mit der positiv-reellen Achse (rot) hat. Die negativ-reelle Achse ist türkis gefärbt.
n = 9  (30 reelle und 226 konj.-kompl. Nullstellen)
Inzwischen gibt es bereits   Nullstellen, die auch innerhalb der Mandelbrotmenge verteilt sind. Da   ein Teiler von   ist, sind die Armknospen und der kleine Antennensatellit wieder mit einer Nullstelle an der Reihe, und leuchten daher hell auf.
n = 2  (2 reelle Nullstellen)
Nach zwei Schritten gilt
 

Dieser Ausdruck wird für   sowie für   Null. Die neu hinzugekommene linke Nullstelle liegt im Zen­trum des Kopfes der Mandelbrotmenge, während die alte auf der rechten Seite das Herz der Leib-Zykloiden ist.

n = 10  (56 reelle und 456 konj.-kompl. Nullstellen)
n = 3 (2 reelle und 2 konjugiert-komplexe Nullstellen)
Die Anzahl der Nullstellen hat sich auf 4 verdoppelt – wie nach jedem Iterationsschritt. Die reelle Nullstelle links liegt im Herz des kleinen Antennen-Satelliten. Es treten die ersten komplexwertigen Nullstellen ober- und unterhalb der reellen Achse auf. Diese Nullstellen liegen im Zentrum des jeweiligen Ärmchens.
n = 11  (94 reelle und 930 konj.-kompl. Nullstellen)
Eine Primzahl, daher leuchten keine alten Strukturen hell auf, sondern nur neu entstandene zwischen diesen.
n = 4  (4 reelle und 4 konjugiert-komplexe Nullstellen)
Der Dutt ist entstanden: er gehört zur Nullstelle links neben der Kopf-Nullstelle bei −1. Die dargestellte Funktion
 

wird immer unübersichtlicher. Es lässt sich jedoch einfach nachrechnen, dass wenn   eine Nullstelle von   ist,   eine Nullstelle von   ist. Daher „erbt“   die Nullstellen von  . Dieser Zusammenhang ist Ursache für das unten erläuterte periodische Verhalten der Knospen.

n = 12  (180 reelle und 1868 konj.-kompl. Nullstellen)
n = 5  (4 reelle und 12 konjugiert-komplexe Nullstellen)
Da   eine Primzahl ist, gibt es keine altbekannten Nullstellen — außer der Null, die von   her bekannt ist. Da der Grad des Polynoms   gleich   ist, wächst   mit wachsendem   immer schneller gegen Unendlich. Dadurch bildet sich der Rand zwischen der Mandelbrot-Menge und ihrem Äußeren immer klarer heraus.
n = 13  (316 reelle und 3780 konj.-kompl. Nullstellen)
Eine Primzahl, daher leuchten keine alten Strukturen hell auf, sondern nur neu entstandene zwischen diesen.
n = 6  (8 reelle und 24 konjugiert-komplexe Nullstellen) n = 14  (596 reelle und 7596 konj.-kompl. Nullstellen)


Ohne Bild:
n = 15  (1096 reelle und 15288 konj.-kompl. Nullstellen)
n = 16  (2068 reelle und 30700 konj.-kompl. Nullstellen)
n = 7  (10 reelle und 54 konjugiert-komplexe Nullstellen)
Eine Primzahl, daher leuchten keine alten Strukturen hell auf, sondern nur neu entstandene zwischen diesen.
n = 17  (3856 reelle und 61680 konj.-kompl. Nullstellen)
Eine Primzahl, daher leuchten keine alten Strukturen hell auf, sondern nur neu entstandene zwischen diesen. Wer sich über die vergleichsweise große Anzahl reellwertigen Nullstellen wundert, diese befinden sich fast alle auf der Antenne mit  .
n = 8  (20 reelle und 108 konjugiert-komplexe Nullstellen) n = 18  (7316 reelle und 123756 konj.-kompl. Nullstellen)
Mit   und   Nullstellen endet diese Bilderserie. Für größere   steigt die Anzahl der Null­stellen/Knospen exponential weiter an, so für   auf  , für   auf   und für   auf  .

Repulsive ZyklenBearbeiten

Neben attraktiven Zyklen gibt es repulsive, die sich dadurch auszeichnen, dass Zahlenfolgen in ihrer Umgebung sich zunehmend von ihnen entfernen. Sie lassen sich jedoch erreichen, da jedes   abgesehen von der Situation   wegen des Quadrats in der Iterationsvorschrift zwei potenzielle Vorgänger in der Folge hat, die sich nur durch ihr Vorzeichen unterscheiden.  -Werte, für die die zugehörige Folge irgendwann über einen solchen zweiten Vorläufer eines Periodenmitgliedes in einen derartigen instabilen Zyklus mündet, sind beispielsweise die „Naben“ der rad- oder spiralförmigen Strukturen sowie die Endpunkte der weitverbreiteten antennenartigen Strukturen, die sich formal als „Naben“ von „Rädern“ oder Spiralen mit einer einzigen Speiche interpretieren lassen. Derartige  -Werte werden als Misiurewicz-Punkte bezeichnet.

Ein Misiurewicz-Punkt   hat ferner die Eigenschaft, dass   in seiner näheren Umgebung nahezu deckungsgleich mit demselben Ausschnitt der zugehörige Julia-Menge   ist. Je weiter sich dem Misiurewicz-Punkt genähert wird, umso besser wird die Übereinstimmung. Da Julia-Mengen für  -Werte innerhalb von   zusammenhängend sind und außerhalb von   Cantor-Mengen aus unendlich vielen Inseln mit der Gesamtfläche null, sind sie in der Übergangszone am Rand von   besonders filigran. Jeder Misiurewicz-Punkt ist aber gerade ein Randpunkt von  , und jeder Ausschnitt der Randzone von  , der sowohl Punkte in   als auch außerhalb davon enthält, enthält unendlich viele davon. Damit ist der gesamte Formenreichtum sämtlicher Julia-Mengen dieses filigranen Typs in der Umgebung der Misiurewicz-Punkte in   repräsentiert.

SatellitenBearbeiten

 
Analyse des Verhaltens des Newton-Verfahrens zu einer Familie kubischer Polynome.

Ein weiteres Strukturelement, das den Formenreichtum der Mandelbrot-Menge begründet, sind die verkleinerten Kopien ihrer selbst, die sich in den filigranen Strukturen ihres Randes befinden. Dabei korrespondiert das Verhalten der Zahlenfolgen innerhalb eines Satelliten in folgender Weise mit dem der Folgen im Hauptkörper. Innerhalb eines Satelliten konvergieren alle Zahlenfolgen gegen Grenzzyklen, deren Perioden sich von denen an den entsprechenden Stellen im Hauptkörper von   um einen Faktor   unterscheiden. Wird für einen bestimmten  -Wert aus dem Satelliten nur jedes  -te Folgenglied betrachtet, so ergibt sich eine Folge, die bis auf einen räumlichen Maßstabsfaktor nahezu identisch ist mit derjenigen, die sich für den entsprechenden  -Wert im Hauptkörper von   ergibt. Die mathematische Begründung hierfür ist tiefliegend; sie entstammt den Arbeiten von Douady und Hubbard über „polynomartige Abbildungen“.

Die zusätzlichen Strukturelemente in der unmittelbaren Umgebung eines Satelliten sind eine Folge davon, dass zwischen zwei der betrachteten Folgenglieder mit dem Indexabstand   sich eins mit dem Wert   befinden kann, das damit einen periodischen Verlauf mit der Periode   begründet. Die entsprechende Folge außerhalb des Hauptkörpers divergiert jedoch, da sie keine solchen Zwischenglieder besitzt.

Es handelt sich bei der Mandelbrot-Menge selbst um eine universelle Struktur, die bei völlig anderen nichtlinearen Systemen und Klassifizierungsregeln in Erscheinung treten kann. Grundvoraussetzung ist jedoch, dass die beteiligten Funktionen winkeltreu sind. Werden solche Systeme betrachtet, die von einem komplexen Parameter   abhängen und klassifiziert ihr Verhalten bezüglich einer bestimmten Eigenschaft der Dynamik in Abhängigkeit von  , dann werden unter bestimmten Umständen in der Parameter-Ebene kleine Kopien der Mandelbrot-Menge gefunden. Ein Beispiel ist die Frage, für welche Polynome dritten Grades das iterative Newton-Verfahren zur Bestimmung von Nullstellen mit einem bestimmten Startwert versagt und für welche nicht.

Wie im nebenstehenden Bild kann die Mandelbrot-Menge dabei verzerrt auftreten, zum Beispiel sitzen dort die Armknospen an etwas anderer Stelle. Ansonsten ist die Mandelbrot-Menge jedoch vollkommen intakt, inklusive aller Knospen, Satelliten, Filamente und Antennen. Der Grund für das Auftauchen der Mandelbrot-Menge ist, dass die betrachtete Funktionenfamilien in bestimmten Gebieten – abgesehen von Drehungen und Verschiebungen – recht gut mit der Funktionenfamilie

 ,

welche die Mandelbrot-Menge definiert, übereinstimmen. Dabei sind in einem gewissen Rahmen Abweichungen zulässig, und trotzdem kristallisiert sich die Mandelbrot-Menge heraus. Dieses Phänomen wird als strukturelle Stabilität bezeichnet und ist im Endeffekt verantwortlich für das Auftreten der Satelliten in der Umgebung von  , weil Teilfolgen der iterierten Funktionen lokal das gleiche Verhalten zeigen wie die Gesamtfamilie.

Intermediär wechselhaftes VerhaltenBearbeiten

 
Darstellung des Betrages der Folgenglieder als Funktion des Iterationsschrittes   für einen  -Wert mit besonders abwechslungsreichem Verhalten der Folge. Die auffälligen Brüche im Verhalten ergeben sich durch Beinahe-Einfänge in repulsive Zyklen, was temporär zu quasiperiodischem Verhalten führt.
 
Darstellung der Folgenglieder zum  -Wert des vorherigen Diagramms als Punkte in der komplexen Ebene mit hinterlegter Mandelbrot-Menge zur Orientierung. Die Helligkeit eines Pixels ist ein Maß dafür, von wie vielen Punkten der Folge es getroffen wurde.

Durch die Möglichkeit der Zahlenfolge, wiederholt in die unmittelbare Umgebung eines repulsiven Zyklus zu geraten, und bei dem anschließend tendenziell divergenten oder chaotischen Verhalten wiederum beinahe in einen anderen Zyklus zu geraten, können sich intermediär sehr komplizierte Verhaltensweisen der Folge ausbilden, bis sich der endgültige Charakter der Folge zeigt, wie die beiden Abbildungen demonstrieren. Die Umgebung der zugehörigen  -Werte in   ist entsprechend strukturreich.

Die Darstellung der Folgepunkte selbst in der komplexen Ebene zeigt in diesen Fällen eine größere Komplexität. Das quasiperiodische Verhalten in der Nachbarschaft eines repulsiven Zyklus führt in diesen Fällen oft zu spiralförmigen Strukturen mit mehreren Armen, wobei die Folgepunkte das Zentrum umkreisen, während der Abstand zu ihm zunimmt. Die Anzahl der Arme entspricht daher der Periode. Die Punktanhäufungen an den Enden der Spiralarme in der obigen Abbildung sind die Folge der beiden zugehörigen Beinahe-Einfänge durch repulsive (instabile) Zyklen.

Dichteverteilung der FolgengliederBearbeiten

Akkumulierte Dichteverteilung der Folgenglieder für alle  -Werte in einer farbkodierten Darstellung

Das nebenstehende Bild zeigt wie oft ein Bildpunkt von einem Zwischenergebnis aller Iterationen getroffen wird. Im Bereich von | | < 2 wird jedes Pixel mindestens einmal getroffen und aufsummiert. Innerhalb der   können bei diesem Bild Werte bis zu 30000 auftreten. Bei einem Kontrast von 1:30000 kann man jedoch Feinheiten im  -Rand nicht mehr leicht erkennen. Bei Blende bis 1000 sind Strukturen zu erkennen, die am äußersten Rand der   liegen. Diese sind erzeugt durch die Zwischenergebnisse der periodischen Iterationen von Satelliten-Mengen. Diese Orte werden im Film mit einem grünen Pfeil gezeigt. Einer dieser Orte soll im nächsten Orbit-Bild näher dokumentiert werden.

Im Orbit-Bild wurden alle Iterationsergebnisse herausgefiltert die nicht im Auswahlbereich bei Punkt 1 enthalten sind. So ist erkennbar, dass diese Orbits von einem Satelliten der Periode 3 ausgehen (Punkt S). In den nächsten Bildern sind diese 4 Orbit-Aufsummierungen gezoomt gezeigt. Dieses Beispiel gilt für alle Satelliten. Für die meisten Satelliten ist jedoch ein viel höheres Iterationslimit nötig (hier nur 100). Dadurch steigt der erzeugte Kontrast erheblich, womit solche Feinheiten immer schlechter zu zeigen sind.

 
Orbit-Bild
 
Orbit-Ursprung im Satelliten (S)
 
Abbild 1 des Orbits
 
Abbild 2 des Orbits
 
Abbild 3 des Orbits

Grafische DarstellungBearbeiten

Die grafische Darstellung der Mandelbrot-Menge und ihrer Strukturen im Randbereich ist nur mittels Computer durch sogenannte Fraktalgeneratoren möglich. Dabei entspricht jedem Bildpunkt ein Wert   der komplexen Ebene. Der Computer ermittelt für jeden Bildpunkt, ob die zugehörige Folge divergiert oder nicht. Sobald der Betrag   eines Folgengliedes den Wert   überschreitet, ist klar, dass die Folge divergiert. Die Zahl   der Iterationsschritte bis dahin kann als Maß für den Divergenzgrad dienen. Der Bildpunkt wird gemäß einer zuvor festgelegten Farbtabelle gefärbt, die jedem Wert   eine Farbe zuordnet.

Um in ästhetischer Hinsicht harmonische Grenzen zwischen aufeinanderfolgenden Farben zu erreichen, wird in der Praxis für die Grenze   nicht der kleinste mögliche Wert   gewählt, sondern ein Wert deutlich größer als  , da andernfalls die Farbstreifenbreite oszilliert. Je größer dieser Wert gewählt wird, desto besser entsprechen die Farbgrenzen Äquipotentiallinien, die sich ergeben, wenn die Mandelbrot-Menge als elektrisch geladener Leiter interpretiert wird. Für kontinuierliche Farbverläufe, wie in der obigen Zoom-Bilderserie, ist eine Auswertung des Faktors erforderlich, um den   bei der ersten Überschreitung übertroffen wurde.

Da die Zahl der Iterationsschritte  , nach denen erstmals die Grenze   überschritten wird, beliebig groß sein kann, muss ein Abbruchkriterium in Form einer maximalen Zahl von Iterationsschritten festgelegt werden. Werte von  , deren Folgen danach die Grenze   noch nicht überschritten haben, werden zu   gerechnet. Je geringer der Abstand von   zu   ist, desto größer ist in der Regel die Zahl  , nach der   überschritten wird. Je stärker die Vergrößerung ist, mit der der Rand von   dargestellt wird, desto größer muss die maximale Zahl von Iterationsschritten gewählt werden, und umso mehr Rechenzeit ist nötig. Kann man erkennen, dass die Folge für einen Startwert   konvergiert, so kann die Berechnung der Folge schon früher abgebrochen werden.

Grafisch besonders reizvoll ist die Darstellung des Randes von   mit seinem Formenreichtum. Je stärker die gewählte Vergrößerung ist, umso komplexere Strukturen lassen sich dort finden. Mit entsprechenden Computerprogrammen lässt sich dieser Rand wie mit einem Mikroskop mit beliebiger Vergrößerung darstellen. Die beiden einzigen künstlerischen Freiheiten, die dabei bestehen, sind die Wahl des Bildausschnittes sowie die Zuordnung von Farben zum Divergenzgrad.

Zur Untersuchung interessanter Strukturen sind häufig Vergrößerungen erforderlich, die mit hardwareunterstützten Datentypen aufgrund deren limitierter Genauigkeit nicht berechnet werden können. Manche Programme enthalten daher Langzahl-Arithmetik-Datentypen mit beliebig wählbarer Genauigkeit. Damit sind (fast) beliebige Vergrößerungsfaktoren möglich.

Praktische BerechnungBearbeiten

Iteration über alle BildpunkteBearbeiten

Das folgende Programmbeispiel geht davon aus, dass die Pixel des Ausgabegerätes durch Koordinaten x und y mit einem Wertebereich von 0 bis jeweils xpixels-1 und ypixels-1 adressierbar sind. Die Berechnung des dem Pixel zugeordneten komplexen Zahlenwerts c mit dem Realteil cre und dem Imaginärteil cim erfolgt durch lineare Interpolation zwischen (re_min, im_min) und (re_max, im_max).

Die maximale Anzahl von Iterationsschritten ist max_iter. Wird dieser Wert überschritten, so wird das entsprechende Pixel der Menge   zugeordnet. Der Wert von max_iter sollte mindestens 100 betragen. Bei stärkerer Vergrößerung sind zur korrekten Darstellung der Strukturen teilweise erheblich größere Werte erforderlich und damit deutlich längere Rechenzeiten.

PROCEDURE Apfel (re_min, im_min, re_max, im_max, max_betrag_2: double,
                 xpixels, ypixels, max_iter:                   integer)
  FOR y = 0 TO ypixels-1
    c_im = im_min + (im_max-im_min)*y/ypixels

    FOR x = 0 TO xpixels-1
      c_re = re_min + (re_max-re_min)*x/xpixels

      iterationen = Julia (c_re, c_im, c_re, c_im, max_betrag_2, max_iter)
      farb_wert   = waehle_farbe (iterationen, max_iter)
      plot (x, y, farb_wert)
    NEXT

  NEXT
END PROCEDURE

Iteration eines BildpunktesBearbeiten

Die Iteration von   nach   für einen Punkt   der komplexen Zahlenebene erfolgt durch die Iteration

 ,

die sich mittels der Zerlegung der komplexen Zahl   in ihren Realteil   und Imaginärteil   in zwei reelle Berechnungen

 

und

 

zerlegen lässt. Hier haben wir die folgende Identität benutzt:

 .

Falls das Quadrat des Betrags der  -ten Zahl, gegeben durch

 

den Wert max_betrag_2 (mindestens 2 · 2 = 4) überschreitet, wird die Iteration abgebrochen, und die Anzahl der bislang erfolgten Iterationsschritte für die Zuordnung eines Farbwertes verwendet. Falls das Quadrat des Betrags nach einer gegebenen maximalen Anzahl von Iterationsschritten den max_betrag_2 nicht überschritten hat, wird angenommen, dass die Iteration beschränkt bleibt, und die Iterationsschleife abgebrochen.

Die folgende Funktion führt die beschriebene Iteration durch. x und y sind die iterativ benutzten Variablen für die Iterationswerte; xx, yy, xy und remain_iter sind Hilfsvariablen.

 FUNCTION Julia (x, y, xadd, yadd, max_betrag_2: double, max_iter: integer): integer
   remain_iter = max_iter
   xx = x*x
   yy = y*y
   xy = x*y
   betrag_2 = xx + yy

   WHILE (betrag_2 <= max_betrag_2) AND (remain_iter > 0)
     remain_iter = remain_iter - 1
     x  = xx - yy + xadd
     y  = xy + xy + yadd
     xx = x*x
     yy = y*y
     xy = x*y
     betrag_2 = xx + yy
   END

   Julia = max_iter - remain_iter
 END FUNCTION

Wird ein kontinuierlicherer Farbverlauf gewünscht, so bietet sich alternativ die Formel

    Julia = max_iter - remain_iter - log(log(betrag_2) / log(4)) / log(2)

an, die keine ganzen, sondern reelle Werte liefert. Für die Folge mit c = 0 und dem Startwert z0 = 2 liefert diese Formel den Wert null. Es ergibt sich ferner eine von max_betrag_2 unabhängige Farbgebung, sofern dieser Wert groß gegen 1 ist.

Ein erheblicher Teil der Rechenzeit wird dort benötigt, wo die Zahlenfolge nicht divergiert. Moderne Programme bemühen sich, mit verschiedenen Verfahren die Rechenzeit für diese Stellen zu reduzieren. Eine Möglichkeit besteht darin, die Rechnung bereits abzubrechen, wenn die Zahlenfolge konvergiert ist oder sich in einem periodischen Zyklus gefangen hat. Andere Programme nutzen aus, dass jeder Punkt im Inneren einer geschlossenen Kurve, die nur Punkte aus   enthält, ebenfalls dazugehört.

Berechnung mit Hilfe komplexer MatrizenBearbeiten

Das Ändern der Datenstruktur kann den Algorithmus vereinfachen und die Rechenzeit verkürzen. So können Berechnungen mit Vektoren und Matrizen automatisch parallelisiert werden, so dass die Rechenzeit umgekehrt proportional zur Anzahl der Recheneinheiten reduziert wird. Im folgenden Programmbeispiel werden mit der NumPy-Programmbibliothek Berechnungen mit komplexen Matrizen durchgeführt, wodurch eine explizite Iteration über alle Bildpunkte entfällt.

import numpy as np
import matplotlib.pyplot as plt

d, h = 800, 600  # Pixeldichte (= Bildbreite) und Bildhöhe
n, r = 100, 2.5  # Anzahl der Iterationen und Fluchtradius (r > 2)

x = np.linspace(0, 2, num=d+1)
y = np.linspace(0, 2 * h / d, num=h+1)

A, B = np.meshgrid(x - 1, y - h / d)
C = 2.0 * (A + B * 1j) - 0.5

Z = np.zeros_like(C)
T = np.zeros(C.shape)

for k in range(n):
    M = abs(Z) < r
    T[M] = T[M] + 1
    Z[M] = Z[M] ** 2 + C[M]

plt.imshow(T ** 0.5, cmap=plt.cm.twilight_shifted)
plt.savefig("Mandelbrot_set.png", dpi=250)
Ergänzungen (zum Ausklappen): Drehstreckungen, kontinuierliche Farbverläufe und logarithmische Projektion

Im nächsten Programmbeispiel wird die Mandelbrotmenge gedreht und durch kontinuierliche Farbverläufe dargestellt. Für eine Drehstreckung muss lediglich die Matrix C durch Multiplikation mit einer komplexen Zahl rotiert werden. Die Einfärbung des Innen- und Außenbereichs erfolgt durch das von Barrallo und Jones beschriebene  -Smoothing. Für die weiteren Färbungen des Außenbereichs werden normalisierte Iterationszahlen und Distanzschätzungen verwendet.[10][11]

import numpy as np
import matplotlib.pyplot as plt

d, h = 800, 600  # Pixeldichte (= Bildbreite) und Bildhöhe
n, r = 100, 500  # Anzahl der Iterationen und Fluchtradius (r > 2)

x = np.linspace(0, 2, num=d+1)
y = np.linspace(0, 2 * h / d, num=h+1)

A, B = np.meshgrid(x - 1, y - h / d)
C = (2.0 - 1.0j) * (A + B * 1j) - 0.5

Z, dZ = np.zeros_like(C), np.zeros_like(C)
S, T, D = np.zeros(C.shape), np.zeros(C.shape), np.zeros(C.shape)

for k in range(n):
    M = abs(Z) < r
    S[M], T[M] = S[M] + np.exp(-abs(Z[M])), T[M] + 1
    Z[M], dZ[M] = Z[M] ** 2 + C[M], 2 * Z[M] * dZ[M] + 1

plt.imshow(S ** 0.1, cmap=plt.cm.twilight_shifted)
plt.savefig("Mandelbrot_set_1.png", dpi=250)

N = abs(Z) > r  # Normalisierung der Iterationszahlen
T[N] = T[N] - np.log2(np.log(abs(Z[N])) / np.log(r))

plt.imshow(T ** 0.1, cmap=plt.cm.twilight_shifted)
plt.savefig("Mandelbrot_set_2.png", dpi=250)

N = abs(Z) > 2  # Distanzschätzung des Außenbereichs
D[N] = 0.5 * np.log(abs(Z[N])) * abs(Z[N]) / abs(dZ[N])

plt.imshow(D ** 0.1, cmap=plt.cm.twilight_shifted)
plt.savefig("Mandelbrot_set_3.png", dpi=250)
Ergänzung (zum Ausklappen): logarithmische Projektion und Zooms der Mandelbrotmenge

Im letzten Programmbeispiel wird durch den komplexen Logarithmus eine Art Mercator-Projektion der Mandelbrotmenge berechnet. Die Rücktransformation in die komplexe Ebene geschieht dabei durch die komplexe Exponentialfunktion. Diese Technik wird häufig verwendet, um Zoom-Animationen der Mandelbrotmenge zu erstellen.[12][13]

import numpy as np
import matplotlib.pyplot as plt

d, h = 400, 2200  # Pixeldichte (= Bildbreite) und Bildhöhe
n, r = 800, 1000  # Anzahl der Iterationen und Fluchtradius (r > 2)

x = np.linspace(0, 2, num=d+1)
y = np.linspace(0, 2 * h / d, num=h+1)

A, B = np.meshgrid(x * np.pi, y * np.pi)
C = 1.5 * np.exp((A + B * 1j) * 1j) - 0.74366367740001 + 0.131863214401 * 1j

Z, dZ = np.zeros_like(C), np.zeros_like(C)
D = np.zeros(C.shape)

for k in range(n):
    M = abs(Z) < r
    Z[M], dZ[M] = Z[M] ** 2 + C[M], 2 * Z[M] * dZ[M] + 1

N = abs(Z) > 2  # Distanzschätzung des Außenbereichs
D[N] = 0.5 * np.log(abs(Z[N])) * abs(Z[N]) / abs(dZ[N])

plt.imshow(D.T ** 0.1, cmap=plt.cm.nipy_spectral)
plt.savefig("Mercator_map.png", dpi=250)

X, Y = C.real, C.imag
R = 150 * 2 / d * np.pi * np.exp(-B)  # Faktor hängt von 'figsize' ab

fig, ax = plt.subplots(2, 2, figsize=(16, 16))
ax[0, 0].scatter(X[0:400], Y[0:400], s=R[0:400]**2, c=D[0:400]**0.5, cmap=plt.cm.nipy_spectral)
ax[0, 1].scatter(X[100:500], Y[100:500], s=R[0:400]**2, c=D[100:500]**0.4, cmap=plt.cm.nipy_spectral)
ax[1, 0].scatter(X[200:600], Y[200:600], s=R[0:400]**2, c=D[200:600]**0.3, cmap=plt.cm.nipy_spectral)
ax[1, 1].scatter(X[300:700], Y[300:700], s=R[0:400]**2, c=D[300:700]**0.2, cmap=plt.cm.nipy_spectral)
plt.savefig("Mandelbrot_zoom.png", dpi=250)

Iterationsformel programmiert mit zeichnerischen LösungsmethodeBearbeiten

 
Mandelbrotmenge mit verschobenen Imaginärpunkt

Das zeichnerische Verfahren benutzt die Längen und Winkel von Vektoren, die sich auf den Nullpunkt(0,0i) und dem Imaginärpunkt(1,0i) (gelb markiert) beziehen.[14][15] Ausgehend von diesen 2 Punkten kann man aus zwei  -Werten das Ergebnis-  konstruieren, je nach Rechenmethode. Für die  -Formel braucht man nur die Quadrierung und die Addition. Oft wird argumentiert, dass das chaotische Verhalten von bestimmten Ziffernfolgen herrührt. Deshalb dieser Versuch ganz andere Ziffernfolgen zu erzeugen, womit solche Thesen zu überprüfen wären. Es würde sich dann ein mehr oder weniger geändertes Verhalten der Iterationsverläufe zeigen. Wird die   mit dem Imaginärpunkt bei (1,0i) erzeugt, so kann man keine Veränderungen erkennen. Bei der mathematischen  -Formel ist keine Variable für den Imaginärpunkt nötig, ist aber implizit als Konstante enthalten. Bei der zeichnerischen Iteration ist der Imaginärpunkt als Variable vorhanden. Jetzt kann aus Neugier und Spaß der Imaginärpunkt (x,yi) geändert werden. Mit anderen Werten dreht sich die   und/oder ändert die Größe. Bis auf diese zwei Eigenschaften kann keine weitere Veränderung erkannt werden. Das imaginäre Koordinatensystem(grün) bleibt bestehen. Tatsächlich könnte statt des Nullpunktes auch der Mittelpunkt der   als Variable eingeführt werden. Dann würde eine weitere Drehstreckung plus einer Verschiebung im Koordinatensystem möglich werden. Wenn diese zwei Werte nicht bei (0,0i) und (1,0i) liegen, dann müssen die Parameter aus Tabelle "Verhalten der Zahlenfolge" entsprechend umgerechnet werden.

Im folgenden Programmcode für einen Bildpunkt wird die zeichnerische Konstruktion durch sinus() und cosinus() Funktionen nachgebildet.

Zugehöriger Programmcode (zum Ausklappen)

// Eingangsvariablen:
cr, ci		Koordinaten eines Bildpunktes (real und imaginär)
ipr, ipi	Koordinaten des Imaginärpunktes (normal bei (1,0) = 1 + 0i, veränderbar)
Count       Iterationszähler

// Vorbereitung der Iterationsschleife:
double ipz = sqrt (ipr*ipr + ipi*ipi);
double cosi = ipr / ipz;
double sini = ipi / ipz;
double rmax = 2.5 * ipz;	// Fluchtradius ist abhängig vom Imaginärpunkt
double zr = 0, zi = 0;		// Koordinaten der Iterationsfolge (real und imaginär)
double r = sqrt (zr*zr + zi*zi);
Count = 0;

while (r < rmax) {
	if (r == 0) {
		c = s = 0;
		ry = 1;
	}
	else {
		c = zr / r;
		s = zi / r;
		ry = r*r / ipz;
	}
	crz = c*cosi - s*sini;
	srz = c*sini + s*cosi;
	zr = ry * (c*crz - s*srz) + cr;
	zi = ry * (c*srz + s*crz) + ci;
	r = sqrt (zr*zr + zi*zi);
    Count += 1;
}
Übersetzung in die Sprache Python (zum Ausklappen)

Der Programmcode wurde mit leichten Modifikationen in die Sprache Python übersetzt, um die Veränderungen durch den verschobenen Imaginärpunkt überprüfen zu können.

import numpy as np
import matplotlib.pyplot as plt

d, n = 100, 50  # Pixeldichte und Anzahl der Iterationen
radius = 2.5    # Fluchtradius muss größer als 2 sein

ipr, ipi = 1.0, -0.5  # Koordinaten des Imaginärpunktes
ipz = (ipr * ipr + ipi * ipi) ** 0.5
cosi, sini = ipr / ipz, ipi / ipz

x = np.linspace(-2.5, 1.5, num=4*d+1)
y = np.linspace(-1.5, 1.5, num=3*d+1)
T = np.zeros((len(y), len(x)))

for i, ci in enumerate(y):
    for j, cr in enumerate(x):
        zr, zi = 0, 0
        for k in range(n):    
            if (zr * zr + zi * zi) ** 0.5 < radius * ipz:
                c, s = zr, zi
                ry = 1 / ipz
                crz = c * cosi - s * sini
                srz = c * sini + s * cosi
                zr = ry * (c * crz - s * srz) + cr
                zi = ry * (c * srz + s * crz) + ci
                T[i, j] = k + 1

plt.imshow(T, cmap=plt.cm.twilight_shifted)
plt.savefig("Mandelbrot_set.png", dpi=250)
Vereinfachte Fassung (zum Ausklappen)

Der Programmcode wurde durch die Verwendung komplexer Zahlen und Matrizen vereinfacht. So sieht man, dass die Verschiebung des Imaginärpunktes einen zusätzlichen komplexen Faktor in die Rekursionsgleichung einfügt und somit eine Drehstreckung bewirkt. Alternativ kann auch die Matrix C durch Multiplikation mit dem komplexen Faktor rotiert werden (vgl. das entsprechende Programmbeispiel bei den komplexen Matrizen).

import numpy as np
import matplotlib.pyplot as plt

d, n = 100, 50  # Pixeldichte und Anzahl der Iterationen
radius = 2.5    # Fluchtradius muss größer als 2 sein

ipr, ipi = 1.0, -0.5  # Koordinaten des Imaginärpunktes
faktor = (ipr + ipi * 1j) / abs(ipr + ipi * 1j) ** 2

x = np.linspace(-2.5, 1.5, num=4*d+1)
y = np.linspace(-1.5, 1.5, num=3*d+1)

A, B = np.meshgrid(x, y)
C = A + B * 1j

Z = np.zeros_like(C)
T = np.zeros(C.shape)

for k in range(n):
    M = abs(faktor * Z) < radius
    Z[M] = faktor * Z[M] ** 2 + C[M]
    T[M] = k + 1

plt.imshow(T, cmap=plt.cm.twilight_shifted)
plt.savefig("Mandelbrot_set.png", dpi=250)

Deep ZoomBearbeiten

 
Vergleich Blockartefakte mit Original. Beide Bilder haben dieselbe Pixelanzahl.

Prozessoren unterstützen in Hardware die Berechnung mit typischerweise 32-bit- und 64-bit-Gleitkommazahlen. Dies ermöglicht es, in die Mandelbrotmenge etwa um den Faktor 1012 bis 1013 hineinzuzoomen, bevor benachbarte Pixel keine unterschiedlichen Startwerte   mehr annehmen können (und damit Fehler durch Blockartefakte offensichtlich werden).

Ab diesem Punkt reicht die Genauigkeit der in Hardware implementierten Arithmetik nicht mehr aus. Man ist gezwungen, auf in Software implementierte Routinen für hochgenaue Arithmetik auszuweichen, was bei aktuellen Prozessoren zu einem immensen Geschwindigkeitseinbruch führt.

Man kann diesen deutlich durch Nutzen von Störungsrechnung reduzieren.

Dazu wird ein (möglichst nicht divergenter) Referenzpunkt   in hochgenauer Arithmetik durchgerechnet und die Serie   wird aufgezeichnet:

 

Für in der direkten Nähe liegende Punkte   würde sich die Serie  

 

ergeben. Man will   indirekt berechnen, solange diese ursprüngliche Reihe   und   beschränkt bleiben, ist auch   beschränkt. Es gilt

    für die Berechnung des Referenzpunktes und
    mit   und   für die Berechnung des Nachbarpunktes.

Setzt man ein, ergibt sich

 .

Betrachtet man die beiden äußeren Terme

       und multipliziert aus
    und setzt  
    und löst die Klammern auf und kürzt
     und erhält
  .

Unter Verwendung der abgespeicherten Referenz   und durch Einsetzen von   kann man unter Nutzen von

 ,
 ,
 
 

die Abweichungen berechnen. Solange diese Terme klein bleiben, verhält sich   ähnlich wie  .

Praktische Anwendung

Das Programm "Kalles Fraktaler" benutzt diesen Ansatz.[16]

ProblemeBearbeiten

  1. Der verwendete Referenzpunkt sollte möglichst innerhalb der zu untersuchenden Iterationen nicht divergieren, da die Nachbarpunkte maximal bis zu dem Abbruch des Referenzpunktes untersucht werden können. Alle Punkte mit einer größeren Iterationszahl müssen erneut berechnet werden. Die Auswahl und das Verwerfen von sich als ungeeignet herausgestellten Referenzpunkten stellt eine Herausforderung dar.
  2. Für die Berechnung der Abweichungen   wird keine hohe Genauigkeit benötigt, allerdings ist der Wertebereich von 64-bit-Gleitkommazahlen arg limitiert. Ab etwa   muss man leider mit eigenen Mathematikroutinen arbeiten, die zwar nur eine 52/64 bit-Mantisse benötigen, aber deutlich langsamer als hartkodierte Gleitkomma-Operationen sind (die aber wesentlich schneller als Berechnungen mit langen Mantissen sind).
  3. Man benötigt Speicherbandbreite für das Lesen der Referenzserie  . Erste Verlangsamung gibt es, wenn diese nicht mehr in den L2-Cache passen, sehr viel langsamer wird es, wenn der L3-Cache nicht mehr ausreicht und auf den RAM zugegriffen werden muss.
  4. Es gibt Abweichungen zwischen der nativen Iteration mit   und der Störungsrechnung basierend auf  . Sieht man sich das ganze genauer an, ist die Berechnung basierend auf   meistens genauer, wenn die Referenzpunktberecnung hinreichend genau war (was mit Langzahlarithmetik für diesen einen Wert aber problemlos machbar ist).

BerechnungsgeschwindigkeitBearbeiten

Berechnungen nahmen beim Stand der Technik Ende der 1980er Jahre viel Zeit in Anspruch. Vergleichsweise zeigt dies eine Aufstellung durch die Anzahl der Iterationen, die verschiedene CPUs pro Sekunde durchführen konnten.

CPU Jahr Genauigkeit (Software) Geschwindigkeit
in Iterationen/sec
Rechendauer für
8,8 Mrd. Iterationen
Z80 @1,75 MHz 1987 32 bit Gleitkomma (1.) 9 31 Jahre
Z80 @2,45 MHz 32 bit Integer (2.) 280 01 Jahr
80386 SX/20 +
IIT 3C87SX/20
1992 32 bit Integer (3.) 130.000 19 Stunden
80 bit Gleitkomma (FPU) (3.) 75.000 33 Stunden
80 bit Gleitkomma (Emulation Borland) (3.) 2.000 51 Tage
Pentium 90 1994 32 bit Integer (3.) 1.450.000 01 Stunde 40 Minuten
80 bit Gleitkomma (3.) 2.900.000 50 Minuten
Xeon E5-2623 v3
× 2 (Dual Socket)
2015 32 bit Gleitkomma (4.) 50.000.000.000 0,177 Sekunden
64 bit Gleitkomma (4.) 25.000.000.000 0,35 Sekunden
Bemerkungen (zum Ausklappen)

Eingesetzte Software
  1. BASIC-Interpreter des KC 85/3
  2. selbst geschriebener Assemblercode[Anm 2]
  3. Borland C++ mit integriertem Assembler, die Gleitkomma-Emulation dieses Compilers war vergleichsweise langsam[Anm 3]
  4. Visual Studio C++ mit Intel Intrinsics, Nutzung von AVX2 und Fused multiply-add, multithreaded, 2 Threads pro Core
Eingesetzte Prozessoren
  • Z80: 8-Bit-Prozessor ohne Hardware-Multiplikation
  • 80386: 32-Bit-Prozessor mit Hardware-Multiplikation und Gleitkomma-Koprozessor
  • Pentium: 32-Bit-Prozessor mit Hardware-Multiplikation und mit eingebautem Gleitkomma-Koprozessor
  • Xeon E5-2623: Vektorbefehle, 4 Kerne/8 Threads pro Sockel

Rezeption in der ÖffentlichkeitBearbeiten

 
Computergenerierte Landschaft einer Insel in Form der Mandelbrot-Menge
(gerendert mit dem Programm Terragen)

Außerhalb der Fachwelt wurde die Mandelbrot-Menge vor allem durch den ästhetischen Wert der Computergrafiken bekannt, der durch künstlerische Farbgestaltung des Außenbereichs, der nicht zur Menge gehört, unterstützt wird. Sie erlangte durch Publikationen von Bildern in den Medien Ende der 1980er Jahre einen für ein mathematisches Thema dieser Art ungewöhnlich großen Bekanntheitsgrad und dürfte das populärste Fraktal, möglicherweise das populärste Objekt der zeitgenössischen Mathematik sein.[17]

Die Mandelbrot-Menge wird als das formenreichste geometrische Gebilde bezeichnet. Sie hat Computerkünstler inspiriert und zu einem Aufschwung fraktaler Konzepte beigetragen. Dabei finden zahlreiche Modifikationen des Algorithmus Anwendung, welcher der Mandelbrot-Menge zugrunde liegt.

Ein weiterer Aspekt ist der extreme Kontrast zwischen diesem und der Einfachheit des zugrunde liegenden Algorithmus, der an biologische Systeme erinnert, bei denen nach naturwissenschaftlicher Sicht ebenfalls aus einer vergleichsweise geringen Zahl von Regeln äußerst komplexe Systeme entstehen können, sowie die Nähe zur Chaosforschung, die ebenfalls in der Öffentlichkeit großes Interesse geweckt hatte.

Die Bezeichnung ,Apfelmännchen‘ leitet sich von der geometrischen Grobform einer um 90 Grad im Uhrzeigersinn gedrehten Mandelbrot-Menge her.

Der US-amerikanische Musiker Jonathan Coulton hat ein Lied über die Mandelbrot-Menge veröffentlicht, in dem Benoît Mandelbrot dafür gedankt wird, dass er Ordnung in das Chaos gebracht habe.[18]

Siehe auchBearbeiten

LiteraturBearbeiten

  • Benoît Mandelbrot: Die fraktale Geometrie der Natur. ISBN 3-7643-2646-8.
  • John Briggs, F. David Peat: Die Entdeckung des Chaos. ISBN 3-446-15966-5.
  • Heinz-Otto Peitgen, Peter H. Richter: The Beauty of Fractals. ISBN 0-387-15851-0.
  • Heinz-Otto Peitgen, Dietmar Saupe: The Science of Fractal Images. ISBN 0-387-96608-0.
  • Karl Günter Kröber: Das Märchen vom Apfelmännchen – 1. Wege in die Unendlichkeit. ISBN 3-499-60881-2.
  • Karl Günter Kröber: Das Märchen vom Apfelmännchen – 2. Reise durch das malumitische Universum. ISBN 3-499-60882-0.
  • Dierk Schleicher: On Fibers and Local Connectivity of Mandelbrot and Multibrot Sets, in: M.Lapidus, M. van Frankenhuysen (eds): Fractal Geometry and Applications: A Jubilee of Benoît Mandelbrot. Proceedings of Symposia in Pure Mathematics 72, American Mathematical Society (2004), 477–507, 1999, pdf

WeblinksBearbeiten

Commons: Mandelbrot-Menge – Sammlung von Bildern, Videos und Audiodateien
Wiktionary: Mandelbrotmenge – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
Wikibooks: Das Apfelmännchen – Lern- und Lehrmaterialien

AnmerkungenBearbeiten

  1. Eine Animation genau dieser Zoomfahrt befindet sich auf der Webseite Zoomfahrt in die Mandelbrotmenge.
  2. der allerdings noch nicht das theoretische Limit darstellte, die verwendet Multiplikation war schnell, es gibt aber noch schnellere, siehe Multiplication 32 x 32 bit, base case
  3. Compiler, die direkte Bibliotheksaufrufe erzeugten und bei Vorhandensein einer 32-bit-CPU 32-bit-Befehlte nutzten, waren deutlich schneller. Keine Messwerte mehr verfügbar.

EinzelnachweiseBearbeiten

  1. Robert Brooks, J. Peter Matelski: The dynamics of 2-generator subgroups of PSL(2,C). In: Riemann surfaces and related topics: Proceedings of the 1978 Stony Brook Conference. In: Annals of Mathematics Studies. Band 97, Princeton University Press, Princeton, N.J., 1981, S. 65–71. PDF.
  2. Benoît Mandelbrot: Fractal aspects of the iteration of   for complex  . In: Annals of the New York Academy of Sciences. 357, 249–259.
  3. Adrien Douady, John H. Hubbard: Etude dynamique des polynômes complexes. In: Prépublications mathémathiques d’Orsay. 2/4, 1984/1985 (PDF; 4,88 MB). (Memento vom 30. Januar 2017 im Internet Archive). Englische Übersetzung: OrsayEnglish.pdf.
  4. Robert P. Manufo: Escape Radius. Bei: mrob.com. 19. November 1997.
  5. Lei Tan: Similarity between the Mandelbrot set and the Julia sets. In: Communications in Mathematical Physics. 1990, Band 134, Nr. 3, S. 587–617. PDF. Bei: ProjectEuclid.org.
  6. Mitsuhiro Shishikura: The Hausdorff dimension of the boundary of the Mandelbrot set and Julia sets. März 1998, Band 147, Nr. 2, S. 225–267. Online. Bei: JStor.org.
  7. John H. Hubbard: Local connectivity of Julia Sets and bifurcation loci. Three Theorems of J.-C. Yoccoz. Hubbard zitiert in seiner Arbeit auf Seite 511 ein unveröffentlichtes Manuskript von J.-C. Yoccoz. PDF. 1993.
  8. Nach einer entsprechenden Koordinatentransformation. Für Details siehe die Bildbeschreibung.
  9. Thorsten Förstemann: Numerical estimation of the area of the Mandelbrot set. In: Persönliche Homepage. 2012, archiviert vom Original am 15. Juli 2021; abgerufen am 15. Juli 2021 (englisch, PDF-Versionen: 2012, 2016, 2017).
  10. Javier Barrallo, Damien M. Jones: Coloring Algorithms for Dynamical Systems in the Complex Plane. In: Visual Mathematics. Mathematical Institute SANU, 1999, abgerufen am 12. Juli 2021 (englisch, eudml.org).
  11. Mikael Hvidtfeldt Christensen: Distance Estimated 3D Fractals (V): The Mandelbulb & Different DE Approximations. In: Syntopia: Generative Art, 3D Fractals, Creative Computing. 2011, abgerufen am 12. Juli 2021 (englisch).
  12. David Madore: Mandelbrot set images and videos. In: Personal homepage. 2008, abgerufen am 12. Juli 2021 (englisch).
  13. Thorsten Förstemann: Log(z)-Mandelbrot-Zooms. In: Persönliche Homepage. 2013, archiviert vom Original am 15. Juli 2021; abgerufen am 12. Juli 2021 (youtube.com).
  14. Bartsch, Mathematische Formeln, VEB Fachbuchverlag Leipzig 1972 12.Ausgabe, Seite 17
  15. Norbert Treitz: Mandelbrots Apfelmännchen. In: spektrum.de. 2017, archiviert vom Original am 13. Oktober 2017; abgerufen am 7. August 2021.
  16. Kalles Fraktaler 2 +, auf mathr.co.uk
  17. Peitgen, Jürgens, Saupe: Chaos, Bausteine der Ordnung. Rowohlt, ISBN 3-499-60551-1, S. 431.
  18. Jonathan Coulton: Mandelbrot Set. (Memento vom 25. Januar 2017 im Internet Archive)