WaBis

walter.bislins.ch

Feigenbaum-Diagramm erzeugen und analysieren

Sonntag, 31. Juli 2016 - 17:06 | Autor: wabis | Themen: Wissen, Mathematik, Interaktiv | Kommentare(4)
Bei der Berechnung des Feigenbaumdiagrammes gibt es spezielle Startwerte, welche bei einer bestimmten Anzahl Iterationen der logistischen Gleichung immer wieder auf denselben Wert abgebildet werden. Hier wird das Feigenbaumdiagramm berechnet, eine Formel für alle speziellen Startwerte hergeleitet und der Einfluss dieser Startwerte auf das Feigenbaumdiagramm analysiert.

Einführung

ZoomInformationen zum BildFeigenbaumdiagramm

Die logistische Gleichung wurde ursprünglich 1837 von Pierre François Verhulst als demographisches mathematisches Modell eingeführt. Die Gleichung ist ein Beispiel dafür, wie komplexes, chaotisches Verhalten aus einfachen nichtlinearen Gleichungen entstehen kann. Die zugehörige Dynamik kann anhand eines sogenannten Feigenbaumdiagrammes veranschaulicht werden. [1]

Logistische Gleichung

(1)
wobei'
' =' 'eine Zahl zwischen 0 und 1
' =' 'eine Zahl zwischen 0 und 4

Diese Formel wird wiefolgt angewandt: Für einen Bestimmten Wert r wird ein Startwert x0 gewählt und in die Formel rechts vom Gleichheitszeichen bei xn eingesetzt. Das Resultat ist ein neuer Wert x1. Dieser wird wiederum rechts in die Formel bei xn eingesetzt und man erhät x2 usw. Allgemein heisst das, wenn man rechts das Resultat xn von n Iterationen einsetzt, erhält man das nächste x, also xn+1.

Je nach gewähltem Wert für r verhalten sich die Wertefolgen von x verschieden. Dabei hängt dieses Verhalten nicht vom Startwert x0 ab, sondern nur von r:

  1. Mit r von 0 bis 1 erhält man immer 0 nach einigen Iterationen.
  2. Mit r zwischen 1 und 3 stellt sich der Grenzwert 1−1/r ein.
  3. Mit r zwischen 3 und 1 + √6 (etwa 3,45) wechselt die Folge bei fast allen Startwerten, ausgenommen 0, 1 und 1−1/r, zwischen zwei Werten, Attraktoren genannt.
  4. Mit r zwischen 1 + √6 und ungefähr 3,54 wechselt die Folge bei fast allen Startwerten zwischen vier Attraktoren.
  5. Wird r grösser als 3,54, stellen sich erst 8, dann 16, 32 usw. Attraktoren ein.
  6. Bei r annähernd 3,57 beginnt das Chaos.

Das Feigenbaumdiagramm

Ein Feigenbaumdiagramm entsteht durch Aufzeichnen der Wertepaare ( r, xN ). Man wählt für das Diagramm eine bestimmte Anzahl von Iterationen N, welche dann für alle berechneten Punkte des Diagrammes beibehalten wird. Für jeden Wert r werden dann eine Reihe von x0 Startwerten zwischen 0 und 1 zufällig oder der Reihe nach gewählt. Für jeden Startwert wird die logistische Gleichung zusammen mit dem gewählten r Wert N mal iteriert. Bei den so berechneten Werten xN wird dann bei r im Diagramm jeweils ein Punkt eingezeichnet. Dies wiederholt man für den Ganzen Bereich von r.

Jeder Punkt im Diagramm ist das Resultat von einer Festgelegten Zahl von N Iterationen für einen bestimmten Startwert x0 und einen bestimmten Parameter r. In den Bereichen, wo einzelne Linien sichtbar sind, konvergieren fast alle Startwerte (Ausnahmen siehe Abschnitt oben) bei einem bestimmten r Wert auf dieselben paar Endwerte xN. Diese Werte bzw. Linien bezeichnet man deshalb als Attraktoren. In den anderen Bereichen erhält man für jeden Startwert einen anderen Endwert. Diese Endwerte liegen jedoch nicht auf einer Reihe, sonder verteilen sich (pseudo) zufällig.

