M-lk-mandelbrot-menge-simon Nieswand

  • Uploaded by: Simon Nieswand
  • 0
  • 0
  • August 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View M-lk-mandelbrot-menge-simon Nieswand as PDF for free.

More details

  • Words: 3,608
  • Pages: 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

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

-2-

(2006/07) Facharbeit, vorgelegt von Simon Nieswand

1

-3-

Einleitung

Die erste Frage, die sich viele Leute beim Betrachten eines Bildes der MandelbrotMenge 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

2

-4-

Grundlagen zur Beschreibung und Berechnung der MandelbrotMenge

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 Zahlen, die sich ( wie hier

 b∗i

1

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 b>0) , so bekommt man: x 1=a b∗i und

 xa2=−b (wobei a,b є ℝ 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

Abb.2

:

Das

-6-

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

Zahlenebene

Vgl. Dittmann, S.29

4

Punkt

in

der

Gaußschen

(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

z 2= 2 ; 3 ? Oder sind beide Zahlen vom Betrag her gleich?

größer als der von

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

Oz zu.5 z =

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

Vgl. Dittmann 1976, S. 30

5

∣ z 1∣=  3222=  13≈3,605 .

(2006/07) Facharbeit, vorgelegt von Simon Nieswand

Und

auch

der

Betrag

-8-

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 MandelbrotMenge 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

3

-9-

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 MandelbrotMenge 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

4

-11-

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 ZehnerSchritten 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 MandelbrotMenge 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 yKoordinate 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 xKoordinate 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 yKoordinate 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 XWert) „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 WHILESchleife 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

Literaturverzeichnis Behr, Reinhart: Ein Weg zur fraktalen Geometrie. Stuttgart 1989. Dittmann, Helmut: Komplexe Zahlen. 2. Auflage. München 1976.

-15-

(2006/07) Facharbeit, vorgelegt von Simon Nieswand

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

-16-

(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

Related Documents


More Documents from "Simon Nieswand"