Table of Contents
Theoretischer Hintergrund von Mandelbrotfiguren
Einführung
Die Mandelbrotfiguren benutzen die Komplexen Zahlen. Durch eine Analyse ob eine Zahlenfolge (zi) von Komplexen Zahlen divergiert oder konvergiert, wird entschieden, ob ein Punkt entweder die Farbe Schwarz, im Fall der Konvergenz, d.h. die Zahlenfolge (zi) strebt gegen einen Wert ≠∞, oder eine beliebige andere Farbe zugewiesen bekommt, im Fall der Divergenz, d.h. die Zahlenfolge (zi) strebt gegen ∞. 1)
Grundlagen
Jetzt kommt eine kurze Betrachtung der Eigenschaften von Komplexen Zahlen, soweit es nötig ist für das Verständnis zur Erzeugung von Mandelbrot-Figuren. (Für eine ausführliche Diskussion der mathematischen Grundlagen ist die einschlägige Mathematik Literatur zu konsultieren).
Eine Komplexe Zahl z ist eine Summe aus einer reellen Zahl x und einer imaginären Zahl iy 2)
Die grafische Darstellung der komplexen Zahl in der Gaußschen Zahlenebene ist in der folgenden Grafik dargestellt:
Beispiel
Eine Komplexe Zahl wird als Punkt im Kartesischen (x,y)-Koordinatensystem dargestellt. In der Praxis kommen imaginäre Zahlen bei der Lösung von quadratischen Gleichungen in der folgenden Weise vor (Für folgende Gleichung ist das x zu bestimmen): 3)
Diese Gleichung ist nicht im reellen Zahlenbereich lösbar, weil sie eine negative Wurzel besitzt! Aus diesem Grunde ist eine imaginäre Zahlendarstellung zur Beschreibung der negativen Wurzel eingeführt worden:
Durch die Einführung der imaginären Darstellung läßt sich die obige Lösung der Gleichung wie folgt umformen:
Und die Lösung der quadratischen Gleichung wird zu:
(Der Beweis, daß die obige Lösung funktioniert, sei dem Leser durch Einsetzen überlassen.)
Die Lösung der quadratische Gleichung kann natürlich, wie in den Grundlagen beschrieben, auch grafisch als (x,y)-Punkte im Kartesischen Koordinatensystem dargestellt werden:
In der obigen Grafik lassen sich die Längen der Strecken zwischen dem Ursprung und den Punkten z1
und z2
berechnen. Die Länge wird auch der Betrag einer Komplexen Zahl z genannt:
Anwendung auf das obige Beispiel:
Anwendung der Grundlagen auf Mandelbrot Figuren
Die Mandelbrotmenge für die Funktion 4)
ist die Menge aller Punkte von c, für die gilt, daß die Folge zn
nicht divergiert für n→∞
Mit der Rekursion für n≥1
und z0=0
gilt:
Um die Mandelbrot Menge zu berechnen, wird die Zahlenfolge z1,z2,…,zn
von Komplexen Zahlen und deren rekursive Erzeugung betrachtet. Die rekursive Operation hat folgende Form: 5)
wo gilt z0 = 0
und z1 = c
und z = x + iy
und c = p + iq
.
Daraus folgt dann für zn+1
, aufgeteilt in imaginären und reellen Anteil:
Um die Mandelbrot Figuren zu erzeugen, wird nicht nur ein Punkt betrachtet, sondern ein Fläche:
Der Wert von c ist bei der rekursiven Analyse ein einzelner Punkt auf der Fläche des Kartesischen (x,y)-Koordinatensystems. Um diese Fläche auf dem Computerbildschirm zu bringen, muß dessen Auflösung in die Fensterauflösung des Anzeigefensters ’übersetzt’ oder ’diskretisiert’ werden. Unsere Fensterauflösung sei 1024×768 und die Variablen a und b sollen die folgenden Werte besitzen: a = 1024 und b = 768 ( Dies sei nun unsere ’Anzeigefläche’)
Die vorgegebenen Werte der Randpunkte der obigen Fläche der Mandelbrot Figur werden in die Anzeigefläche wie folgt abgebildet: Die △-Werte sind die Abstände der Messpunkte für die Analyse, ob ein Punkt c in der Mandelbrot-Menge, schwarzer Bereich, liegt oder nicht:
Algorithmus zur Berechnung der Mandelbrot Menge
Theorie
Um die Mandelbrot Menge automatisch berechnen zu können, muß die Rekursion aus der Gleichung (10) auf jedem Bildpunkt in der Anzeigefläche angewendet werden. Es gelten weiter die dir folgenden Randbedingungen: z1 = c
und z = x + iy
und c = p + iq
. Für die Anzeigefläche werden die Laufvariablen np
und nq
eingeführt und sind wie folgt definiert:
Daraus können wir nun die Komponenten für die Konstante c bilden:
mit den Randbedingungen z0 = 0 ⇒ x0 = 0
und y0 = 0
ergeben sich folgende Ergebnisse:
usw …
Struktogramm
Das folgende Struktogramm zeigt die mögliche Automatisierung einer Berechnung durch ein Programm:
QuellCode
Beispiele