Exploring Chaos and Bifurcation Diagrams in Python

In the study of nonlinear dynamical systems and chaos, one of the basic properties of systems we evaluate is period doubling, or bifurcation. As the parameters that describe system states change, the system can exhibit different modes of behaviour. Generally speaking, they all exhibit a sensitive dependence to initial conditions, which is to say that with just small, inscrutable changes in the initial conditions, we can get wildly different results in a system governed by very simple rules of iterative calculation.

In this notebook, I’m attempting to explore three different kinds of maps, and their associated period doubling behaviour, through bifurcation diagrams.

  1. Logistic map: A relatively well known function described by x_{n+1} = rx_n (1 - x_n) , the logistic map‘s bifurcation diagram is plotted as the change in x_n with varying values of r. Since each value of x_n depends on the previous value in a nonlinear fashion, a sensitive dependence on initial conditions is exhibited. Depending on starting values and the parameter values of r, the function exhibits smoothness initially followed by suddenly occurring chaos.
  2. Circle map: Circle maps are associated with Arnold Tongues and are described by the iteration \theta_{n+1} = \theta_n + \Omega - \frac{K}{2\pi}sin(2\pi\theta_n) .
  3. Gauss iterated map: This is a nonlinear iterated map defined as  x_{n+1} = e^{- \alpha x_n^2 } + \beta , and is generally computed like the Logistic map.

Explore the github repository for more.

Bifurcation diagram for a Circle Map
Bifurcation patterns and “edge of chaos” phenomena in the circle map, between k = 2.5 and k = 3.0
Circle Map bifurcation diagram in k = (2.9,3.0) shows alternating chaotic and non-chaotic behaviour

Related Ideas and Links

  1. Steven Strogatz’s lectures on nonlinear dynamics and chaos (link)
  2. Pitchfork bifurcation
  3. Logistic differential equation
  4. Simple mathematical models with very complicated dynamics, Robert M. May (open access link)
  5. Feigenbaum constants
  6. Feigenbaum scaling in discrete dynamical systems by Keith Briggs ( link )
  7. Mitchell Feigenbaum’s original paper on patterns in chaos (link)
  8. Learning resources for complex systems on Complexity Explorer; one specific introductory course may be helpful for those beginning to learn these subjects.