# 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.