Im folgenden Feigenbaumdiagramm kannst du mit den Parametern spielen und studieren, wie sie sich auf die Grafik auswirken.

ScanType: Bestimmt, wie die x0 und r Werte generiert werden.

Bei Random werden bei jedem Scan-Durchgang NumR zufällige ( r, x0 ) Wertepaare generiert. Damit auch bei nur einem Scan-Durchgang (Samples = 1) ein möglichst vollständiges Diagramm entsteht, werden die r Werte sequentiell generiert und mit einem kleinen Zufallswert beaufschlagt.

Bei Sequence werden sequenziell NumR mal NumX Wertepaare generiert.

Um bei beiden ScanTypes dieselbe Anzahl Punkte zu generieren, stellt man bei Samples und NumX den gleichen Wert ein. Die beiden Schieberegler sind daher aneinander gekoppelt. Es ist jeweils nur einer der beiden Regler aktiviert, je nach ScanType.

N: Bestimmt, wievielmal jedes Wertepaar ( r, x0 ) iteriert wird.

Samples: Anzahl Berechnungen des ganzen Diagrammes im ScanTyp Random. Ein Durchgang entspricht der Berechnung von NumR zufällig generierter r und x0 Werte. Es werden in diesem ScanType insgesamt Samples mal NumR Punkte berechnet. Die r Werte werden zwar sequenziell generiert, jedoch mit einem zufälligen kleinen Wert beaufschlagt, um eine zufällige Verteilung der Punkte zu erhalten.

NumX: Bestimmt im ScanType Sequence die Anzahl der generierenten x0 Startwerte für jeden r Wert. Es werden also insgesamt NumR mal NumX Punkte berechnet.

NumR: Anzahl r Werte für einen Scan-Durchgang. Dies entspricht im ScanType Sequence der horizontalen Auflösung des Diagrammes. Mit den blauen Schaltflächen lassen sich Diagramme mit 3 verschiedenen ausgewählten Auflösungen generieren.

Rmin, Rmax: Abzubildender Wertebereich der horizontalen r-Achse.

X0min, X0max: Hier kann der Bereich der erzeugten Startwerte eingeschränkt werden. Standardmässig werden Startwerte zwischen 0 und 1 berechnet, wobei 0 und 1 selbst ausgenommen werden.

Alpha: Transparenz jedes einzelnen gezeichneten Punktes. Durch die Überlagerung vieler Punkte an derselben Stelle entsteht auch bei kleinen Alpha-Werten ein deutlicher Punkt. Je grösser der Wert Sampes bzw. NumX ist, umso kleiner sollte der Alpha-Wert gewählt werden, damit das Diagramm nicht zu dunkel wird und die Strukturen deutlich werden. Kleinster möglicher Wert ist 1/127 = 0,008.

DotSize: Grösse jedes einzelnen Punktes in Pixeln. Ein Wert von 0,5 entspricht bei hochauflösenden Displays (Retina-Displays) der Grösse eines ganzen Pixels. Bei normalen Displays wird einfach der Punkt mit einer Transparenz von 1/4 gezeichnet.

Die Werte können nicht nur mit den Schiebereglern eingestellt werden, sondern sie lassen sich auch in einige Wertefelder davor eintragen. Damit lassen sich in einem bestimmten Bereich auch Werte eingeben, die der Schieberegler nicht erreichen kann. Intern werden diese Werte jedoch auf sinnvolle Bereiche begrenzt.

Spezielle Startwerte

In Punkt 3 der Einführung wird beschrieben, dass im Feigenbaumdiagramm bei einem r-Wert zwischen 3 und 1+√6 die Folge bei fast allen Startwerten x0 zwischen zwei Attraktoren wechselt. Ausgenommen sind die speziellen Startwerte 0, 1 und 1−1/r.

Der Startwert 1−1/r hat die Eigenschaft, dass er bei allen Iterationen denselben Wert beibehält. Wie wurde dieser spezielle Startwert ermittelt? Nun, die Bedingung ist, dass ein Startwert x0 eingesetzt in die logistische Gleichung als Resultat wieder x0 ergeben soll:

