Mandelbrot-Menge
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.
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.
Definition
Definition über Rekursion
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 Polynome
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-Mengen
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]
Bezug zur Chaostheorie
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 Eigenschaften
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 Zoomfahrt
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 Zahlenfolge
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 Zuordnung
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 Verhalten
Die kreisförmigen Strukturen
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 Knospenwerte
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.
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 Zyklen
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 Iteration
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.
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 Zentrum 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 Nullstellen/Knospen exponential weiter an, so für auf , für auf und für auf . |
Repulsive Zyklen
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.
Satelliten
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 Verhalten
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 Folgenglieder
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.
Grafische Darstellung
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 Berechnung
Iteration über alle Bildpunkte
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 Bildpunktes
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 Matrizen
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)
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)
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ösungsmethode
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.
// 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;
}
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)
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 Zoom
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]
Probleme
- 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.
- 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).
- 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.
- 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).
Berechnungsgeschwindigkeit
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 | 1 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 | 1 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 | ||
- Eingesetzte Software
- BASIC-Interpreter des KC 85/3
- selbst geschriebener Assemblercode[Anm 2]
- Borland C++ mit integriertem Assembler, die Gleitkomma-Emulation dieses Compilers war vergleichsweise langsam[Anm 3]
- 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 Öffentlichkeit
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 auch
Literatur
- 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
Weblinks
- Eric W. Weisstein: Mandelbrot Set. In: MathWorld (englisch).
- Robert Munafo: The Encyclopedia of the Mandelbrot Set. In: mrob.com (personal website). 1996 (englisch).
- Robert Devaney: Unveiling the Mandelbrot Set. In: plus.maths.org. 2006 (englisch).
- Wolfgang Beyer: Animationen zur Zoomfahrt im hiesigen Artikel. In: wolfgangbeyer.de (persönliche Homepage). 2007 .
- Anders Sandberg: Mercator Mandelbrot Maps. In: flickr.com. 2009 (englisch, vgl. das zugehörige Programmbeispiel).
- Norbert Treitz: Mandelbrots Apfelmännchen. In: spektrum.de. 2017 (vgl. die grafische Lösungsmethode).
- Albert Lobo: Mandelbrot viewer. In: albertlobo.com (personal website). 2019 (englisch).
- Zooming in a Mandelbrot Fractal by a Ratio of 10^227. In: youtube.com. 2016 (berechnet durch logarithmische Projektion).
- Sounds of the Mandelbrot Set. In: youtube.com. 2021 (englisch).
- Diverse Algorithmen zur Berechnung der Mandelbrotmenge. In: rosettacode.org. (englisch).
Anmerkungen
- Eine Animation genau dieser Zoomfahrt befindet sich auf der Webseite Zoomfahrt in die Mandelbrotmenge.
- 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
- Compiler, die direkte Bibliotheksaufrufe erzeugten und bei Vorhandensein einer 32-bit-CPU 32-bit-Befehlte nutzten, waren deutlich schneller. Keine Messwerte mehr verfügbar.
Einzelnachweise
- 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.
- Benoît Mandelbrot: Fractal aspects of the iteration of for complex . In: Annals of the New York Academy of Sciences. 357, 249–259.
- 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.
- Robert P. Manufo: Escape Radius. Bei: mrob.com. 19. November 1997.
- 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.
- 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.
- 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.
- Nach einer entsprechenden Koordinatentransformation. Für Details siehe die Bildbeschreibung.
- 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).
- 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).
- 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).
- David Madore: Mandelbrot set images and videos. In: Personal homepage. 2008, abgerufen am 12. Juli 2021 (englisch).
- 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).
- Bartsch, Mathematische Formeln, VEB Fachbuchverlag Leipzig 1972 12.Ausgabe, Seite 17
- Norbert Treitz: Mandelbrots Apfelmännchen. In: spektrum.de. 2017, archiviert vom Original am 13. Oktober 2017; abgerufen am 7. August 2021.
- Kalles Fraktaler 2 +, auf mathr.co.uk
- Peitgen, Jürgens, Saupe: Chaos, Bausteine der Ordnung. Rowohlt, ISBN 3-499-60551-1, S. 431.
- Jonathan Coulton: Mandelbrot Set. (Memento vom 25. Januar 2017 im Internet Archive)