Sie sind auf Seite 1von 17

Gymnasium St. Ursula .

Dorsten

Schuljahr 2006/07

Die Mandelbrot-Menge und ihre graphische Darstellung in Basic

Facharbeit, vorgelegt von Simon Nieswand

Jahrgangsstufe: 12.2

Fach: Mathematik

Kursbezeichnung: Lk 1

Betreuungslehrer/in: Frau Seitz


(2006/07) Facharbeit, vorgelegt von Simon Nieswand -2-

Inhaltsverzeichnis

1 Einleitung..................................................................................................... 3
2 Grundlagen zur Beschreibung und Berechnung der Mandelbrot-Menge.... 4
2.1 Die imaginäre Zahl i..................................................................................... 4
2.2 Die Menge ℂ der komplexen Zahlen....................................................... 4
2.2.1 Rechnen mit komplexen Zahlen.................................................................. 5
2.2.2 Die Darstellung komplexer Zahlen.............................................................. 5
2.2.3 Der Betrag der komplexen Zahlen.............................................................. 7
2.3 Die Methode der Iteration............................................................................ 8
3 Die Mandelbrot-Menge................................................................................ 9
4 Graphische Darstellung der Mandelbrot-Menge in Basic.......................... 11

Literaturverzeichnis............................................................................................ 15
Abbildungsverzeichnis........................................................................................ 16
Erklärung............................................................................................................ 17
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -3-

1 Einleitung

Die erste Frage, die sich viele Leute beim Betrachten eines Bildes der Mandelbrot-
Menge stellen, ist meist, wie ein ästhetisch reizvolles und an moderne Kunst
erinnerndes Gebilde wie das sogenannte Apfelmännchen (der schwarze Bereich in
Abbildung 1) mit Mathematik, die ja bekanntlich oft als langweilig angesehen wird, zu
tun haben kann.
Des Weiteren vermutet man hinter einem derart farben- und vor allem formenreichen
Konstrukt schnell komplizierte Formeln, hochkomplexe Rechenwege und verwirrende
Gedankengänge.

Abb. 1: Graphische Darstellung der Mandelbrot-Menge


Ich will in dieser Facharbeit den Zusammenhang zwischen der graphischen
Darstellung der Mandelbrot-Menge und der Mathematik, die dahinter steckt, erläutern.
Zwar hält sich – wie man sehen wird – die Kompliziertheit der benötigten Rechnungen
in Grenzen, jedoch sind zu allererst die Grundlagen für diese zu schaffen. Dazu
gehören sowohl die imaginären Zahlen, als auch das Rechnen mit komplexen Zahlen
und deren Darstellung in einem Koordinatensystem und die Methode der Iteration.
Sobald diese Begriffe erklärt wurden, werde ich mit diesen die Mandelbrot-Menge
beschreiben.
Danach zeige ich, wie man in der Programmiersprache Basic eine Darstellung der
Mandelbrot-Menge (bzw. von Ausschnitte aus dieser) programmiert.
Dieses Programm dient sowohl der Überprüfung, als auch der Anwendung der
Kenntnisse, die ich während der Vorbereitung auf die Facharbeit gewonnen habe.
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -4-

2 Grundlagen zur Beschreibung und Berechnung der Mandelbrot-


Menge

2.1 Die imaginäre Zahl i

Auf den ersten Blick wirkt die uns geläufige Menge ℝ der reellen Zahlen
vollkommen. In ihr scheint sich jede Gleichung lösen zu lassen, da sie alle Zahlen
(inklusive der Brüche und irrationalen Zahlen (z. B. die Lösung von x = 2 )) von -∞
bis +∞ enthält. Aber schon aus dem Mathematikunterricht weiß man, dass die
Gleichung x=1/0 keine Lösung in ℝ besitzt.
Auch kann man in ℝ keine Quadratwurzeln aus negativen Zahlen ziehen.
Und hier kommt die von dem bedeutenden Mathematiker Leonhard Euler eingeführte
imaginäre Zahl i ins Spiel. Der Begriff kommt vom lateinischen „numeri imaginarii“ was
so viel bedeutet wie „eingebildete Zahl“1. Diese Zahl soll die Lösung der Gleichung