(2)

Dividieren der Gleichung durch r und alles auf die linke Seite gebracht ergibt die quadratische Gleichung:

(3)

Das Lösen dieser quadratischen Gleichung ist einfach, weil wir ein x0 ausklammern können:

(4)

Die linke Seite ist dann gleich Null, wenn entweder x0 = 0 ist oder wenn der blaue Term Null ist. Die Lösung x0 = 0 wird jedoch als Startwert ausgenommen. Der blaue Term nach x0 aufgelöst ergibt:

(5)

Dieser spezielle Startwert x0 = 1−1/r ergibt also für alle Iterationen wieder denselben Wert. r darf nicht Null sein, aber der Wertebereich von r für ein Feigenbaumdiagramm liegt sowieso darüber, zwischen 1 und 4.

Weitere spezielle Startwerte

Tatsächlich gibt es noch weitere spezielle Startwerte. Allen ist gemein, dass sie nach einer bestimmten Anzahl Iterationen K schliesslich auf den Wert 1−1/r abgebildet werden und dann bei allen weiteren Iterationen eben dieser Wert beibehalten wird.

Ich möchte nun eine Formel herleiten, welche alle diese speziellen Startwerte berechnet, um zu sehen, wieviele davon es gibt und ob diese einen auffälligen Einfluss auf das Feigenbaumdiagramm haben.

Konvention: Wenn x0 = 1−1/r ist, so seien x0−K jene Startwerte, welche nach K Iteration zu x0 = 1−1/r werden.

Suchen wir die Startwerte, welche nach einer Iteration zu 1−1/r führen. Die Frage ist also, welche Werte von x ergeben auf der rechten Seite der logistischen Gleichung 1−1/r?

(6)

Ich verwende die blaue Variante für die Berechnung, da diese im Folgenden einfacher zu handhaben ist.

Dividieren wir wie unter Spezielle Startwerte gezeigt wieder beide Seiten durch r und bringen alles auf die linke Seite des Gleichheitszeichens:

(7)

Damit haben wir eine quadratische Gleichung für x, welche mit dem üblichen Verfahren zur Lösung quadratischer Gleichungen gelöst werden kann und folgende Resultate ergibt:

(8)
und

Die zweite Lösung haben wir bereits oben gefunden. Es ist eine neue Lösung 1/r hinzugekommen. Wenn wir also in die logistische Gleichung x0 = 1/r einsetzen erhalten wir x1 = 11/r, was dann für alle weiteren Iterationen gleich bleibt:

(9)

K = 1

Schreiben wir die zweite Lösung x0 = 11/r nochmals in derselben Form dazu:

(10)

K = 1

Diese beiden Formeln können wir zu einer einzigen zusammenfassen:

(11)

K = 1

Das sieht zunächst umständlich aus, wird aber weiter unten nützlich, wenn wir ein Muster zur Berechnung aller speziellen Startwerte suchen.

Muster: Für die Berechnung aller weiteren speziellen Startwerte können wir nach dem folgenden Muster vorgehen:

(12)

Für Ri−1 setzen wir jeweils die gefundenen Lösungen des vorherigen Schrittes ein. Dann lösen wir die quadratische Gleichung z.B. mit einem CAS (Computer Algebra System). Wir erhalten für jede vorherige Lösung zwei neue Lösungen.

Wenden wir dieses Muster für unsere nächsten speziellen Startwerte an. Den Fall Ri−1 = 11/r müssen wir nicht mehr berechnen, das haben wir ja gerade gemacht. Setzen wir also Ri−1 = 1/r in die Mustergleichung ein:

(13)

Beachte, dass im Nenner nun ein r2 steht, weil Ri−1 mit 1/r multipliziert wird.

Lösen der quadratischen Gleichung gibt die folgenden zwei Lösungen:

(14)

K = 2

für

r−2 und r2

Uns interessieren nur die Lösungen für r2. Für K = 2 kommen also zwei neue spezielle Startwerte hinzu, welche bei r2 liegen.

