The Lotka-Volterra equations

The Lotka–Volterra equations, also known as the predator–prey equations, are a pair of first-order nonlinear differential equations, frequently used to describe the dynamics of biological systems in which two species interact, one as a predator and the other as prey.

The populations change through time according to the pair of equations: $$ {\left\lbrace\begin{aligned}{\frac {dx}{dt}}&=\alpha x-\beta xy,\; \\{\frac {dy}{dt}}&=\delta xy-\gamma y,\end{aligned}\right.} $$ where

The equations have periodic solutions and do not have a simple expression in terms of the usual trigonometric functions, although they are quite tractable.

A simple example

Suppose there are two species of animals, a baboon (prey) and a cheetah (predator). If the initial conditions are 10 baboons and 10 cheetahs, one can plot the progression of the two species over time; given the parameters that the growth and death rates of baboon are 1.1 and 0.4 while that of cheetahs are 0.1 and 0.4 respectively. The choice of time interval is arbitrary.

One may also plot solutions parametrically as orbits in phase space, without representing time, but with one axis representing the number of prey and the other axis representing the number of predators for all times.

An aside: These graphs illustrate a serious potential problem with this as a biological model: For this specific choice of parameters, in each cycle, the baboon population is reduced to extremely low numbers, yet recovers (while the cheetah population remains sizeable at the lowest baboon density). In real-life situations, however, chance fluctuations of the discrete numbers of individuals, as well as the family structure and life-cycle of baboons, might cause the baboons to actually go extinct, and, by consequence, the cheetahs as well. This modelling problem has been called the "atto-fox problem", an atto-fox being a notional \(10^{-18}\) of a fox.


Interactive plot

Parameters







Of course one can play with any javascript-based plotting library, and use their favourite style...

In this case we are using chart.xkcd.