x= −1 darstellen. Es gilt daher i= −1 oder auch i 2=−1


Durch die Einführung dieser Zahl lassen sich nun aus beliebigen negativen Zahlen die
Quadratwurzel ziehen. Für die allgemeine Gleichung x 2=−b (mit b є ℝ und b>0)
sind die Lösungen demnach x 1= b∗i und x 2=− b∗i 1

Zahlen, die sich ( wie hier  b∗i und − b∗i ) aus der Multiplikation einer reellen
Zahl und der imaginären Zahl i ergeben, nennt man Imaginärzahlen.1
Die nächsten Unterkapitel sollen zeigen, wie man mit Ausdrücken, die sowohl reelle
Zahlen als auch Imaginärzahlen enthalten, umgeht.

2.2 Die Menge ℂ der komplexen Zahlen

Berechnet man nun die Lösungen der Formel  xa2=−b (wobei a,b є ℝ und
b>0) , so bekommt man: x 1=a b∗i und x 1=a− b∗i
Die Lösungen sind also Summanden aus einer reellen Zahl und einer Imaginärzahl.
Auf solche Weise zusammensetzte Zahlen heißen komplex (lat.: complexus =
verflochten).
Die allgemeine Summenschreibweise für komplexe Zahlen lautet: z=abi mit a,b є
2

Vgl. Dittmann 1976, S. 20


1

2
Vgl. Dittmann 1976, S.21
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -5-

Da a die reelle Komponente von z darstellt, nennt man a auch Realteil von z.
Abgekürzt schreibt man a= R e z .
Den Teil von z, der mit der Variablen b ausgedrückt wird, nennt man entsprechend
auch Imaginärteil von z, da er zusammen mit i den imaginären Anteil von z angibt. Die
Abkürzung ist b=I m z .
Weil i in jeder komplexen Zahl z den gleichen Wert hat und nur a und b variabel sind,
haben sich die Mathematiker die Paarschreibweise einfallen lassen. Diese beschreibt
eine komplexe Zahl als geordnetes Paar zweier reeller Zahlen. Geordnet heißt, dass
es auf die Reihenfolge ankommt, in der die Zahlen auftreten. 2
Allgemein sieht die Paarschreibweise wie folgt aus: z=a ; b  mit a,b є ℝ (wobei a
den Realteil und b den Imaginärteil von z ausdrückt)
Die imaginäre Zahl i wird also erstmal nicht beachtet. So kann man leichter rechnen,
da – wie man im nächsten Kapitel sehen wird – komplexe Zahlen auf leicht
kompliziertere Art als reelle Zahlen verknüpft werden.
Die Menge aller komplexen Zahlen wird mit ℂ abgekürzt. Wie man mit diesen
Zahlen rechnet, werde ich im nächsten Unterkapitel beschreiben.

2.2.1 Rechnen mit komplexen Zahlen

Um auf die für die Mandelbrot-Menge wichtigen Ergebnisse zu kommen, muss man
wissen, wie die Addition, die Subtraktion und die Multiplikation komplexer Zahlen
definiert ist.
Will man zwei komplexe Zahlen z1 und z2 addieren, so gilt die Regel
z 1 z 2=a ;bc ; d =ac ;bd 
Die Subtraktion geht - analog zur Addition – folgendermaßen:
z 1−z 2=a ; b−c ; d =a−c ; b−d 
Die Regel, nach der man zwei komplexe Zahlen multipliziert, ist etwas komplizierter:
z 1∗z 2=[a∗c−b∗d ;a∗d b∗c]
Da es Ziel dieser Facharbeit ist, ein Bild der Mandelbrot-Menge darzustellen, muss
man natürlich wissen, wie man solche komplexe Zahlen graphisch interpretiert.

2.2.2 Die Darstellung komplexer Zahlen

Zuerst einmal braucht man ein geeignetes Koordinatensystem. Die Ebene, in der
dieses KOS liegt, heißt Gaußsche Zahlenebene oder auch Ebene der komplexen
Zahlen. 3 Das Koordinatensystem sieht folgendermaßen aus:

Vgl. Dittmann 1976, S. 29


3
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -6-

Abb.2 : Das Koordinatensystem der


Gaußschen Zahlenebene