Berechnen wir die nächsten Startwerte nach unserem Muster. Dazu werden separat die beiden obigen Lösungen für Ri−1 eingesetzt:

(15)
(16)

Wir erhalten vier neue Lösungen, die wir zu einer Formel zusammenfassen können (mit Hilfe des CAS berechnet):

(17)

K = 3

Nur jene Formeln mit + Vorzeichen unter der Wurzel liefert Startwerte für r2. Die anderen beiden Lösungen liegen im Bereich r > 3,678 573.

Die Formel für die Startwerte x0−K mit K = 4, welche 8 Lösungen hat, berechnen wir analog und erhalten:

(18)

K = 4

Auch hier gilt: nur jene Lösungen mit lauter + Vorzeichen unter den Wurzeln liefern Startwerte für r2. Alle anderen Lösungen liegen im Bereich r > 3,678 573.

Man kann hier bereits ein Muster für die weiteren Formeln der Startwerte x0−K erkennen.

Die allgemeine Formel zur Berechnung aller speziellen Startwerte lautet:

(19)

K > 0

mit

für k > 2

oder

für k = 2

oder

für k < 2

Wie man sieht, kann diese Formel rekursiv definiert werden: In Q(k) wird Q(k−1) rekursiv aufgerufen!

Anzahl spezielle Startwerte

Es gibt für K ≤ N insgesamt 2·K Startwerte im Bereich von r = 2 ... 3,678 574, welche nach spätesten K Iterationen auf x0 = 1−1/r abgebildet werden.

Für Werte von r > 3,678 574 gibt es insgesamt bis zu 2K−1 zusätzliche Startwerte. Total gibt es ab einem r > 3,678 574 damit bis zu 2K spezielle Startwerte.

Erkenntnis: Bei einem Feigenbaumdiagramm, welches Punkte mit N Iterationen zeigt, gibt es im Bereich 3r < 3,678 574 genau 2·N spezielle Startwerte und im Bereich von r3,678 574 maximal bis zu 2N spezielle Startwerte. Das sind verglichen mit unendlich vielen möglichen Startwerten sehr wenige. Zudem ist im Bereich von r3,678 574 die Grafik chaotisch. Kleinste Abweichungen aufgrund von Rechenungenauigkeiten verhindern, dass auffällig mehr Punkte auf der Linie xN = 1−1/r liegen.

Das bedeutet, dass im Feigenbaumdiagramm ab r > 3 keine Linie mit der Formel xN = 1−1/r sichtbar ist, weil die enstprechenden Startwerte mit einer Wahrscheinlichkeit von praktisch 0 zufällig generiert werden.

Grafik der speziellen Startwerte

In der folgenden Grafik werden alle zu einem bestimmten K gehörigen speziellen Startwerte in Abhängigkeit von r berechnet, um zu untersuchen, wo diese Werte liegen und wie häufig sie vorkommen:

Tipp: Klicke in die Grafik, um alle Werte zurückzusetzen.

Show all X0(K): Ist dieses Feld nicht aktiviert, werden nur die Lösungen der Stufe K angezeigt. Ist das Feld aktiviert, werden alle Lösungen bis zur Stufe K angezeigt.

Die zweite graue Linie liegt bei r = 1 + √6 = 3,45.... Die dritte Linie liegt bei r = 3,678 574.

Iterationen eines Startwertes

In der folgenden interaktiven Grafik kann ein bestimmter r Wert bei R und ein bestimmter Startwert X0 eingestellt werden. Daraus werden alle xn Werte bis zu einem bestimmten n = N berechnet und als Punkt-Folge angezeigt.

Mit dieser Grafik kann sehr schön gezeigt werden, wie ein einzelner Punkt des Feigenbaumdiagrammes bei den verschiedenen Startwerten bei einem bestimmten r fluktuiert. Es kann verifiziert werden, dass die Folge mit den oben berechneten speziellen Startwerten eine lange Sequenz von Punkten bei x = 1−1/r erzeugt (dunkle rote Linie). Theoretisch sollte eine solche Folge unendlich lange bei diesem Wert bleiben. Rechenungenauigkeiten können jedoch die Folge wieder schwingen lassen.

