Waves of predators

In mathematical biology, one of the simplest models of population dynamics is the Lotka-Volterra model. It is a system of two differential equations, modelling the interaction of the populations of two species: a predator and a prey. The mathematics behind it has a surprising connection to the dynamics of waves in a shallow canal.

Plot of the Lotka-Volterra predator-prey model

This blog post originally appeared as my pitch for the Big Internet Math-Off 2024

In mathematical biology, one of the simplest models of population dynamics is the Lotka-Volterra model. It is a system of two differential equations, modelling the interaction of the populations of two species: a predator and a prey. The mathematics behind it has a surprising connection to the dynamics of waves in a shallow canal.

The Lotka-Volterra predator-prey model

Imagine a population of cute rabbits living in a large grassland. There’s plenty of food to be found, so, rabbits being rabbits, you may expect the population size to grow exponentially. The population size at time \( t \) may be approximated by a function \( x(t) \) satisfying the differential equation
$$ \frac{\mathrm d x}{\mathrm d t} = \alpha x $$
for some constant \( \alpha > 0 \).

Unfortunately for our long-eared friends, a group of foxes has moved into the grassland. Let’s denote the size of the fox population by \( y(t) \). This introduces a new term to the differential equation:
$$ \frac{\mathrm d x}{\mathrm d t} = \alpha x – \beta x y \,, $$
where \( \beta > 0 \) is another constant. The new term slows down the growth of the rabbit population. It is proportional to the product \( x y \) of both population sizes. This reflects the observations that (i) if there are more foxes, they will eat more rabbits and (ii) if there are more rabbits, the same number of foxes will catch more rabbits, relying less on other food sources.

If we factorise the right hand side, the differential equation reads

$$ \frac{\mathrm d x}{\mathrm d t} = (\alpha – \beta y) x \,. \tag{1}$$
There is a similar differential equation for the population size of the foxes:
$$ \frac{\mathrm d y}{\mathrm d t} = (\delta x – \gamma) y \,, \tag{2}$$
where \( \gamma \) and \( \delta \) are positive constants. If the expression in brackets were constant, this would again give exponential growth (or decay). The dependence on \( x \) of this factor means the growth of the fox population is faster the more rabbits there are. But if there are too few rabbits (not enough food), then \( \delta x – \gamma \) becomes negative and the fox population decays.

The system of equations (1)-(2) is known as the Lotka-Volterra predator-prey model. For most biological applications it is too simple to capture the real population dynamics, but it’s mathematical structure is quite pleasing. A typical solution looks like this:

A plot showing population over time for rabbits and foxes. The graphs are periodic and the fox population always peaks slightly after the rabbit population.
Population over time of rabbits (white) and foxes (orange) for a typical solution to the Lotka-Volterra equations.

The populations fluctuate in a periodic way: after a certain amount of time, the population sizes are exactly what they were in the beginning. Then they repeat the same rise and fall over and over again.

The periodicity can be explained by the fact that the system has a conserved quantity
$$ F(x,y) = \alpha \log(y) – \beta y + \gamma \log(x) – \delta x \,. $$
“Conserved quantity” means exactly what it says on the tin: \( F(x,y) \) does not change over time. You can check that
$$ \frac{d F}{d t} = \frac{\partial F}{\partial x} \frac{d x}{d t} + \frac{\partial F}{\partial y} \frac{d y}{d t} $$
is zero by virtue of the Lotka-Volterra equations (1)-(2). We can also confirm this graphically by drawing a contour plot of \( F(x,y) \) and comparing it to the curve that a solution traces in the \( (x,y) \)-plane. We see that the solution stays on one of the level sets of \( F \):

A plot showing the population of rabbits on the x-axis and the population of foxes on the y-axis. The contour lines of F are closed curves nested within each other. The path traced by a solution coincides with one of the contour lines.
Contour lines of the conserved quantify F (yellow) and the path traced by a solution to the Lotka-Volterra equations (white).

The Volterra Chain

To keep our equations simple, let’s set all the constants equal to 1 and consider the system
$$\begin{cases}
\displaystyle \frac{\mathrm d x}{\mathrm d t} = (1 – y) x \,, \\
\displaystyle \frac{\mathrm d y}{\mathrm d t} = (x – 1) y \,.
\end{cases}$$

What if we add another species to the ecosystem? One that eats foxes. If we denote its population size by \( z \), then the system of equations becomes
$$\begin{cases}
\displaystyle \frac{\mathrm d x}{\mathrm d t} = (1 – y) x \,, \\
\displaystyle \frac{\mathrm d y}{\mathrm d t} = (x – z) y \,, \\
\displaystyle \frac{\mathrm d z}{\mathrm d t} = (y – 1) z \,.
\end{cases}$$
Now why stop at three? Consider a whole sequence of species \( q_1, \ldots, q_n  \), such that each species eats the species whose index is one less. This leads to the system of equations
$$\begin{cases}
\displaystyle \frac{\mathrm d q_1}{\mathrm d t} = (1 – q_2) q_1 \,, \\
\displaystyle \frac{\mathrm d q_i}{\mathrm d t} = (q_{i-1} – q_{i+1}) q_i \qquad \text{ for } i = 2, \ldots, n-1 \,, \\
\displaystyle \frac{\mathrm d q_n}{\mathrm d t} = (q_{n-1} – 1) q_n \,.
\end{cases}$$
This system of equations is known as the Volterra chain. As a biological model, it probably isn’t very realistic. It assumes that there is a long food chain where each species exclusively eats the one just below it. But this isn’t a biology-off, it’s a math-off. And mathematically, the Volterra chain is an interesting object.

The Volterra Chain is a discrete analogue of certain wave equations, where the continuous space variable of a wave equation is replaced by the discrete sequence of species forming our food chain. If we take a large number of species \(n\), it is not hard to see the wavy nature of this system:

A sequence of many plots of population over time. Each graph has a peak at a slightly later time than the previous graph. The graphs are arranged in a 3D perspective such the peaks look like a travelling wave.
A disturbance in the population sizes of many species (numbered 1,2,3,…) propagates like a wave.

In this picture we started with a spike in population of species number 1, the lowest on the food chain. This perturbation ripples through the other species like a wave. After the wave has passed, population numbers settle back into the equilibrium.

Such a solitary wave, one that travels along without changing its shape, is called a soliton.

Solitons and water waves

There are several ways to approach the theory of soliton equations, but on some level they all come back to our observation that the two-species Lotka-Volterra model has a conserved quantity. Soliton equations have a lot of conserved quantities (infinitely many in fact). And it turns out that if you have an equation that conserves many different abstract things, you can deduce that it will also conserve some very tangible features, like the shape of a traveling wave.

Another equation that famously exhibits solitons is the Korteweg-de Vries (KdV) equation, modelling waves in a shallow canal. You can see an example of a KdV soliton in this video from the Scripps Institution of Oceanography:

The mathematical description of the solitons and other features of the KdV equation mimics that of the Volterra chain. In fact, you can consider the KdV equation as a limit of the Volterra chain with infinitely many species!

Leave a Reply

Your email address will not be published. Required fields are marked *