In x-Richtung wird also der reelle Teil, in y-Richtung der imaginäre Teil einer
komplexen Zahl aufgetragen. Die x-Achse heißt daher auch die reelle Achse und die
y-Achse nennt man Achse der Imaginärzahlen. 4
Ein Beispiel: Die komplexe Zahl z=32i oder z=3 ; 2 wird in der Ebene der
komplexen Zahlen so dargestellt:

Abb. 3: Die Deutung der komplexen Zahl


(3;2) als Punkt in der Gaußschen
Zahlenebene

Vgl. Dittmann, S.29


4
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -7-

Jeder komplexen Zahl z=a ;b  wird also ein Punkt z mit den Koordinaten (a|b)
zugeordnet.

2.2.3 Der Betrag der komplexen Zahlen

Für die Berechnung der Mandelbrot-Menge ist es wichtig zu wissen, ob der Betrag
einer komplexen Zahl einen gewissen Wert überschreitet oder nicht. Aber welchen

Betrag hat nun eine komplexe Zahl? Ist der Betrag von z 1=3 ; 2 kleiner oder

größer als der von z 2= 2 ; 3 ? Oder sind beide Zahlen vom Betrag her gleich?
Um diese Fragen beantworten zu können, ist es sinnvoll, die komplexen Zahlen als
Vektoren zu deuten, die vom Ursprung O des Koordinatensystems zum Punkt, der die
Zahl darstellt, führen. Man teilt also jeder komplexen Zahl z einen Vektor z =
Oz zu.5
In dem unten stehenden Beispiel (Abbildung 4) habe ich wieder die komplexe Zahl
z=3 ; 2 benutzt.

Abb. 4: Die Interpretation der komplexen


Zahl (3;2) als Vektor in der Gaußschen
Zahlenebene

Den Betrag von z kann man nun ganz leicht über den Satz des Pythagoras
ausrechnen, da z mit der Achse der reellen Zahlen (x-Achse) und der Parallelen zur
Achse der Imaginärzahlen (die senkrechte, gestrichelte Linie in Abbildung 4) ein

rechtwinkliges Dreieck bildet. Es gilt: a 2b2=∣z∣2 => ∣z∣= a 2b2

Der Betrag von z 1=3 ; 2 ist demnach z 1∣=  3222=  13≈3,605 .


∣

Vgl. Dittmann 1976, S. 30


5
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -8-

Und auch der Betrag von z 2= 2 ; 3 ist ungefähr 3,605, da es gilt:

z 2∣= 2 232=  13≈3,605


∣
Soweit wurde nun alles Nötige zur Berechnung und Darstellung komplexer Zahlen
gesagt. Jetzt kann man sich der für die Mandelbrot-Menge wichtigsten
Rechenoperation, der Iteration, zuwenden.

2.3 Die Methode der Iteration

Unter einer Iteration versteht man in der Mathematik, wenn man einen Anfangswert in
eine bestimmte Rechenvorschrift einsetzt, das Ergebnis bestimmt und dieses wieder
in die gleiche Funktion setzt, deren Ergebnis wieder usw.
2
Ein Beispiel für eine sogenannte Iterationsvorschrift ist: a n1=a n
Hier wird der Anfangswert a0 quadriert, das Ergebnis a1 wiederum usw. 6
Für den Anfangswert a0 = 2 würden die ersten Schritte folgendermaßen aussehen:
2
a 1=2 =4
a 2=4 2=16
2
a 3=16 =256 etc.
Wie man sehen kann, werden die Ergebnisse nach jedem Rechenschritt größer.
Daher sagt man, dass die Folge für a0 = 2 gegen unendlich strebt.
Dies gilt jedoch nicht für alle Anfangswerte. Wählt man nämlich zum Beispiel den
Anfangswert a0 = 0.6, so startet die Folge so:
a 1=0,6 2=0,36
2
a 2=0,36 =0,1296
2
a 3=0,1296 ≈0,0168 etc.
Die Werte werden anscheinend immer kleiner und es gibt keinen Grund daran zu
zweifeln, dass dieser Fall auch bei a4, a5 usw. eintreten wird. Man sagt, dass diese
Folge für die Ausgangszahl a0 = 0,6 gegen 0 strebt.
Es sei noch gesagt, dass es auch Folgen gibt, die weder gegen unendlich noch
gegen 0, sondern gegen eine oder mehrere andere Zahlen streben. Weil diese
Tatsache jedoch unerheblich für das Erreichen des Zieles dieser Facharbeit ist, muss
darauf nicht näher eingegangen werden.
Da nun endlich alle nötigen Grundlagen geschaffen wurden, um die Mandelbrot-
Menge zu beschreiben, kann ich jetzt zur Beantwortung der Frage schreiten, was
diese Menge überhaupt ist bzw. was sie beinhaltet.

