Chaos und Fraktale - Mathematik
Chaos und Fraktale - Mathematik
Chaos und Fraktale - Mathematik
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
B. Hafenbrak Wintersemester 2004/05<br />
<strong>Chaos</strong> <strong>und</strong> <strong>Fraktale</strong><br />
Kap. 1 Die Verhulst-Gleichung<br />
Der belgische <strong>Mathematik</strong>er Pierre Francois Verhulst untersuchte um 1845<br />
dynamische Modelle für das Wachstum einer Bevölkerung. Ein einfaches Modell wird<br />
durch die folgende Iterationsgleichung beschrieben, die nach ihm benannte Verhulst-<br />
Gleichung.<br />
pn+1 = pn + k (1-pn) pn , n ∈ N<br />
Dabei ist pn die Bevölkerung zum Zeitpunkt n (normiert bezüglich einer gegebenen<br />
Grenze), k ist die durchschnittliche Anzahl von Kindern pro Individuum (unter der<br />
Bedingung dass pn sehr klein gegen 1 ist).<br />
A1.1 Untersuchen Sie in Gruppenarbeit mit dem Taschenrechner, wie sich die<br />
Bevölkerung entwickelt. Variieren Sie dazu bei gleichem k innerhalb der<br />
Gruppe den Anfangswert p0. Variieren Sie dann auch k. Wählen Sie k nicht zu<br />
groß (k < 3).<br />
Bequemer geht die Untersuchung mit dem Computer, bei dem die Wiederholungen<br />
schneller gelingen als mit dem Taschenrechner. Außerdem ist hier eine grafische<br />
Darstellung möglich, die einen besseren Überblick über den zeitlichen Verlauf der<br />
Bevölkerung gestattet.<br />
A1.2 Versuchen Sie die Aufgabe A1.1 mit einem Tabellenkalkulationssystem zu<br />
lösen.<br />
A1.3 Nachfolgend sehen Sie zwei Python-Programme, die dasselbe leisten sollen<br />
wie die zwei ersten Aufgaben. Versuchen Sie diese kleinen Programme zu<br />
verstehen. Untersuchen Sie jetzt vertieft die Abhängigkeit vom Parameter k<br />
mit Hilfe der Programme (diese sind im Laufwerk O abgelegt). Bei welchen<br />
Parameterwerten ändert sich das Verhalten gr<strong>und</strong>legend?<br />
1. Programm (Verhulst.py)<br />
# Verhulst<br />
k=1.2<br />
p=0.1<br />
for n in range(100):<br />
print p,<br />
p=p+k*p*(1-p)<br />
2. Programm (Verhulstgra.py), zeichnerisch<br />
# Verhulst graphisch dargestellt<br />
from Tkinter import Tk, Canvas<br />
fenster=Tk()<br />
bild=Canvas(fenster,width=900,height=400,<br />
bg="white")<br />
bild.grid()<br />
k=2.2<br />
p=0.1<br />
bild.create_line(10,200,900,200)<br />
bild.create_line(10,200,10,10)<br />
for n in range(100):<br />
p=p+k*p*(1-p)<br />
x=18+8*n<br />
y=200-int(100*p)<br />
bild.create_line(x,y,x,y,width=3)<br />
fenster.update()
B. Hafenbrak <strong>Chaos</strong> <strong>und</strong> <strong>Fraktale</strong> Kap 1 Verhulst-Gleichung WS 2004/05<br />
Das Diagramm wird noch übersichtlicher, wenn man die Punkte verbindet. Dies<br />
geschieht im folgenden Programm verhulstgra2.py<br />
# Verhulst, graphisch dargestellt, 2. Version<br />
from Tkinter import Tk, Canvas<br />
fenster=Tk()<br />
bild=Canvas(fenster,width=900,height=400, bg="white")<br />
bild.grid()<br />
k=2.5<br />
p=0.1<br />
xneu=10<br />
yneu=200-int(100*p)<br />
bild.create_line(10,200,900,200)<br />
bild.create_line(10,200,10,10)<br />
for n in range(100):<br />
xalt=xneu<br />
yalt=yneu<br />
p=p+k*p*(1-p)<br />
xneu=xalt+8<br />
yneu=200-int(100*p)<br />
bild.create_line(xalt,yalt,xneu,yneu)<br />
fenster.update()<br />
A1.4 Fassen Sie Ihre bisherigen Erkenntnisse zusammen. Wie hängt das Verhalten<br />
der Funktion p vom Parameter k ab?<br />
Um das Verhalten genauer zu beschreiben sind die folgenden Bezeichnungen<br />
hilfreich:<br />
D1.1 Es sei eine Iterationsvorschrift x n+1 = f(xn) gegeben.<br />
Die Zahl x heißt Fixpunkt dieser Iteration, wenn gilt x = f(x)<br />
Die Zahl x heißt Fixpunkt der Periode 2 wenn gilt x = f(f(x))<br />
- Die Zahl x heißt Fixpunkt der Periode 3 wenn gilt x = f(f(f(x)))<br />
Die Zahl x heißt Fixpunkt der Periode k wenn gilt x = f k (x)<br />
Ein Fixpunkt x der Periode k heißt Attraktor wenn für wachsendes n der Wert<br />
f nk (x0) gegen x konvergiert, falls x0 in der Nähe von x liegt.<br />
Ein Fixpunkt der Periode k heißt Repellor, falls er kein Attraktor ist.<br />
A1.5 Fassen Sie mit Hilfe dieser Definitionen nochmals das Verhalten zusammen.<br />
Wie viele Fixpunkte gibt es? Wo sind die Fixpunkte Attraktoren?<br />
A1.6 Versuchen Sie bei der Verhulst-Gleichung die Fixpunkte <strong>und</strong> die Fixpunkte der<br />
Periode 2 rechnerisch zu finden.<br />
Einen guten Überblick erhält man mit dem Feigenbaum-Diagramm.<br />
# Feigenbaum zu Verhulst<br />
from Tkinter import Tk, Canvas<br />
fenster=Tk()<br />
bild=Canvas(fenster,width=900,height=500, bg="white")<br />
bild.grid()<br />
def punkt(x,y):<br />
bild.create_line(x,y,x,y+1)<br />
def achsenkreuz():<br />
bild.create_line(50,400,850,400,fill="blue")<br />
bild.create_line(50,400,50,0,fill="blue")<br />
2
B. Hafenbrak <strong>Chaos</strong> <strong>und</strong> <strong>Fraktale</strong> Kap 1 Verhulst-Gleichung WS 2004/05<br />
for i in range(1,4):<br />
bild.create_line(i*250+50,385,i*250+50,415,fill="blue")<br />
for i in range(1,30):<br />
bild.create_line(i*25+50,392,i*25+50,408,fill="blue")<br />
bild.create_line(40,200,60,200, fill="blue")<br />
for i in range(1,20):<br />
bild.create_line(45,400-i*20,55,400-i*20,fill="blue")<br />
achsenkreuz()<br />
k=0<br />
while k < 3:<br />
p=0.1<br />
for n in range(800):<br />
p=p+k*p*(1-p)<br />
x=250*k+50<br />
y=400-int(200*p)<br />
if n>600:<br />
punkt(x,y)<br />
k = k + 0.004<br />
fenster.update()<br />
fenster.update()<br />
Erläuterung des Programms:<br />
Die Prozedur achsenkreuz dient zum Zeichnen des Achsenkreuzes, sie ist hier nicht<br />
wichtig. Die Abszisse dient als k-Achse, die Ordinate als p-Achse. Das Programm<br />
besteht aus zwei geschachtelten FOR-Schleifen. In der äußeren Schleife wird der<br />
Parameter k zwischen 0 <strong>und</strong> 3 variiert. Für jedes k wird in der inneren FOR-Schleife<br />
die Iteration der Verhulst-Gleichung 800-mal durchgeführt, wobei nur die letzten 200<br />
p-Werte im Diagramm aufgetragen werden.<br />
Es entsteht das folgende Bild:<br />
Interpretation des Feigenbaumdiagramms:<br />
Für k
B. Hafenbrak <strong>Chaos</strong> <strong>und</strong> <strong>Fraktale</strong> Kap 1 Verhulst-Gleichung WS 2004/05<br />
Für 2
B. Hafenbrak <strong>Chaos</strong> <strong>und</strong> <strong>Fraktale</strong> Kap 1 Verhulst-Gleichung WS 2004/05<br />
Exaktere Untersuchung der bisherigen Beobachtungen<br />
Bis jetzt haben wir nur am Computer beobachtet. Wir wollen nun soweit wie möglich<br />
die Beobachtungen durch exaktere Überlegungen stützen <strong>und</strong> teilweise erklären.<br />
Berechnung der Fixpunkte<br />
Ein Fixpunkt p ist definiert durch p = f(p), in unserem Fall also<br />
oder<br />
p = p + k (1 - p) p<br />
0 = k (1 -p) p<br />
Das Produkt auf der rechten Seite ist genau dann gleich Null, wenn einer der drei<br />
Faktoren gleich Null ist. Nehmen wir k positiv an, so erhalten wir<br />
p = 0 oder p = 1<br />
Für alle k-Werte ungleich Null gibt es also genau zwei Fixpunkte, nämlich 0 <strong>und</strong> 1.<br />
Wann handelt es sich dabei um Attraktoren bzw. Repelloren? Um das zu<br />
untersuchen, starten wir dicht neben einem Fixpunkt <strong>und</strong> untersuchen, was nach<br />
einer Iteration los ist.<br />
Wir starten in der Nähe von 0. Das drücken wir so aus:<br />
p1 =δ, wobei δ betragsmäßig sehr klein sei.<br />
Wir erhalten für das nächste Folgenglied<br />
p2 = δ + k(1 - δ) δ<br />
Für positives k ist p2 sicher weiter von 0 entfernt als p1, mithin ist 0 ein Repellor.<br />
5
B. Hafenbrak <strong>Chaos</strong> <strong>und</strong> <strong>Fraktale</strong> Kap 1 Verhulst-Gleichung WS 2004/05<br />
Wir starten in der Nähe von 1. Das drücken wir so aus:<br />
p1 =1+δ, wobei δ betragsmäßig sehr klein sei.<br />
Wir erhalten für das nächste Folgenglied<br />
p2 = 1+δ + k( - δ) (1+δ)<br />
p2 = 1+δ - k δ - δ 2<br />
Da δ sehr klein sein soll, ist δ 2 vernachlässigbar, so dass ungefähr gilt<br />
p2 = 1+δ - k δ<br />
Für 0 < k 2 ist p2 weiter von der Zahl 1 entfernt als p1. Der Wert 1 ist also Repellor.<br />
(Für k=2 können diese Überlegungen keine Entscheidung bringen.)<br />
Fixpunkte der Periode 2<br />
Ein Fixpunkt der Periode 2 liegt vor, wenn gilt<br />
Nun ist<br />
pn+2 = pn<br />
pn+2 = pn+1 + k (1 - pn+1 ) pn+1<br />
= pn + k (1 - pn ) pn + k(1 - (pn + k (1 - pn ) pn ) (pn + k (1 - pn ) pn )<br />
In die obige Gleichung eingesetzt ergibt das<br />
pn + k (1 - pn ) pn + k(1 - (pn + k (1 - pn ) pn ) (pn + k (1 - pn ) pn ) = pn<br />
k (1 - pn ) pn + k(1 - (pn + k (1 - pn ) pn ) (pn + k (1 - pn ) pn ) = 0<br />
Im folgenden schreiben wir statt pn einfacher p <strong>und</strong> versuchen diese Gleichung<br />
vierter Ordnung zu lösen.<br />
k (1 - p ) p+ k(1 - (p + k (1 - p ) p ) (p + k (1 - p ) p ) = 0<br />
Dabei kommt es uns zu gute, dass wir schon zwei Lösungen kennen, nämlich 0 <strong>und</strong><br />
1 (jeder Fixpunkt ist auch Fixpunkt der Periode 2).<br />
Die Lösung 0 sieht man der Gleichung auch sofort an, da p als Faktor in den beiden<br />
Summanden der linken Seite enthalten ist. Suchen wir Lösungen ungleich 0, so<br />
dürfen wir die Gleichung durch p dividieren:<br />
k (1 - p) + k (1 - (p + k (1 - p) p) ( 1 + k (1 - p)) = 0<br />
Eine schnelle Kopfrechnung zeigt, dass auch p = 1 eine Lösung ist, also sollte es<br />
möglich sein, den Faktor (p-1) bzw. (1-p) auszuklammern. Mit diesem Ziel vor Augen<br />
formen wir die Gleichung um<br />
k (1 - p) + k (1 - p - k (1 - p) p) ( 1 + k (1 - p)) = 0<br />
k (1 - p) + k (1 - p) (1 - k p) ( 1 + k (1 - p)) = 0<br />
(1 - p)(k + k(1 - k p)(1 +k(1 - p))) = 0<br />
Suchen wir Lösungen ungleich 1, so können wir die Gleichung durch (1 - p)<br />
dividieren <strong>und</strong> erhalten eine quadratische Gleichung für p<br />
6
B. Hafenbrak <strong>Chaos</strong> <strong>und</strong> <strong>Fraktale</strong> Kap 1 Verhulst-Gleichung WS 2004/05<br />
k + k(1 - k p)(1 +k(1 - p)) = 0<br />
1 + (1 - k p)(1 +k(1 - p)) = 0 für k>0<br />
k 2 p 2 - (2k + k 2 ) p + 2 + k = 0<br />
Das ergibt die Lösungen<br />
p<br />
p<br />
1<br />
2<br />
+ k 1<br />
= + ⋅ k<br />
2k<br />
2k<br />
2 2<br />
+ k 1<br />
= − ⋅ k<br />
2k<br />
2k<br />
2 2<br />
− 4<br />
− 4<br />
Für k
B. Hafenbrak <strong>Chaos</strong> <strong>und</strong> <strong>Fraktale</strong> Kap 1 Verhulst-Gleichung WS 2004/05<br />
k = 1,8<br />
y<br />
k = 2,2<br />
y<br />
1 x<br />
8
B. Hafenbrak <strong>Chaos</strong> <strong>und</strong> <strong>Fraktale</strong> Kap 1 Verhulst-Gleichung WS 2004/05<br />
Der Startwert ist hier in der Nähe von 1, man sieht, wie der Wert 1 abstoßend wirkt<br />
<strong>und</strong> wie sich Fixpunkte der Periode 2 als attraktiv erweisen.<br />
A1.8 Berechnen Sie die beiden Fixpunkte der Periode 2 für k = 2.2 <strong>und</strong> vergleichen<br />
Sie mit dem obigen Diagramm.<br />
A 1.9 Zeichnen Sie ein entsprechendes Diagramm für k = 2,35 <strong>und</strong> berechnen Sie<br />
auch hier die beiden Fixpunkte der Periode 2.<br />
A 1.10 Suchen Sie im Feigenbaum-Diagramm einen k-Wert, bei dem Fixpunkte der<br />
Periode 4 attraktiv sind. Veranschaulichen Sie das in einem Schaubild.<br />
Die Diagramme führen uns auf eine Bedingung, mir der wir das Attraktor- bzw.<br />
Repellorverhalten untersuchen können. Der Fixpunkt ist bestimmt durch den<br />
Schnittpunkt des Schaubildes von f mir der ersten Winkelhalbierenden. Ob dieser<br />
Schnittpznkt anziehend oder abstoßend wirkt, wird durch die Steigung des<br />
Schaubildes an diesem Schnittpunkt verursacht. Denken wir uns die Umgebung des<br />
Schnittpunktes stark vergrößert dargestellt, so können wir die Kurve durch ihre<br />
Tangente ersetzen. Dadurch wird einsichtig, dass für einen Fixpunkt xF gilt:<br />
Falls |f´( xF)| 1, ist xF ein Repellor.<br />
Das sieht am unmittelbar an den beiden Diagrammtypen ein:<br />
9
B. Hafenbrak <strong>Chaos</strong> <strong>und</strong> <strong>Fraktale</strong> Kap 1 Verhulst-Gleichung WS 2004/05<br />
Rechnerisch kann man sich das folgendermaßen überlegen:<br />
Es sei xF ein Fixpunkt der Funktion f.<br />
In der nahen Umgebung von xF gilt näherungsweise<br />
f(x) - f(xF) = f´( xF)*(x - xF)<br />
f(x) - xF = f´( xF)*(x - xF)<br />
Daraus kann man die obige Behauptung schließen.<br />
Fixpunkte der Periode 2 im Diagramm<br />
Die obigen Überlegungen lassen sich auf Fixpunkte einer Periode p verallgemeinern,<br />
etwa auf Fixpunkte der Periode 2. Um diese im Diagramm zu veranschaulichen<br />
betrachten wir das Schaubild der Funktion f 2 . Dabei ist hier f 2 definiert durch<br />
f 2 (x) = f(f(x)).<br />
In unserem Beispiel der Verhulstgleichung ist<br />
F2(x) = f(f(x))<br />
= f(x) + k(1-f(x)) f(x)<br />
= x + k (1 - x) x + k (1 - (x + k (1 - x)) x ) ( x + k ( 1 - x) x )<br />
Für k = 2,3 ergibt sich z.B. folgendes Diagramm:<br />
Man erkennt die 4 Fixpunkte der Periode 2, Die Fixpunkte 0 <strong>und</strong> 1 sind Repelloren,<br />
die beiden anderen Fixpunkte der Periode 2 sind Attraktoren, wie aus der Steigung<br />
ersichtlich ist.<br />
10