Dieses Worksheet gibt einen ersten Einblick in die wunderbare Welt der Fraktale. Es werden Begriffe eingeführt wie z.B. gebrochene Dimension und Selbstähnlichkeit und am Beispiel der Kochschen Kurve und des Sierpinski-Dreiecks erklärt. Die Prozedur sierpinski visualisiert die Konstruktion des Sierpinski-Dreiecks über Dreiecke, während der Prozedur sierpinski2 ein alternativer Konstruktionsalgorithmus zugrunde liegt. Es wird auf Iterationsvorschriften eingegangen, die auf die Mandelbrot- und auf die Julia-Mengen führen. Die Prozedur visualisiert die Konstruktion des Sierpinski-Dreiecks über Dreiecke, während der Prozedur sierpinski ein alternativer Konstruktionsalgorithmus zugrunde liegt. Die Prozeduren mandelbrot und julia stellen dreidimensionale Graphiken für die Apfelmännchen- bzw. 3D-Gebirge der entsprechenden Mengen auf. Die Prozedur cantor stellt eine nicht zusammenhängende Julia-Menge dar.
Einleitung
Begriffe
und Definitionen
Iterierte
Abbildungen
Die
Mandelbrotmenge
Die
Juliamenge
-----------------------
zurück zur Startseite
Aus der Schulgeometrie kennen wir nur die Dimensionen1, 2 und 3. Dass es noch weitere ganzzahlige Dimensionen gibt, ist allgemein bekannt. Vernachlässigt wurde dagegen oft die Tatsache, dass es neben diesen ganzzahligen Dimensionen auch noch welche dazwischen gibt. Diese beschreiben die reale Welt manchmal sogar besser als die "glatten" bekannten Gebilde. Die vom mathematischen Außenseiter Benoit Mandelbrot erforschten, gebrochenen Dimensionen wie zum Beispiel 1,65 oder 2,37 tragen den Namen "Fraktale" (lateinisch "fractum" = gebrochen). Obwohl niemand die Phänomene dieser Dimensionen versteht, weiß man mittlerweile recht viel über sie. So ist beispielsweise bekannt, dass sich fraktale Geometrien selbst ähnlich sind. Auch die Berechnung von fraktalen Graphiken ist tatsächlich sehr einfach durchführbar. Das Apfelmännchen zum Beispiel berechnet sich aus der Formel:
,
(z und c sind komplexe Zahlen). Was dabei entsteht, wird im unteren Bild dargestellt, jedoch warum und wie dies geschieht, wird später erläutert.
3D-Darstellung!
Egal wo man mit der Thematik der Fraktalen auftritt, wird immer dieselbe Frage nach einem konkreten Nutzen dieses mathematischen Wissens laut. Ist das ganze nur Spielerei und Faszination oder gibt es tatsächlich eine Anwendung für eine Formel, die einen "Tintenfleck" berechnet? Hier seien einige Anwendungsbereiche genannt: Die Beschreibung von in der Natur auftretenden Muster wie z.B. Farnblätter, Blumenkohle und unzählige andere Pflanzen sind fraktal aufgebaut. Auch in den Fellen von Tieren und sogar im Gehirn des Menschen findet man einen fraktalen Aufbau. Eine einzigartige Anwendung stellen fraktale Geometrien bei der Berechnung von virtuellen Welten dar. Das Oberflächenmuster einer Holzwand, ein Wolkenhimmel, Bäume, Berge, die Oberfläche eines Sees und unzählige weitere Objekte lassen sich mit iterativen Formeln auf einfache Art beschreiben.
Fraktale werden auch dazu verwendet, Einzelaufnahmen und Videobilder auf Computern zu komprimieren. 1987 entdeckte der Mathematiker Dr. Michael F.Barnsley die Fraktale Transformierte, mit deren Hilfe sich in digitalisierten Fotografien automatisch fraktale Strukturen auffinden lassen. Diese Entdeckung brachte die fraktale Bildkomprimierung hervor, die bei einer Vielzahl von Multimedia- und anderen auf Bildern basierenden Computeranwendungen verwendet wird.
Das Wort Fraktal
stammt aus dem lateinischen und bedeutet dort "gebrochen"
(in der Medizin gibt es ein ähnliches Wort: Fraktur). Die von B.
B. Mandelbrot 1975 eingeführte Bezeichnung befasst sich mit
komplexen geometrischen Gebilden, sog. Fraktalen, wie sie ähnlich
in der Natur vorkommen (z. B. Verästelung der Blutgefäße,
Küstenlinie, Oberfläche eines Gebirges). Ein Fraktal
besitzt zwei wesentliche Eigenschaften: Selbstähnlichkeit
und gebrochene Dimension .
Selbstähnlichkeit bedeutet,
dass jeder Teil eines fraktalen Gebildes dem Ganzen geometrisch
ähnlich ist. Gebrochene Dimension heißt,
dass von der Ganzzahligkeit (z. B. 2 für die Ebene, 3 für
den Raum) abgerückt wird.
Beispiel einer Kurve mit
gebrochener Dimension ist die 1904 von H. von Koch beschriebene
Schneeflockenkurve (auch Kochsche
Kurve). Bei ihrer Konstruktion geht man von einem gleichseitigen
Dreieck aus, an das man an jeder Seite ein kleines gleichseitiges
Dreieck (Seitenlänge ein Drittel der ursprünglichen
Seitenlänge) in der Mitte der Seite ansetzt. Dadurch entsteht
ein sechszackiger Stern, mit dessen Seiten man in der gleichen Weise
verfährt. Da sich die Länge bei jedem Schritt um den Faktor
4/3 erhöht, wächst der Umfang ins Unermessliche, obwohl die
Kurve nur eine endliche Fläche umschließt. Der Kochschen
Kurve wird die fraktale Dimension 1,26 zugewiesen. Eine Prozedur zur
Animation der Kochkurve ist im Kapitel über Folgen von Ch.
Fisches zu finden:
Animation!
Ein weiteres Beispiel für ein Fraktal ist das Sierpinski-Dreieck . Dieses Dreieck lässt sich erhalten, wenn man in der Mitte eines Dreiecks wiederholt kleinere Dreiecke mit fortlaufend kleineren Seiten konstruiert. Theoretisch erhält man als Ergebnis eine Figur von endlicher Fläche, die aber einen Umfang von unendlicher Länge besitzt. In der mathematischen Sprache der Infinitesimalrechnung wird eine derartige Kurve nicht behandelt. Eine Animation des Sierpinski-Dreieckes liefert:
Animation!
Mandelbrot führte eine viel abstraktere Definition ein, als sie für die Elementargeometrie (Euklidische Geometrie) gilt. Wenn man die Größe eines Fraktals bestimmen will, muss gemäß dieser Definition die Dimension eines Fraktals als Exponent behandelt werden. Aus diesem Grund kann ein Fraktal nicht so behandelt werden, als ob es in einer, zwei oder jeder anderen ganzzahligen Dimension existiert. Man muss statt dessen bei der mathematischen Behandlung davon ausgehen, dass es eine gebrochene (fraktale) Dimension besitzt. Beispielsweise liegt die Dimension eines Gebirges zwischen zwei (einer Ebene) und drei (eines Körpers), das oben beschriebene Sierpinski-Dreieck hat die gebrochene Dimension 1,585. Auf diesem Aspekt werden wir nun genauer eingehen.
Gebrochene Dimension / Selbstähnlichkeit
Mandelbrot wurde einmal gefragt, wie genau das Ergebnis einer Messung sein würde, wenn man die Länge der Küste Großbritanniens von einem Flugzeug aus messen würde. Mandelbrot antwortete, dass das Ergebnis wahrscheinlich in keinster Weise der Realität entsprechen würde. Durch die Höhe des Flugzeuges würde kleine Buchten bei der Messung verloren gehen. Aber selbst wenn man die Küste ablaufen würde und immer gerade Stäbe mit einem halben Meter Länge aneinander legen würde, wäre das Ergebnis nur unwesentlich genauer. Selbst wenn man jedes Sandkorn vermessen würde, wäre das Ergebnis falsch, da es immer noch Einschnitte geben würde, die teilweise nicht einmal sichtbar sind und somit nicht berücksichtigt werden. Der Schluss, der sich daraus ziehen lässt, ist, dass die Küste von Großbritannien unendlich lang ist. Die Fläche des Landes ist jedoch trotzdem begrenzt. Wie kann es also kommen, dass ein Gebilde einen unendlich großen Umfang hat, jedoch eine endlich große Fläche besitzt?
Koch-Kurve.
Ein Modell für die Küste lieferte
dabei der Wissenschaftler Koch mit seiner Schneeflocke. Dabei wird
jede Seite eines gleichseitigen Dreieckes in drei Teile zerlegt. Das
Mittelteil jeder Seite wird herausgenommen und durch zwei Teile
gleicher Länge ersetzt (siehe folgende Animation aus drei
Bilder).
> koch1();
Animation!
Jede der Seiten hat
nun
ihrer ursprünglichen Länge, folglich
auch der Umfang. Entstanden ist dabei ein Stern, mit dessen Seiten
das Verfahren wiederholt wird. Dadurch, dass der Umfang mit jedem
Schritt auf
des vorhergehenden Wertes ansteigt, wird er
gegen Unendlich streben. Die Fläche des Dreiecks lässt sich
jedoch begrenzen, indem man einen Kreis um das Ursprungsdreieck
zieht, mit dem Durchmesser der Höhe des Dreieckes. Der
Mittelpunkt des Kreises liegt in der Mitte des Dreieckes. Durch die
eben beschriebene Vorgehensweise kommt man zur Kochschen Kurve, die
durch die Prozedur Umfang
aus dem Paket Kochkurve
realisiert wird (siehe auch Kapitel Folgen):
> with(Kochkurve):
> Umfang;
Das Prinzip, nach
dem fraktale Gebilde aufgebaut sind, ist stets das Gleiche: Eine
Formel oder Konstruktionsvorschrift wird immer wieder mit ihrem
eigenen Resultat "gefüttert". Gehen wir von einem
Dreieck der Seitenlänge a aus,
dann gilt für die Anzahl der Seiten Anzahl(n) ,
dem Umfang Umfang(n,a) und die
Fläche(n,a) die folgenden
Formeln, wenn n die Anzahl der
Iterationen darstellt:
> Anzahl:=(n)->
3*4^(n-1);
> Umfang:=(n,a)-> a*3*(4/3)^(n-1);
> Flaeche:=(n,a)-> a^2*sqrt(3)*(1/4+(3/4)^3*Sum((2/3)^(2*i),i = 2 .. n));
In der folgenden
Tabelle werden die oben beschriebenen Größen für ein
Dreieck der Seitenlänge von a=20 mm als Funktion von n
angegeben:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Man erkennt,
dass mit der Anzahl der Iterationen n sowohl
die Linienzahl als auch der Umfang rasch anwächst, aber die
Fläche immer kleiner 280 bleibt. Mit Maple berechnen wir die
Grenzwerte für
:
> Limit(
'Anzahl(n)', n=infinity )=limit( Anzahl(n), n=infinity );
> Limit( 'Umfang(n,20)', n=infinity )=limit( Umfang(n,20), n=infinity );
> Limit( 'Flaeche(n,20)', n=infinity )=evalf(limit( Flaeche(n,20), n=infinity ));
Sierpinski-Dreieck. Eine weitere fraktale Geometrie ist das Sierpinski-Dreieck: Dabei werden für ein Dreieck ABC die drei Seitenmitten bestimmt. Über diese drei Seitenmitten wird ein innenliegendes Dreieck definiert, welches aus dem Dreieck ABC herausgeschnitten wird. Gleiches kann man dann mit den verbleibenden drei Dreiecken machen. Der Umfang des Dreiecks wird dadurch größer, seine Fläche jedoch kleiner. Nach mehrmaliger Fortführung dieser Vorgangs stellt man fest, dass die Fläche des Gebildes gegen Null geht, während der Umfang gegen Unendlich strebt.
Die Prozedur
sierpinski
visualisiert die
graphische Konstruktion des Sierpinski-Dreiecks und erzeugt eine
Animation, die die iterativen Schritte zeigt. Der Aufruf erfolgt
durch sierpinski (
[x1, y1] ,
[x2, y2] , [x3, y3]
, iteration );
wobei [x1, y1] , [x2, y2]
, [x3, y3] die
Eck-Koordinaten des Dreiecks sind und iteration für
die Anzahl der Iterationen steht. Ein Beispiel für den Aufruf
der Prozedur bei einer Iterationstiefe von 6 lautet:
>
sierpinski([0, 0], [2, 4], [4, 0], 6);
Animation!
Die Eigenschaften, einen unendlich großen Umfang zu haben, und dabei keine oder eine beschränkte Fläche einzunehmen, erfüllen keine unserer normalen ein-, zwei- oder dreidimensionalen Gebilde. Deshalb bedient man sich zunächst einer anderen Darstellung der Dimension. Nimmt man eine Strecke mit der Dimension D=1 und teilt diese in n gleichgroße Teile, so entspricht die Länge der einzelnen Stücke gleich 1/n der ursprünglichen Strecke. Das Verhältnis zwischen Gesamtstrecke und Teilstrecke ist also
=
.
Das gleiche
Verfahren wendet man nun auf ein Rechteck an, welches im Gegensatz
zur Strecke zweidimensional ist, somit ist D=2. Auch hier werden die
Seiten in n gleiche Teile zerlegt. Dabei entstehen n*n kleine
Rechtecke, deren Seitenlänge gleich
der ursprünglichen Seitenlänge ist.
Das Verhältnis von Gesamtstrecke zur Teilstrecke r ist auch hier
wieder n. Um von der Anzahl der Flächen ( n*n ) wieder auf das
Verhältnis r zu kommen, muss also die Quadratwurzel gezogen
werden. Es lässt sich daher folgende Gleichung aufstellen:
>
r=n^(1/D);
D entspricht der
Dimension, n der Anzahl der verbleibenden Teilstrecken (Teilflächen)
und r entspricht dem Verhältnis der Gesamtstrecke zur
Teilstrecke. Man hat also eine Gleichung gefunden, die man nach der
Dimension D umstellen kann:
> D=solve(r=n^(1/D),D);
Dimension der
Kochkurve: Die obige Gleichung
wendet man nun auf die Kochkurve an. Dabei ist die Anzahl der
Teilstücke, die aus einem entstehen, stets vier: n=4. Das
Teilstücke ist hier jedoch 1:3 des Gesamten. Deshalb gilt r=3.
Damit ist
> D=evalf(ln(4)/ln(3));
Es ergibt sich eine Dimension von 1,26 für die Kochkurve.
Dimension des
Sierpinski-Dreieckes: Analog der
Kochkurve bestimmt man die Dimension für das Sierpinski-Dreieck:
Die Anzahl der verbleibenden Teilflächen nach dem Herausnehmen
des Mitteldreieckes ist n=3; die Länge der Dreickecksseiten ist
halb solang wie die des Gesamten, also r=2. Damit ist
>
D=evalf(ln(3)/ln(2));
Auch hier ergibt sich also eine gebrochene Dimension!
Bei den Fraktalen
kommt man ohne die komplexen Zahlen aus. Das ändert sich, sobald
man die faszinierende Struktur der Mandelbrot- und Julia-Mengen
verstehen will. Dazu benötigen wir im wesentlichen die
Darstellung der komplexen Zahlen
bestehend aus einem Realteil a
und Imaginärteil b ,
sowie dem Betrag der komplexen Zahl
,
der den Abstand zum Ursprung angibt. Jede komplexe Zahl kann man sich
daher als einen Punkt der komplexen Ebene vorstellen. Die komplexe
Ebene besteht aus überabzählbar vielen derartigen Punkten.
Ihre Real- und Imaginärteile können positiv oder negativ,
ganzzahlig oder nicht ganzzahlig, rational oder irrational
sein.
Innerhalb der komplexen Zahlen können wir den
Iterationsprozess beschreiben, der die Mandelbrot- und Julia-Mengen
erzeugt. Beginnen wir mit dem algebraischen Ausdruck
,
dabei ist z eine komplexe Variable und c eine feste komplexe Zahl.
Setzen wir zunächst z = 0 =
.
Das Quadrat von z ist dann immer noch 0 und die Addition von c ergibt
c. Dieses Resultat setzen wir im nächsten Schritt für die
Variable z in den Ausdruck
ein. Als neue Summe ergibt sich dann
.
Das setzen wir wieder ein und erhalten
.
So fahren wir fort, indem wir immer das Ergebnis des letzten
Schrittes auf der rechten Seite der Vorschrift für z
einsetzen:
Führt man diese
Iteration für bestimmte Werte von c durch, so passieren seltsame
Dinge. Nehmen wir zum Beispiel für die komplexe Zahl c=
,
so erhalten wir:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bei den einzelnen
Iterationsschritten können Real- und Imaginärteil wachsen,
fallen oder ihre Vorzeichen wechseln. Wenn wir diese Iteration
fortsetzen, dann werden die Beträge der komplexen Zahlen für
manche c größer, für
andere kleiner. Die komplexe Folgen
, die für gegebenes c im
Verlaufe der beschriebenen Iteration eine gewisse Größe
erreichen, wachsen danach sehr schnell weiter und überschreiten
bald die größte in einem Computer darstellbare Zahl.
Welchen Verlauf die Iteration nimmt hängt im wesentlichen vom
Parameter c ab. Im folgenden werden wir an 3 Beispielen zeigen, wie
das Verhalten qualitativ von c abhängen kann. Dazu verwenden wir
die Prozedur iteration
. Durch diese Prozedur
werden die einzelnen Iterationsschritte von
graphisch dargestellt. Der Aufruf erfolgt durch
iteration(c= xxx ,
z0= yyy ,
n= zzz );
dabei ist xxx
der konstante komplexe Parameter c, yyy
der komplexe
Startwert
und zzz gibt
die Anzahl der Iterationen an.
Das folgende
Beispiel zeigt den Aufruf der Prozedur für
und
mit 70 Iterationen
>
iteration(c=0.2+0.5*I, z0=0, n=70);
Bei diesem Beispiel bleibt der Betrag immer kleiner 1. Auch nach n Wiederholungen wird der Betrag nicht größer, sondern geht gegen Null.
Beispiel 2:
und
:
> iteration(c=0.35+0.37*I,
z0=0, n=60);
Auch in diesem Beispiel bleibt der Betrag nach 60 Iterationen noch beschränkt. Wählt man jedoch 70 Iterationen erkennt man, dass nun doch der Betrag anfängt rasch anzuwachsen und für 100 Iterationen erhält man einen Floating Point Overflow.
3. Beispiel:
und
:
> iteration(c=0.4-0.7*I,
z0=0, n=7);
Im Gegensatz zu Beispiel 1 und 2 strebt der Betrag der Folgenglieder sehr schell gegen Unendlich.
Für die meisten komplexen Parameter c divergiert die Iterationsfolge, d.h. die Beträge gehen gegen Unendlich. Zum Glück kann man in unserem Zusammenhang aber alle Zahlen ignorieren, die unter der Iteration nach Unendlich divergieren:
Die Mandelbrot-Menge
besteht gerade aus der Menge von c-Werten, bei denen die
Iterationswerte nach einer bestimmten Anzahl von Durchgängen
(z.B. 100) einen vorgegebender Betrag (z.B. 2) noch nicht
überschritten haben . Dabei
startet die Iteration immer bei
. Der Realteil
ihrer Elemente liegt im Bereich zwischen -2 und 1, der
Imaginärteil zwischen -1,5 und 1,5
. Die obige Vorschrift liefert für eine
geeignete Farbskalierung das folgende Bild. Die Beschreibung dieser
Menge ist der Gegenstand des nächsten Abschnitts.
3D-Darstellung!
Die Julia-Menge besteht
bei fest vorgegebenem komplexen Parameter c aus den
-Werten, bei
denen die Iteration nach einer bestimmten Anzahl von Durchgängen
(z.B. 100) einen vorgegebender Betrag (z.B. 2) noch nicht
überschritten haben. Die
Beschreibung dieser Menge ist der Gegenstand des 5. Abschnitts.
Wenn man die Bilder in der komplexen Zahlenebene betrachtet, die aussehen wie ein Apfel oder wie eine Acht mit Warzen, vermutet man, dass sich dahinter ein riesiger Aufwand an Arbeit und Mathematik verbirgt. Dabei ist die Formel
das ganze Geheimnis,
das hinter den Bildern steckt. Die einzige Besonderheit dabei ist,
dass die Variablen nicht für reelle, sondern für komplexe
Zahlen stehen. Der Startwert der Iteration
ist bei der Mandelbrot-Menge immer Null, die
Konvergenz hängt nur vom komplexen Parameter c ab.
Die Prozedur fraktaltest
bestimmt zu vorgegebenem
Betrag b die Iterationsnummer n
, bei der das Folgenglied
betragsmäßig größer als b
wird. Der Aufruf erfolgt durch fraktaltest(c=
c0 , z=z0,
n=n0, b=b0); wenn c0
der konstante komplexe Parameter c, z0
der Startwert der Iteration, n0
die maximale Anzahl der Iterationen und b0
der maximale Betrag für die
Abbruchbedingung ist. Ein Beispiel für
den Aufruf der Prozedur ist:
>
fraktaltest(c=-0.7+0.3*I, z=0, n=100,
b=100);
D.h. nach 26 Iterationen überschreitet der Folgenwert den Betrag b=100. Es lässt sich so feststellen, dass das Verhalten der z-Werte ganz erheblich vom entsprechenden c-Wert abhängt. Die c -Werte, bei denen die Iterationswerte nach einer bestimmten Anzahl von Durchgängen (z.B. 100) ein vorgegebender Betrag (z.B. 2) noch nicht überschritten haben, gehören zur Mandelbrot-Menge.
Entstehung
der Computerbilder:
Alle Punkte werden farbig dargestellt. Die Farbe hängt davon ab, wieviele Durchläufe bis zum Erreichen des vorgegebenen Betrags nötig sind.
Die Prozedur
mandelbrot
visualisiert die
Mandelbrot-Menge und stellt sie dreidimensional graphisch dar. Der
Aufruf erfolgt durch mandelbrot(x =
xmin..xmax ,
y= ymin..ymax ,
n= iteration
, b =
betrag ,
grid= [m,n] );
Dabei stellen xmin, xmax den
minimalen und maximalen Realteil und ymin, ymax den
Imaginärteil dar, iteration entspricht
der maximalen Anzahl von Iterationen und betrag ist
der Betrag für die Abbruchbedingung. grid gibt
die Auflösung der Punkte in der komplexen Zahlenebene an.
(Achtung: m,n >40 bedeutet
hohe Rechenzeit und großen Speicherbedarf!!) Ein Beispiel
für den Aufruf der Prozedur ist:
>
mandelbrot(x=0.3..0.5, y=0.4..0.6,
n=50, b=50, grid=[40,40]);
3D-Darstellung!
Die unterschiedliche Farbskalierung entspricht der Iterationstiefe. Für rot dargestellte Punkte ist der vorgegebene Betrag schon sehr bald erreicht. Für lila dargestellte Punkte ist nach 50 Iterationen der maximal Betrag von b=50 noch nicht erreicht.
Zur Bildergalerie: Hier sind für vorgegebene Parameter-Bereiche die Mandelbrot-Menge mit hoher Auflösung dargestellt.
Sowohl die
Berechnung der Mandelbrot- als auch die der Julia-Mengen beruht auf
der Iteration
. Bei der Mandelbrot-Menge ist der Startwert
der Iteration immer
und das Konvergenzverhalten hängt nur vom
komplexen Parameter c ab. Bei der Julia-Menge hingegen ist c ein
vorgegebener fester Wert. Der Startwert
wird nun variiert; das Konvergenzverhalten
hängt von
ab. Es gibt zwei Klassen, zusammenhängende
Julia-Mengen und nicht zusammenhängende Punktwolken, die auch
als Cantor-Staub bezeichnet werden. Die zusammenhängenden
Julia-Mengen kann man durch eine einfache Variation der Prozedur
mandelbrot
erhalten, indem eben
nicht mehr
gesetzt wird, sondern
in der Prozedur variiert wird.
Im Vergleich zur
Darstellung der Mandelbrot-Menge wird in der Prozedur julia
für die Darstellung
der Julia-Menge c konstant gehalten und
variiert. Der Aufruf erfolgt durch
julia(x =
xmin..xmax ,
y =
ymin..ymax ,
c = c0
, n =
iteration ,
b = betrag
, grid= [m,n]
); Dabei
stellen xmin, xmax den minimalen
und maximalen Realteil und ymin, ymax den
Imaginärteil dar, c0 ist der
komplexe Parameter c, iteration entspricht
der maximalen Anzahl von Iterationen und betrag ist
der Betrag für die Abbruchbedingung. grid gibt
die Auflösung der Punkte in der komplexen Zahlenebene an.
(Achtung: m,n >40 bedeutet
hohe Rechenzeit und großen Speicherbedarf!!) Ein Beispiel
für den Aufruf der Prozedur ist:
>
julia(x=-2..2, y=-2..2, c=0.6+0.7*I,
n=30, b=100, grid=[40,40]);
3D-Darstellung!
Jeder Punkt der Mandelbrot-Menge ist zugleich die Konstante c für die entsprechende Julia-Menge. Die Farben geben wieder Aufschluss darüber nach wieviel Iterationen der vorgegebene Betrag erreicht wird.
Zur Bildergalerie: Hier sind für vorgegebene Parameter c die Julia-Menge mit hoher Auflösung dargestellt.
Eine nicht zusammenhängende Julia-Menge: Der Cantor-Staub
Der Mathematiker
Georg Cantor nahm das abgeschlossene Intervall [0,1] auf der reellen
Achse und wendete folgende Algorithmus darauf an:
-
Teile das Intervall in 3 gleiche Teile
-
Nimm das mittlere Stück heraus
-
Teile die verbleibenden 2 Intervalle wiederum in drei gleiche Teile
- Nimm das jeweils mittlere Stück
heraus
- usw.
Die Prozedur cantor
stellt den Cantor-Staub
graphisch dar. Man beachte, dass durch die geringe Auflösung ab
N=5 kein Unterschied mehr zu erkennen ist. Setzt man jedoch den view
-Parameter z.B. auf view
=[0..0.11, -2..-7.1] kann man die Iteration
noch weiter verfolgen. Der Aufruf erfolgt durch cantor(N
, plotoption s
); Dabei
steht N für die Anzahl der
Iterationen und plotoptions für
optionale Plotparameter. Für 7 Iterationen lautet der Aufruf
> cantor(7);
In der oberen
Abbildung ist das erste Intervall von der Länge 1; nach unten
nehmen die Iterationen jeweils um 1 zu. Zwischen den letzten beiden
Reihen kann man schon keinen Unterschied mehr feststellen: Durch die
Vergrößerung des x -Bereichs
sind die Iterationsschritte bis 7 getrennt zu verfolgen:
>
cantor(7, view=[0..0.11,1..-7.1]);
Die Dimension des Cantor-Staubs beträgt mit N=2 und r=3 nach der in Kap. 2 beschriebenen Formel D = log(2)/log(3) = 0.6309.
Literatur und weitere Informationsquellen
Bausteine des
Chaos: Fraktale, Klett-Cotta / Springer-Verlag
Computer-Kurzweil, Spektrum
der Wissenschaft
Computer-Kurzweil
2, Spektrum der Wissenschaft
Bertelsmann
Discovery '97 Multimedia CD-ROM, Bertelsmann Lexikon Verlag
Internet-Seiten
http://spanky.triumf.ca/www/fractint/FRACTINT.html
http://mgw.dinet.de/Physik/Fraktale/Fraktale.html
http://mgw.dinet.de/Physik/Neuigkeiten.html
http://tqd.advanced.org/3703/