Vgl. Behr 1989, S. 9


6
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -9-

3 Die Mandelbrot-Menge

Es sollte bis jetzt klar geworden sein, dass es sich um eine Menge von komplexen
Zahlen handelt. Welche aber sind es?
Um darüber Klarheit zu erlangen, muss man sich zunächst die Iterationsvorschrift, mit
deren Hilfe die Zahlen der Menge gewonnen werden, anschauen. Diese lautet:
a n1=a 2nc mit c є ℂ
Der Anfangswert a0 ist bei dem Iterationsprozess gleich 0.
Die ersten Iterationsschritte lauten also:
a 1=c
2
a 2=c c
a 3=c 2c2c

Für jede Konstante c verändert sich also der Verlauf der Iterationsfolge.
Und jetzt kommt endlich die Definition der Mandelbrot-Menge:
„Mandelbrot-Menge heißt die Menge aller komplexen Zahlen c, für welche die

Ausgangszahl 0 bei der Iterationsfolge a n1=a 2nc nicht gegen ∞ strebt.“7


(Ihren Namen bekam die Menge durch ihren Entdecker Benoît B. Mandelbrot.
Dieser war ein bedeutsamer Mathematiker, der sich als einer der ersten mit
Mengen komplexer Zahlen beschäftigte.)
Theoretisch müsste man für jede Zahl c den Iterationsprozess unendlich lange
laufen lassen um zu sehen, ob die Folge auch garantiert nicht gegen unendlich
strebt und somit zur Mandelbrot-Menge gehört. Da dies jedoch praktisch
unmöglich umzusetzen ist, genügt auch eine geringere Genauigkeit. Für ein
ausreichend genaues Bild der Mandelbrot-Menge reicht es, wenn man sagt,
dass die Zahl c in der Menge liegt, wenn nach 100 Iterationsschritten der Wert
2 nicht erreicht bzw. überschritten wurde.
Wen man nun für alle Zahlen der Mandelbrot-Menge die dazugehörigen Punkte in der
Gaußschen Zahlenebene in das Koordinatensystem einzeichnet, ergibt sich
folgendes Bild:

Behr 1989, S. 54
7
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -10-

Abb. 5: Bild der Mandelbrot-Menge im


Koordinatensystem

Obgleich auch dieses Bild eine faszinierende Wirkung hat, wirkt es doch im Vergleich
zu Abbildung 1 nicht so anspruchsvoll, da die farbige Umgebung des
Apfelmännchens fehlt. Jedoch sind die Farben nur schmückendes Beiwerk. Sie
geben an, wie schnell die Iterationsfolgen für die Zahlen, die nicht in der Mandelbrot-
Menge liegen, gegen unendlich streben.
Da jetzt das mathematische Fundament geschaffen, die bildhafte Darstellung geklärt
und die Definition gegeben ist, kann ich nun dazu übergehen, mein Programm zur
Darstellung von Ausschnitten der Mandelbrot-Menge (bzw. der ganzen) zu erläutern.
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -11-

4 Graphische Darstellung der Mandelbrot-Menge in Basic

Das folgende Programm stellt quadratische Ausschnitte der Mandelbrot-Menge mit


frei wählbaren Koordinaten der unteren linken Ecke dieses Quadrats dar. Außerdem
kann die Kantenlänge des Ausschnitts und die Anzahl an maximalen
Iterationsschritten beliebig gewählt werden.
Es ist in der Programmiersprache Basic geschrieben, da diese recht simple und somit
schnell zu durchschauen ist.
Ich ich ihn erkläre werde, den Quellcode zuerst komplett angeben, damit man ihn zu
Testzwecken in ein geeignetes Basic-Interpretier-Programm (ich benutze Microsoft ©
QuickBasic v7.1) kopieren kann.