Die roten Linien stehen für die Werte 1−1/r, 1/r und (r ± √r2−4)/2r. Werden diese Werte bei X0 exakt eingestellt, erhält man eine lange Punkt-Folge beim Wert xn = 1−1/r. Mit Hilfe der grünen Schaltflächen und der orangen Regler können alle speziellen Startwerte genau eingestellt werden. Wenn Follow aktiviert ist, folgt der Startwert X0 automatisch dem mit Choice ausgewählten speziellen Startwert.

R: Parameter r der logistischen Gleichung für die berechnete Punkt-Sequenz.

X0, ±10-3 bis ±10-7: Von Hand eingestellter Startwert für die berechnete Punkt-Sequenz. Mit den ± Werten kann der Startwert in immer feineren Schritten eingestellt werden. Die ± Werte werden zum X0 Wert addiert.

K, Choice: K bestimmt, wieviele spezielle Startwerte berechnet werden sollen. Einer dieser speziellen Startwerte kann mit Choice jeweils ausgewählt werden. Wenn Follow aktiviert ist, wird der enstprechende Wert automatisch bei X0 übernommen.

N1, N100: gibt die maximale Anzahl Iterationen an. Es wird immer ein Ausschnitt von 100 Iterationen angezeigt. Der Bereich des Ausschnitts wird mit N100 bestimmt, wobei der höchste Wert des Ausschnitts mit N1 festgelegt wird. Die maximale Anzahl Iterationen ist somit: N = N100 × 100 + N1.

Follow: Ist diese Option aktiviert, folgt der Startwert X0 automatisch dem mit Choice ausgewählten speziellen Startwert.

Quellen

Logistische Gleichung; Wikipedia
https://de.wikipedia.org/wiki/Logistische%5FGleichung

Kommentare

1Edel 24.02.2020 | 15:56

Sehr schön aufbereitet!
Vielen Dank für die Mühe!

2Peter 11.06.2020 | 18:00

Ich finde die Seite auch sehr schön. Ich würde gerne Screenshots der Graphenprogramme für meine Seminararbeit Verwenden, jedoch bräuchte ich dafür die Nutzungsrechte und die konnte ich leider nicht finden. Es wäre sehr schön, wenn mir jemand einen Link zu den Nutzungsrechten geben könnte. Schon mal Danke im Voraus!

3wabiswalter@bislins.ch (Walter Bislin, Autor dieser Seite) 12.06.2020 | 00:36

Meine Website steht unter der Lizenz Public Domain:

Soll die Nennung des Urhebers vorgeschrieben werden? nein
Ist kommerzielle Nutzung erlaubt? ja
Sind Veränderungen erlaubt? ja
Nur bei der Verwendung derselben Lizenz? nein

Ist etwas mit einem Copyright-Vermerk versehen, muss die Erlaubnis beim entsprechenden aufgeführten Rechteinhaber eingeholt werden.

4Dietrich Klages 22.11.2021 | 17:56

Danke für die Möglichkeit, mit Ihrem Feigenbaumdiagramm experimentieren zu können!
Könnte man das Programm auch so laufen lassen, dass der R-Wert sich schrittweise erhöht, so dass man sehen kann, wie der "Baum" wächst?
Mit freundlichen Grüßen
Dietrich Klages

Dein Kommentar zu diesem Artikel
Name
Email optional; wird nicht angezeigt
Kommentar
  • Name wird bei deinem Kommentar angezeigt.
  • Email ist nur für den Administrator, sie wird nicht angezeigt.
  • Du kannst deine Kommentare eine Zeit lang editieren oder löschen.
  • Du kannst Formatierungen im Kommentar verwenden, z.B: Code, Formeln, usw.
  • Externen Links und Bilder werden nicht angezeigt, bis sie der Admin freischaltet.
More Page Infos / Sitemap
Created Sonntag, 31. Juli 2016
Scroll to Top of Page
Changed Samstag, 27. August 2016