Bifurcations
In this post I will discuss bifurcation.
“In general, a small variation in some parameter produces small, continuous changes in the system output, so that the system is said to be structurally stable. However, for some specific parameter values, a small variation can induce a strong qualitivative change in the solution. Such a behavior is called a bifurcation, and the system is said to be structurally unstable for these parameter values.”[1]
Consider the ordinary differential equation:
x_t = r x - x^3
where r
is the parameter of interest, subscript t
is the time derivative of x
. An equilibrium of the system is a point where the system remains unchanged or equivalently
x_t = 0
In our case if r
is greater than zero then there are three equilibriums:
x = 0, -root(r), + root(r)
We can plot the derivative x_t
against x
:
The first equilibrium is unstable since a slight perturbation will cause to move away from it (similar to a ball on top of a hill being slightly pushed will roll away). It is unstable because if x
is slightly less than zero then the negative derivative (refer to previous plot) will cause x
to decrease away from 0 and similarly if x
is slightly greater than zero then the positive derivative will cause x
to increase away from 0. Using similar logic the other two equilbiriums can be shown to be stable (a ball in a valley pushed will roll back).
When r
is less than or equal to zero there is only one equilibrium (x=0
which is stable). Once again we plot x_t
against x
:
When varying r
from negative to positive we move from one stable point to two stable points. r=0
is the bifurcation point where small variation will cause strong qualititative change in the solution.
Now let’s consider a more interesting system - the logistic map equation:
x_{t+1} = r x_{t} (1-x_{t})
where r
is the parameter. We will restrict r
to be in the range 0
to 4
(this provides that if x_{n}
is between 0 and 1 then x_{n+1}
will also be between 0 and 1 - can be checked via derivative tests). The logistic map reprents a population model where x_{n}
between 0
and 1
represents the percentage out of a total maximum possible population. Below are some sample populations for different r
values
For r=0.5
the steady value is 0
meaning that the population starting at x_{0} = 0.5
will lead to population extinction (x_{n} = 0
). For r=1.25
the population reaches steady state of about 0.2
. r=2.75
and r=2
also reach a single steady state. Now for r=3.5
things get interesting - there are now 4
steady values about which the curve oscillates about regularly: 0.8269, 0.5009, 0.8750, 0.3828
. By changing the parameter r
from 2.75
to 3.5
we have change the amount of steady values from 1
to 4
. This leads us to plot a bifurcation diagram. Below the diagram plots for various r
(Growth Rate) the steady values. For r
less than 3
there is only one steady value and at about 3
(bifurcation point) we now have two steady points and once r
is about 3.5
there are four (as demonstrated earlier).
If we zoom in to a smaller range we see the following:
and if we zoom in even further we start noticing a fractal type pattern emerging - same structure at every scale. From the simple logistic map equation we obtain a beautiful pattern.
Some of the code used to generate the figures, insipiration as well as additional reading material can be found here:
- Boccaletti, Stefano, et al. Synchronization: From Coupled Systems to Complex Networks. Cambridge University Press, 2018
- Boeing, Geoff. “Visual analysis of nonlinear dynamical systems: chaos, fractals, self-similarity and the limits of prediction.” Systems 4.4 (2016): 37.
- https://www.math.ucdavis.edu/~hunter/m207/m207.pdf
- https://github.com/gboeing/pynamical