10 INPUT "Welche Koordinaten soll die linke untere Ecke des Ausschnitts haben
(durch Komma getrennt)"; Rmin, Imin
20 INPUT "Welche Länge sollen die Kanten des Ausschnittquadrats haben"; K
30 INPUT "Wie oft soll maximal iteriert werden"; ITmax
40 SCH = K / 400
50 R = Rmin
60 FOR S = 1 TO 400 STEP 1
70 I = Imin
80 FOR Z = 400 TO 1 STEP -1
90 IT = 0
100 X=0:Y=0
120 WHILE IT <= ITmax AND SQR(X ^ 2 + Y ^ 2) < 2
130 IT = IT + 1
140 Xu = X
150 X=X^2-Y^2+R
160 Y = 2 * Xu * Y + I
170 WEND
180 SCREEN 12
190 IF IT >= ITmax THEN PSET (S, Z)
200 I = I + SCH
210 NEXT Z
220 R = R + SCH
230 NEXT S
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -12-

Zunächst sei darauf hingewiesen, dass die Zeilennummern nur deshalb in Zehner-
Schritten aufgeführt sind, damit man bei Bedarf weitere Zeilen einfügen kann ohne
die nachfolgenden Zahlen ändern zu müssen. Aber nun zur Erklärung:
In den ersten drei Zeilen erwartet das Programm (durch den INPUT-Befehl) die
Eingabe von bestimmten Werten: In Zeile 10 soll der Benutzer die untere linke Ecke
des Ausschnitts der Mandelbrot-Menge festlegen. Also den Real- und den Imaginärteil
der kleinsten zu iterierenden komplexen Zahl (Daher die Variablen Rmin und Imin für
minimalen Real- und Imaginärteil) (vgl. Kap. 2.2.2).
In der nächsten Zeile soll der Benutzer die Kantenlänge des Ausschnittquadrats
angeben; dieser Wert wird unter der Variablen K für Kantenlänge gespeichert.
Dann fordert das Programm den Benutzer auf anzugeben, wie oft da Programm
maximal iterieren soll, bevor es „entscheidet“, ob ein Punkt in der Mandelbrot-Menge
liegt oder nicht. Diesen Wert repräsentiert die Variable ITmax für maximale
Iterationen.
Jetzt steht man vor einem programmiertechnischen Problem, da man es mit zwei
Koordinatensystemen zu tun hat. Einmal mit dem KOS der komplexen Zahlen, die
iteriert werden sollen und einmal mit dem Bildschirm-KOS.
Daher wird in Zeile 40 die Kantenlänge durch 400 geteilt. Das Ausschnittquadrat wird
also in 400 Spalten und 400 Zeilen geteilt. Die 160.000 entstehenden kleinen
Quadrate kann man nun eindeutig einer Spalte und einer Zeile des Bildschirms mit
ganzzahliger Bezeichnung zuordnen, daher werden sie auch Bildpunkte genannt.
Diese Quadrate haben eine Kantenlänge von K/400. Dieser Wert wird als Schrittweite
(daher die Variable SCH in Zeile 40) bezeichnet, da er angibt, wie weit zwei komplexe
Zahlen, die durch das Programm auf ihre Zugehörigkeit zur Mandelbrot-Menge
geprüft werden sollen, auseinander liegen. Würde man anstatt der 400 eine höhere
Zahl (z. B. 500) wählen, würde die Schrittweite geringer, dadurch würden mehr Zahlen
(nämlich 500*500=250.000) das Programm durchlaufen und das Bild der Mandelbrot-
Menge wäre genauer. Man sagt, dass die Auflösung des Bildes höher würde.
Für das Programm soll aber eine Auflösung von 400*400 Bildpunkten genügen.
Um den nächsten Programmteil verstehen zu können, muss man sich ins Gedächtnis
rufen, dass in der Ebene der komplexen Zahlen der Realteil einer Zahl (hier mit R
bezeichnet) in x-Richtung, der Imaginärteil (hier I) in y-Richtung aufgetragen wird.
Außerdem muss man wissen, dass S (für Spalte) die x-Koordinate, Z (für Zeile) die y-
Koordinate eines Bildpunktes darstellt.
Es passiert nun folgendes: In Zeile 50 wird der vom Benutzer gewünschte Wert für
Rmin auf R übertragen (R=Rmin), damit das Programm „weiß“, bei welcher x-
Koordinate der Gaußschen Zahlenebene die Überprüfung der Zahlen beginnen soll.
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -13-

