Aufgaben - atfd
Aufgaben - atfd
Aufgaben - atfd
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Bildentstehung bei Julia-, Mandelbrotmenge und<br />
Newtonfraktal<br />
Inhaltsverzeichnis<br />
Christoph Reinisch<br />
07.06.2011<br />
1 Einleitung 2<br />
2 Juliamenge 5<br />
3 Mandelbrotmenge 10<br />
4 Newtonfraktal 11<br />
1
1 Einleitung<br />
Wahrscheinlich hat jeder schon Bilder von Julia- und Mandelbrotmengen gesehen. Hier werden wir uns<br />
mit der dahinterliegenden Mathematik beschäftigen.<br />
Abbildung 1: Juliamenge mit c=−0.712+0.241i<br />
Wir wiederholen zu Beginn kurz die komplexen Zahlen und die Iteration, außerdem führen wir Funktionen<br />
mit komplexem Argument ein.<br />
1.1 Komplexe Zahlen<br />
Eine kurze Zusammenfassung der Rechenregeln mit komplexen Zahlen:<br />
Benötigte Rechenregeln<br />
Wir verwenden 2 komplexe Zahlen z1 = a+bi und z2 = c+di, dann gelten folgende Rechenregeln:<br />
Addition: z1+ z2 =(a+bi)+(c+di)=(a+c)+(b+d)i (1)<br />
Multiplikation:<br />
Betrag:<br />
(a+bi)·(c+di)=(ac−bd)+(ad+ bc)i<br />
<br />
|z1|= a<br />
(2)<br />
2 + b2 <br />
(3)<br />
Abstand: |z1− z2|= (a−c) 2 +(b−d) 2 (4)<br />
Um davon ein Bild zu bekommen, kann man komplexe Zahlen mit Punkten im 2-dimensionalen kartesischen<br />
Koordinatensystem identifizieren:<br />
Komplexe Zahlenebene<br />
Ist z=a+bi eine komplexe Zahl, dann bezeichnen wir a als Realteil Re(z) von z und b als Imaginärteil<br />
Im(z) von z und identifizieren die x-Achse mit Re(z) und die y-Achse mit Im(z). Die Zahlenebene<br />
bezeichnen wir dann als komplexe oder gaußsche Zahlenebene.<br />
2
Dadurch kann man die Rechenoperationen in C auch geometrisch interpretieren:<br />
• Die Addition entspricht der gewöhnlichen Vektoraddition.<br />
• Die Multiplikation entspricht einer Drehstreckung.<br />
• Die Betragsbildung entspricht dem Abstand vom Nullpunkt<br />
z1<br />
−1<br />
2<br />
1<br />
−1<br />
Im<br />
z ′ 2<br />
z1+z2<br />
z1 z2<br />
z3 = z1+ z2<br />
<br />
z ′<br />
1<br />
z2<br />
1 2 3 4<br />
Re<br />
Abbildung 2: Geometrische Interpretation der Addition<br />
−3<br />
z3 = z1z2<br />
<br />
|z3|=3.5<br />
−2<br />
−1<br />
z1<br />
3<br />
2<br />
1<br />
Im<br />
|z1|=2.2<br />
135 ◦<br />
116.6 ◦<br />
|z2|=1.6<br />
18.4 ◦<br />
z2<br />
Re<br />
1 2<br />
Abbildung 3: Geometrische Interpretation der Multiplikation<br />
Aufgabe 1.1. Multipliziere (1−i)(1+i) und (1+i)(2+2i), und zeichne die Zahlen in die komplexe<br />
Zahlenebene.<br />
1.2 Funktionen mit komplexem Argument<br />
Im Komplexen lässt sich mit Funktionen, zumindest für Polynome, für die wir uns hier interessieren,<br />
genauso rechnen wie in R.<br />
3
Beispiel 1.2. f(z)=z 2 : f(1)=1; f(1−i)=(1−i)(1−i)=−2i<br />
Aufgabe 1.3. Berechne für die Funktion f(z) = z 2 + z die Funktionswerte für z = 1, z = 1+i, z = 2i<br />
und z=1−i!<br />
Auch die Ableitungsregeln bleiben, zumindest für Polynome, dieselben.<br />
1.3 Iteration<br />
Unter einer Iteration versteht man die mehrmalige Anwendung einer Funktion auf das Ergebnis der<br />
letzten Anwendung.<br />
Beispiel 1.4. Newtonverfahren: xn+1 = xn− f(xn) mit f(x) = p(x)<br />
p ′ (x) wobei p(x) eine Polynomfunktion<br />
ist. Dieses Verfahren wird zur Bestimmung von Nullstellen von Funktionen angewendet.<br />
Aufgabe 1.5. Führe die ersten 4 Iterationen des Newtonverfahrens für p(x)=−x 3 +1 mit dem Startwert<br />
x0 = 0.5 aus.<br />
4
2 Juliamenge<br />
Bevor wir definieren, was eine Juliamenge ist, sehen wir uns an, was bei einer einfachen Funktion mit<br />
der Iteration passiert! Öffne dazu GeoGebra!<br />
Aufgabe 2.1. Gegeben ist die Funktion f(z)= z 2 und die Iteration zn+1 = f(zn), also zn+1 = z 2 n .<br />
1. Gib in die Eingabezeile z0 = 0.8+0.1i (Tipp: Gib z_0=0.8+0.1 i ein!) ein. GeoGebra weiß<br />
automatisch, dass du einen Punkt in der komplexen Zahlenebene meinst, wie du der Algebra-<br />
Ansicht entnehmen kannst.<br />
2. Führe die erste Iteration aus. Gib dazu z1 = z2 0 in die Eingabezeile ein. (Tipp: Gib z_1=z_0^2<br />
ein!)<br />
3. Verwende die Werkzeug Verschiebe Zeichenblatt und Vergrößere um ungefähr den Zahlenbereich<br />
[-2,2] auf der reelen Achse (x-Achse) einzustellen.<br />
4. Führe noch 5 weitere Iterationen auf die selbe Weise wie in 2) durch. (Tipp: z2 = z2 1 , . . . )<br />
5. Sieh dir nun die Punkte z0 bis z6 an, was stellst du fest? (Notiere hier!)<br />
6. Verschiebe den Punkt z0. Wie verändert sich die Iteration? Was stellst du fest?<br />
7. Gib in die Eingabezeile x 2 + y 2 = 1 ein. Es erscheint ein Kreis mit Radius 1 - kannst du deine<br />
Vermutung dadurch präzisieren? (Tipp: Stelle dazu z0 auf z.B.: 0.6+0.8i ein.)<br />
8. Speichere die GeoGebra-Datei unter Julia-0-0.ggb<br />
In der letzten Aufgabe haben wir festgestellt, dass die Iteration für Startwerte (z0) innerhalb des Kreises<br />
gegen 0+0i strebt, für Startwerte am Kreis bleiben die Iterierten am Kreis und außerhalb streben sie<br />
gegen Unendlich. Das kann man für diese einfache Funktion auch sehr leicht begründen. Überlege ein<br />
Argument (Tipp: Beträge ansehen!):<br />
Definition 2.2. Der Rand der Menge der Startpunkte, die bei der Iteration einer rationalen Funktion<br />
f(z)= p(z)<br />
q(z)<br />
z ∈ C, p(z) und q(z) Polynomfunktionen ohne gemeinsamen Teiler, nicht gegen Unendlich streben, ist<br />
die Julia-Menge. Die Menge innerhalb (falls vorhanden) und außerhalb der Juliamenge gehören zur<br />
sogenannten Fatou-Menge.<br />
Bemerkung 2.3. In Aufgabe 2.1 gehören somit alle Punkte am Kreis zur Julia-Menge. Die Punkte<br />
innerhalb und außerhalb zur Fatou-Menge.<br />
5
Bemerkung 2.4. Man sagt auch, dass bei Punkten, die in der Fatou-Menge liegen, eine kleine Änderung<br />
des Startwertes zu einem ähnlichen Verhalten der Iteration führt.<br />
Bei Punkten in der Julia-Menge führt hingegen eine kleine Änderung des Startwertes zu einem komplett<br />
anderen Verhalten.<br />
Aufgabe 2.5. Prüfe Bemerkung 2.4 in Julia-0-0.ggb für die einfachste dir bekannte Julia-Menge (Kreis)<br />
nach! Um nur Punkte am Kreis zuzulassen, kannst du Punkt[c] als Wert bei z0 eintragen (Rechtsklick<br />
auf z0 - Eigenschaften), falls der Kreis nicht c heißt, musst du hier den Namen des Kreises verwenden).<br />
Um später wieder einen frei beweglichen Punkt zu haben, trägst du beim Wert wieder eine komplexe<br />
Zahl ein.<br />
Bemerkung 2.6. Die meisten uns bekannten Bilder entstehen aus der Iteration der Funktion<br />
f(z)=z 2 +c, z∈C, c∈C konstant. In Aufgabe 2.1 war c=0. Nur beim Newtonfraktal werden wir hier<br />
eine rationale Funktion vorfinden, bei der q(z) ungleich 1 ist.<br />
Wir werden uns jetzt ansehen, wie die Julia-Menge für andere c∈C aussieht. Zuerst werden wir uns<br />
aber mit der Färbung beschäftigen.<br />
Achtung: Wenn du in GeoGebra die Spur eines Objektes anzeigen lässt, verschwindet diese jedes<br />
mal wenn du die Ansicht aktualisierst (z.B.: Zoomen, Verschieben des Zeichenblattes). Um die Spur<br />
zu sichern, verwendest du am Besten Bearbeiten - Grafik-Ansicht in Zwischenablage. Die Spur wird<br />
auch beim Export in ein Bildformat gespeichert (Datei - Export), allerdings verschwindet die Spur im<br />
Anschluss an den Export.<br />
Aufgabe 2.7. Öffne GeoGebra und blende die Tabellen-Ansicht ein (Ansicht - Tabellenansicht).<br />
1. Gib in die Eingabezeile x2 + y2 = 1 ein.<br />
2. Gib in die Eingabezeile z0 = 0.8+0.1i ein<br />
3. Gib in der Tabellen-Ansicht = z2 0 (=z_0^2) in die Zelle A1 ein, es erscheint ein neuer Punkt mit<br />
dem Namen A1. Dieser entspricht z1 aus Aufgabe 2.1.<br />
4. Gib=A1 2 in die Zelle A2 ein.<br />
5. Markiere die Zelle A2 und ziehe mit der Maus an dem kleinen Quadrat bis Zeile 20. Es werden<br />
alle Zellen bis A20 automatisch ausgefüllt.<br />
6. Blende die Beschriftung der Punkte A11-A20 aus: Markiere die Zellen A11-A20 in der Tabellenansicht,<br />
blende mit Rechtsklick - Eigenschaften die Eigenschaften ein und entferne das Häkchen<br />
bei Beschriftung anzeigen.<br />
7. Wenn z0 außerhalb des Kreises liegt, stehen in den Zellen ab A10 oder A11 Fragezeichen, das<br />
heißt, dass der Wert nicht definiert ist, weil die Zahlen schon zu groß sind. Wir werden diesen<br />
Umstand nützen um für unseren Startwert z0 abhängig vom Verhalten der Iteration eine Farbe<br />
einzustellen.<br />
8. Gib in die Eingabezeile IstDefiniert[A20] ein. Es erscheint ein Objekt a, das angibt, ob<br />
wir nach unserem letzten Iterationsschritt noch einen definierten Wert haben.<br />
9. Klicke mit der rechten Maustaste auf z0 und auf Eigenschaften. Wähle die Registerkarte Erweitert<br />
und gib bei Rot Wenn[a,0,255] und bei Blau Wenn[a,255,0] ein.<br />
10. Schalte die Spur von z0 ein (Rechtsklick - Spur ein)<br />
11. Ziehe den Punkt über den Rand des Kreises. Versuche mit der Spur des Punktes einen kleinen<br />
Bereich am Rand des Kreises auszumalen.<br />
6
12. Blende den Kreis aus, du siehst die Grenze zwischen Rot und Blau kreisförmig vor dir. Genau<br />
diese Grenze ist die Julia-Menge. Die Grenze ist mit der Spur gezeichnet und daher etwas „unscharf“,<br />
du kannst die Punktgröße verringern um eine „genauere“ Grenze zu erhalten, dann dauert<br />
aber leider auch das Einfärben länger. (Rechtsklick auf z0 - Eigenschaften - Darstellung)<br />
13. Speichere die Datei unter dem Namen Julia-Iteration.ggb<br />
Wir wissen jetzt, wie wir abhängig vom Verhalten der Iteration verschiedene Farben für den Startwert<br />
einstellen. Wir werden nun die Funktion f(z)=z 2 um eine Konstante c∈C zu f(z)=z 2 + c erweitern<br />
und beobachten, wie sich die Juliamenge verändert.<br />
Aufgabe 2.8. Falls du die Datei Julia-Iteration.ggb nicht mehr offen hast, öffne sie.<br />
1. Lösche den Kreis.<br />
2. Gib in die Eingabezeile c=−0.712+0.241i ein.<br />
3. Verändere die Zellen A1-A20 so, dass die entstehenden Punkte das Ergebnis der Iteration der<br />
Funktion f(z)= z 2 + c sind.<br />
4. Drücke Strg-F um die alte Spur zu löschen.<br />
5. Schalte unter Einstellungen - Punktfang den Punktfang aus.<br />
6. Bewege wieder den Punkt z0 und versuche die Grenze zwischen rot und blau zu finden. Wenn du<br />
diese Grenze gefunden hast, versuche mit der Spur des Punktes ein Stück der Grenze „auszumalen“.<br />
7. Speichere die Datei.<br />
Du wirst feststellen, dass nun die Grenze kein Kreis mehr ist und man sich durchaus ein fraktales Gebilde<br />
„einbilden“ könnte.<br />
In Abbildung 4 siehst du das Ergebnis meiner Malaktivitäten - dein Ergebnis kann natürlich etwas<br />
anders aussehen.<br />
Abbildung 4: GeoGebra Julia-Fraktal<br />
Bemerkung 2.9. Tatsächlich sind die Julia-Mengen für die Funktion f(z) = z 2 + c, für fast alle c∈C<br />
Fraktale. Die einzigen bekannten Werte für c, für die die Julia-Menge kein Fraktal ist, sind c=0(Kreis)<br />
c=−2.<br />
Aufgabe 2.10. Versuche nun andere Werte für c zu finden, bei denen du einen fraktalen Rand (die Julia-<br />
Menge) finden kannst. Das scheint nicht für alle Werte möglich zu sein. Kannst du eine Bedingung<br />
finden, die für c auf jeden Fall erfüllt sein muss, damit die Iteration nicht gegen Unendlich strebt?<br />
Tipp: Interessante Julia Mengen entstehen z.B. mit c=i, c=−0.123+0.745i (ein Hasen-Fraktal) und<br />
c=−0.75.<br />
7
Wie entstehen aber nun mehr als 2 Farben?<br />
Aufgabe 2.11. Falls du die Datei Julia-Iteration.ggb nicht mehr offen hast, öffne sie.<br />
1. Speichere die Datei unter dem Namen Julia-Faerbung.ggb<br />
2. Gib in die Zelle B1 =abs(A1) ein und fülle die Zellen bis B20 automatisch aus.<br />
3. Markiere die Zellen B1 bis B20 und erzeuge aus den Zahlen eine Liste (Rechtsklick - Liste erzeugen)<br />
4. Gib in die Eingabezeile ZähleWenn[x
Abbildung 5: Julia-Menge mit c=0.5+0.5i<br />
Abbildung 6: Julia-Menge mit c=−0.5+0.5i<br />
9
3 Mandelbrotmenge<br />
Die Mandelbrotmenge wurde nach Benoît Mandelbrot benannt und ist eine fraktal erscheinende Menge.<br />
Abbildung 7: Die Mandelbrotmenge<br />
Definition 3.1. Die Mandelbrotmenge ist die Menge aller c∈C, deren Julia-Menge der Iteration zn+1=<br />
z2 n + c zusammenhängend ist.<br />
Dazu gleichwertig ist folgende Definition:<br />
Definition 3.2. Die Mandelbrotmenge ist die Menge aller c∈C, für welche die Iteration zn+1 = z2 n + c<br />
mit dem Startwert z0 = 0 nicht gegen Unendlich strebt.<br />
Aufgabe 3.3. Mit der zweiten Definition haben wir auch schon eine Idee, wie wir die Färbung der<br />
Mandelbrotmenge in GeoGebra simulieren können.<br />
1. Öffne die Datei Julia-Faerbung.ggb.<br />
2. Speichere die Datei unter dem Namen Mandel-Faerbung.ggb<br />
3. Setze z0 auf 0+0i und schalte die Spur aus.<br />
4. Blende die Punkte A1-A20 aus.<br />
5. Versuche selbst die Farbe des Punktes c in Abhängikeit der Iteration so einzustellen, dass du<br />
anschließend mit eingeschalteter Spur den Umriss der Mandelbrotmenge „malen“ kannst. (Tipp:<br />
Das funktioniert änlich wie in Aufgabe 2.7 beim Punkt z0.)<br />
10
4 Newtonfraktal<br />
Definition 4.1. Newtonfraktale sind Juliamengen, bei der für die Funktion f(z) aus Definition 2.2 die<br />
Newtoniteration für p(z) verwendet wird. Also:<br />
f(z)=z− p(z)<br />
p ′ (z)<br />
Wir wissen, dass wir mit dieser Iteration die Nullstellen von p(z) finden, wenn der Startwert „nahe“<br />
genug bei dieser liegt. Entfernen wir uns von dieser Nullstelle, können wir nicht mit Sicherheit sagen, ob<br />
und gegen welche Nullstelle die Iteration strebt. Abhängig davon, gegen welche Nullstelle die Iteration<br />
strebt, bekommt der Startwert eine andere Farbe. Zusätzlich könnte man wieder einen Farbton abhängig<br />
von der Geschwindigkeit einstellen, mit der der Startwert konvergiert.<br />
Um uns die Farbgebung anzusehen, verwenden wir wieder GeoGebra. Als p(z) verwenden wir 1−z 3 ,<br />
somit ist p ′ (z)=−3z 2 . InRhätten wir die Nullstelle x0= 1, das ist auch gleich die erste komplexe Nullstelle<br />
z1 = 1+0i (Achtung: Hier darfst du z1 nicht mit dem Wert nach der ersten Iteration verwechseln,<br />
das hier ist eine Nullstelle von p(z)). Die weiteren Nullstellen sind dann um 120 ◦ und 240 ◦ weiter am<br />
Einheitskreis also: z2 =−1/2−<br />
√ 3<br />
2 i und z3 =−1/2+<br />
√ 3<br />
2 i.<br />
Aufgabe 4.2. Öffne GeoGebra und blende die Tabellen-Ansicht ein.<br />
1. Gib in A1 z_n , in B1 p(z_n) , in C1 p’(z_n) und in D1 z_n+1 ein.<br />
2. Gib in A2 0.5 + 0.2i ein. Es erscheint der Punkt A2 auf der Zeichenfläche.<br />
3. In B2 gibst du =1 - A2^3 ein. Versuche C2 und D2 selbständig auszufüllen.<br />
(Tipp: p ′ (z)=−3z 2 , GeoGebra weiß, wie man komplexe Zahlen dividiert)<br />
4. D2 wird das neue zn: gib =D2 in A3 ein.<br />
5. Fülle die Zellen B3, C3, D3 durch Markieren der Zellen B2-D2 und Ziehen am kleinen Quadrat<br />
automatisch aus.<br />
6. Markiere die Zellen A3-D3 und fülle die Zellen bis Zeile 33 automatisch aus.<br />
7. Markiere die Zellen B3-D33 und blende die Objekte mit Rechtsklick - Eigenschaften - Häkchen<br />
bei „Objekt anzeigen“ entfernen aus.<br />
8. Markiere die Zellen A12-A33 und blende die Beschriftung der Objekte mit Rechtsklick - Eigenschaften<br />
- Häkchen bei „Beschriftung anzeigen“ entfernen aus.<br />
9. Verändere A2 durch Ziehen mit der Maus und beobachte die Punkte A3-A33. Wie verhält sich die<br />
Iteration für verschiedene Startwerte A2?<br />
10. Gib z_1=1+0 i , z_2=-0.5 - 0.866 i, z_3=-0.5 + 0.866 i in die Eingabezeile<br />
ein. Blende diese Objekte wieder aus, das sind die Nullstellen die wir für die Färbung benötigen.<br />
11. Öffne den Eigenschaftsdialog für A2 und wähle die Registerkarte Erweitert.<br />
Gib bei Rot Wenn[A33 == z_1, 255, 0],<br />
bei Grün Wenn[Abstand[A33, z_2] < 0.01, 255, 0],<br />
bei Blau Wenn[Abstand[A33, z_2] < 0.01, 255, 0] ein.<br />
11
12. Schalte unter Einstellungen - Punktfang den Punktfang aus.<br />
13. Schalte die Spur von Punkt A2 ein. Durch Ziehen von A1 kannst du jetzt wieder Bereiche ausfindig<br />
machen, in denen die Startwerte gegen die gleiche Nullstelle konvergieren. Der Rand dieser<br />
Bereiche sind wiederum Julia-Mengen.<br />
14. Speichere die Datei<br />
15. Welche Bereiche (rot, grün, blau) streben gegen welche Nullstellen?<br />
16. Wenn du z.B. durch Scrollen mit dem Mausrad nahe genug zum Koordinatenursprung heranzoomst<br />
(so, dass der Abstand der Achsenmarkierung ungefähr 0,005 beträgt), bekommst du auch<br />
schwarze Bereiche. Was bedeutet das?<br />
Abbildung 8: Das Newtonfraktal für p(z)=−z 3 + 1<br />
Verwende GnuXaoS um zum Abschluss noch eine Zoomfahrt in das Newtonfraktal zu unternehmen<br />
(leider unterscheidet XaoS farblich nicht zwischen den Nullstellen).<br />
12