Bifurkation (Mathematik)

Bifurkation (Mathematik)

Eine Bifurkation oder Verzweigung ist eine qualitative Zustandsänderung in nichtlinearen Systemen unter Einfluss eines Parameters $ \mu $[1]. Der Begriff der Bifurkation wurde von Henri Poincaré eingeführt.

Nichtlineare Systeme, deren Verhalten von einem Parameter abhängt, können bei einer Änderung des Parameters ihr Verhalten plötzlich ändern. Zum Beispiel kann ein System, das zuvor einem Grenzwert zustrebte, nun zwischen zwei Werten hin und her springen, also zwei Häufungspunkte aufweisen. Dies nennt man eine Bifurkation. Bestimmte Systeme können unter finiter Änderung des Parameters $ \mu $ unendlich viele Bifurkationen erfahren und damit eine unendliche Menge an Häufungspunkten aufweisen. Das Verhalten solcher Systeme wandelt sich unter Änderung des Parameters $ \mu $ somit zu deterministisch chaotischem Verhalten. Ein Beispiel hierfür ist die logistische Abbildung.

Definition

Ein dynamisches System kann durch eine Funktion $ F(x) $ beschrieben werden, die die zeitliche Entwicklung des Systemzustands $ x $ bestimmt. Diese Funktion sei nun von einem Parameter $ \mu $ abhängig, was man durch die Schreibweise $ F(x,\mu ) $ ausdrückt. Wenn nun das System für Parameterwerte unterhalb eines bestimmten kritischen Werts $ \mu _{c} $ ein qualitativ anderes Verhalten aufweist als für Werte oberhalb von $ \mu _{c} $, dann spricht man davon, dass das System bei $ \mu _{c} $ eine Bifurkation im Parameter $ \mu $ erfährt. Der Parameterwert $ \mu _{c} $ wird dann als Bifurkationspunkt bezeichnet.

Was eine „qualitative Änderung“ ist, kann man formal mit dem Begriff der topologischen Äquivalenz bzw. der topologischen Konjugation beschreiben: Solange für zwei Parameterwerte $ \mu _{1} $ und $ \mu _{2} $ die Systeme $ F(x,\mu _{1}) $ und $ F(x,\mu _{2}) $ zueinander topologisch äquivalent sind, liegt keine qualitative Änderung im obigen Sinne vor.

Die Änderung am Bifurkationspunkt besteht in den meisten Fällen entweder in einer Änderung der Anzahl von Attraktoren wie Fixpunkte oder periodischen Orbits, oder eine Änderung der Stabilität dieser Objekte.

Bifurkationsdiagramm

Abbildung 1: Bifurkationsdiagramm der logistischen Gleichung

Bifurkationen lassen sich in Bifurkationsdiagrammen graphisch darstellen. Bei einem eindimensionalen System werden dabei die Fixpunkte des Systems gegen den Parameter $ \mu $ aufgetragen. Für jeden Parameterwert wird so die Anzahl und die Lage dieser Punkte angezeigt. Zusätzlich kann man stabile und instabile Fixpunkte z. B. durch verschiedene Färbung unterscheiden. Bei einem System mit mehreren Variablen kann man ähnliche Diagramme zeichnen, indem man nur einen Unterraum des Phasenraums betrachtet, etwa durch einen Poincaré-Schnitt.

Das bekannteste Bifurkationsdiagramm ist das in Abbildung 1. gezeigte Feigenbaumdiagramm, das sich aus der logistischen Gleichung ableitet und eine Periodenverdoppelungsbifurkation abbildet. Man erkennt, dass bei kleinen Parameterwerten nur ein stabiler Fixpunkt existiert, der am ersten Bifurkationspunkt in einen Orbit aus zwei alternierenden Häufungspunkten übergeht. Dieser Orbit verdoppelt dann an weiteren Bifurkationspunkten jedes Mal wieder seine Periode (kommt also erst nach 2, 4, 8 etc. Durchläufen wieder an den gleichen Punkt), bis er bei einem Parameterwert von etwa 3,57 in einen chaotischen Zustand übergeht, wo überhaupt keine Periode mehr erkennbar ist. All diese Übergänge lassen sich mithilfe des Bifurkationsdiagrammes gut veranschaulichen.

Der Python-Code, um ein Bifurkationen-Diagramm für die logistische Gleichung zu erzeugen, lautet folgendermaßen:<syntaxhighlight lang="python3" line="1"> import numpy as np import matplotlib.pyplot as plt

N_points = 4000000 N_steps = 500 r = np.linspace(0,4,N_points)

  1. Initialwerte

y = np.random.uniform(0,1,size=N_points)

  1. Propagieren des Systems fuer lange Zeit um die Haeufungspunkte zu erreichen

for _ in range(N_steps):

   y = r*y*(1-y)
   

fig, biax = plt.subplots() biax.plot(r, y, '.-', linewidth=0, markersize=0.25) biax.set(xlabel='Wachstumsrate (r)', ylabel='Haeufungspunkte', title='Bifurcation') plt.show() </syntaxhighlight>

Beispiel

Ein typisches Beispiel einer Bifurkation ist das Knicken eines Stabes unter Druckbelastung.

Man stelle sich einen im Boden eingespannten, senkrecht stehenden, masselosen Stab mit einer Last mit dem Gewicht $ \mu $ an der Spitze vor. Die Winkelabweichung des Stabes aus der Senkrechten entspricht dabei der Variablen x.

Solange das Gewicht klein genug bleibt, ist $ x=0 $ eine stabile Gleichgewichtslage des Systems, d. h. für kleine Abweichungen richtet sich der Stab selbständig wieder in die Senkrechte $ (x=0) $ aus. Wird das Gewicht $ \mu $ kontinuierlich gesteigert, so wird bei einem bestimmten Gewicht (der Knicklast oder auch Verzweigungslast) die senkrechte Gleichgewichtslage instabil. Gleichzeitig entstehen (für ein ebenes System) zwei neue (stabile) Gleichgewichtslagen (indem der Stab nach links oder rechts abknickt.) Der Übergang des Systems von einer (stabilen) zu drei (einer instabilen, zwei stabilen) Gleichgewichtslagen ist die Bifurkation, die in diesem Fall eine Pitchfork-Bifurkation ist.

Typen

Literatur und Quellen

  • Hassan K. Khalil: Nonlinear Systems. 3. Auflage. Prentice Hall, 2002, ISBN 0-13-067389-7.
  • R. I. Leine, H. Nijmeijer: Dynamics and Bifurcations in Non-Smooth Mechanical Systems. In: Lecture Notes in Applied and Computational Mechanics. Vol. 18, Springer-Verlag, Berlin/ Heidelberg/ New York 2004, ISBN 3-540-21987-0.
  • Steven H. Strogatz: Nonlinear Dynamics and Chaos: With Applications to Physics, Biology, Chemistry and Engineering. Perseus Books Group, ISBN 0-7382-0453-6.
  • Martin Hermann: Numerik gewöhnlicher Differentialgleichungen. Band 2: Nichtlineare Randwertprobleme. Walter de Gruyter Verlag, Berlin und Boston 2018, ISBN 978-3-11-051488-9.

Weblinks

Wiktionary: Bifurkation – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen

Siehe auch

Einzelnachweise

  1. Eric W. Weisstein: Bifurcation. Abgerufen am 16. Juni 2021 (Lua-Fehler in Modul:Multilingual, Zeile 149: attempt to index field 'data' (a nil value)).