Dann setzt die FOR-NEXT-Schleife (Schleife, die vor jeder Wiederholung den Wert
einer vorgegebenen Variablen um den Wert STEP erhöht oder erniedrigt), die die
Zeilen 60 bis 230 bilden, den Wert von S (also die x-Koordinate der Bildpunkte) auf 1.
Daraufhin wird der Wert von I auf den von Imin gesetzt (I=Imin). Dadurch wird die y-
Koordinate der Gaußschen Zahlenebene, an der das Programm die Überprüfung
starten soll, festgelegt (warum dieser Schritt innerhalb der ersten FOR-NEXT-Schleife
stehen muss wird später deutlich gemacht).
Jetzt setzt in Zeile 80 die nächste FOR-NEXT-Schleife ein. Diese Schleife setzt Z (die
y-Koordinate der Bildpunkte) zunächst auf 400.
Der erste Bildpunkt hat also die Position (1|400). Er liegt unten links am Bildschirm, da
das KOS der Bildpunkte an der oberen linken Bildschirmecke mit (0|0) beginnt und die
Spalten nach rechts und Zeilen nach unten fortlaufend positiv gezählt werden.
Die diesem Bildpunkt zugeordnete Zahl hat die Koordinaten (Rmin|Imin) und da diese
Koordinaten in Zeile 10 als die linke untere Ecke des Ausschnitts der Gaußschen
Zahlenebene definiert wurden, stimmen Bildschirm-KOS und das KOS der komplexen
Zahlen überein.
Nun wird in Zeile 90 eine Variable IT eingeführt, die die Anzahl der durchgeführten
Iterationen zählen soll; der Wert ist deshalb zunächst 0.
Die in Zeile 100 stehenden Variablen X und Y stehen für Real- und Imaginärteil der
Zahlen, die das Programm durch die Iterationen errechnet.
In der nun folgenden WHILE-Schleife werden die Iterationsschritte durchgeführt.
Zunächst überprüft das Programm – mit IT <= ITmax (wobei <= für ≤ steht) - , ob die
Anzahl der maximalen Iterationsschritte schon erreicht wurde und - mit SQR(X ^ 2 + Y
^ 2) < 2 (wobei SQR für die Quadratwurzel des Wertes in der folgenden Klammer
steht) - ob der Betrag der errechneten Zahl den Wert 2 schon erreicht oder
überschritten hat (vgl. Kap. 2.2.3).
Das Programm rechnet (nachdem es den Wert des Iterationszählers IT um 1 erhöht
hat): (Xn+1;Yn+1)=(Xn;Yn)2+ (R;I) (vgl. Kap. 3). Da (X;Y) die zuvor errechnete Zahl
darstellt, ist nun klar warum deren Werte in Zeile 100 auf 0 gesetzt wurden: Beim
ersten Iterationsschritt gibt es ja noch keine errechnete Zahl.
In Zeile 150 und 160 werden der neue X- und Y-Wert getrennt berechnet. Da jedoch
Y nach X berechnet wird muss auf den in Zeile 140 unter Xu (für unveränderten X-
Wert) „gespeicherten“ X-Wert zurückgegriffen werden.
Auf die Gleichungen X = X ^ 2 - Y ^ 2 + R und Y = 2 * Xu * Y + I kommt man, wenn
man die in Kapitel 2.2.1 aufgeführten Regeln für das Rechnen mit komplexen Zahlen
anwendet und auf X und Y auflöst.
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -14-

