Bifurcation and chaos

Martin McBride
9 min readNov 1, 2023

In this article, we will look at a simple dynamical system representing constrained growth. For illustration, we will assume this represents the year-by-year population of rabbits in an environment where the amount of available food and space prevents the population from growing to an unlimited size.

As we will see, even a very simple model leads to complex and even chaotic behaviour in certain conditions.

Population model

We will use a very simple model of the rabbit population, year by year. We will start by assuming an unconstrained growth of the rabbit population is given by:


In this model, growth will continue forever. For example, if r is 2, the number of rabbits would double every year, forever, without limit.

This is clearly not realistic, the environment will normally place constraints on the population. For example, if the rabbits lived on a small island, it might be that there isn’t enough food to support 1000 rabbits.

We can represent this by adding an extra term to our formula to represent constrained growth:

The extra term (1 — x) is a term that reduces to zero as x approaches 1. The value 1 represents the maximum number of rabbits. This acts as a scale factor between the equation and the number of rabbits. An x value of 0.5, for example, represents 500 rabbits (0.5 times 1000).

Interpreting the function

The formula above is a quadratic function in x. Here is what the function looks like as a graph (again, with an r value of 2):

This graph tells us, given this year’s population, how many rabbits there will be next year. The x-axis is the current population, and the y-axis is next year’s population.

In the graph below, the current population is 0.2 (which equates to 200 rabbits). There is plenty of food and space, the rabbits…