Logistic Equation and
Bifurcation Diagram

Written by Paul Bourke
September 1993

Sample C code: graph.c
Contribution by Adam Majewski: diag.c


Contribution by Tim Meehan
Python: logistic_map.py.


The standard form of the so called "logistic" function is given by

f(x) = R x (1 - x)

Where R is called the growth rate when the equation is being used to model population growth in an animal species say.

It was popularised by a review article written by Robert May in 1976 as an example of a very simple nonlinear equation being able to produce very complex dynamics.

When used to create a series

An+1 = R An (1 - An)

This series behaves in one of the following ways depending on the value of R, the initial conditions don't matter (within reason).

The following is known as a bifurcation diagram, it shows the values the system (series) evaluates to for different values or R. In practice this diagram is generated by choosing a random initial value in the range (0,1) and evaluating the first N terms of the series for a suitably large value of N (say 1000). At this point the system is considered to have settled down and the next M terms of the series are plotted, again for a suitable large M (say 10,000).

Zooming in to show the period doubling more clearly.

A particulaly interesting feature of period doubling is the ratio between consecutive period doubling intervals, it is a constant known as the Feigenbaum number.

Feigenbaum number = 4.66920 16091 02990 67185 32038 20466 20161 72581 85577 ....