Zeile 170 führt das Programm mit dem Befehl WEND (WHILE-Schleifen-ENDE) zu
Zeile 120 zurück. Diese Schleife läuft solange, bis IT den Wert von ITmax
überschritten hat oder der Betrag der errechneten Zahl 2 oder größer ist. Falls eine
Zahl also in der Mandelbrot-Menge liegt, muss sie die Schleife ITmax-mal durchlaufen
ohne das ihr Betrag den Wert 2 (oder einen höheren) annimmt. Ist eine dieser
Bedingungen nicht erfüllt bricht die Schleife ab und das Programm fährt in Zeile 180
fort. Dort wird durch SCREEN 12 der Graphikmodus aufgerufen.
In Zeile 190 wird durch die Bedingung IT >= ITmax (>= bedeutet ≥) der Wert von IT
überprüft. Liegt dieser unter ITmax, dann „weiß“ das Programm, dass die WHILE-
Schleife vorzeitig unterbrochen wurde, weil der Betrag der überprüften Zahl den Wert
2 überschritten oder erreicht hatte. Das Programm springt dann in die nächste Zeile.
Wird die Bedingung jedoch erfüllt, so liegt die Zahl (R;I) (im ersten Durchlauf
(Rmin;Imin)) in der Mandelbrot-Menge und der zugehörige Bildpunkt (S|Z) (hier (1|
400)) wird durch den Befehl PSET (S, Z) weiß eingefärbt.
Daraufhin wird der Wert von I um SCH erhöht (I=I+SCH). Die nächste Zahl, die das
Programm durchlaufen wird, liegt in der Gaußschen Zahlenebene über der ersten.
Der Befehl NEXT Z bewirkt, dass das Programm die FOR-NEXT-Schleife für Z
wiederholt und dabei den Wert von Z von 400 auf 399 setzt. Der nächste Bildpunkt
hat so die Koordinaten (1|399), auch dieser liegt über dem vorherigen. Die
Koordinatensysteme stimmen weiterhin überein.
Jetzt werden der Iterationszähler IT und X und Y wieder auf 0 gesetzt und die Iteration
beginnt von neuem. Diese Schleife wird fortgesetzt bis Z den Wert 1 annimmt, d. h.,
bis eine komplette Spalte an Bildpunkten und komplexen Zahlen von unten nach
oben durchlaufen wurde.
Dann wird der Wert von R um SCH (R=R+SCH) erhöht und der Wert von I – nachdem
das Programm durch NEXT S in Zeile 60 zurückgesprungen ist und den Wert von S
auf 2 erhöht hat – auf Imin zurückgesetzt. Nun wird deutlich, warum der Schritt I =
Imin innerhalb der FOR-NEXT-Schleife für S stehen muss: Nach jedem Durchlauf
einer Spalte muss der Imaginärteil ja wieder auf den minimalen Wert zurückgesetzt
werden, damit die Überprüfung wieder am untersten Punkt der neuen Spalte
anfangen kann. Auch der erste Bildpunkt der nächsten Spalte muss der unterste sein.
Dies wird erreicht, indem die FOR-NEXT-Schleife für Z in die für S eingebaut wurde.
Der Wert von Z wird also nach jedem Durchlauf der FOR-NEXT-Schleife für S wieder
auf 400 zurückgesetzt.
So werden alle Bildpunkte und die dazugehörenden Zahlen nach und nach von unten
nach oben und von links nach rechts überprüft und ggf. eingefärbt.
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -15-

Literaturverzeichnis

Behr, Reinhart: Ein Weg zur fraktalen Geometrie. Stuttgart 1989.


Dittmann, Helmut: Komplexe Zahlen. 2. Auflage. München 1976.
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -16-

Abbildungsverzeichnis

Abb. 1: Behr, Reinhart: Ein Weg zur fraktalen Geometrie. Stuttgart 1989. Seite 44
Abb. 5: Behr, Reinhart: Ein Weg zur fraktalen Geometrie. Stuttgart 1989. Seite 54
(2006/07) Facharbeit, vorgelegt von Simon Nieswand -17-

Erklärung

Hiermit erkläre ich, dass ich die vorliegende Arbeit selbstständig verfasst, keine
anderen als die angegebenen Hilfsmittel benutzt und alle wörtlichen und
sinngemäßen Übernahmen aus anderen Werken als solche kenntlich gemacht und
mit genauen Quellenbelegen versehen habe.

Dorsten, den_______________________
2007 _________________________________
Unterschrift der Schülerin/des Schülers

Das könnte Ihnen auch gefallen