Written by Alexei Gilchrist, updated some time ago
The Lotka-Voltera equations are a very simple model of predator-prey dynamics. They lead to oscillatory behaviour in both populations.
Level: 2, Subjects: Oscillators

1 Predator-Prey Model

This is a simple model of a predator-prey system. The key assumptions is that the prey, \(x\), have unlimited food and will grow exponentially at a rate \(A\) unless killed by predators, \(y\), which happens at a rate \(B\) when they encounter them. The predators die off at a rate \(C\) and can increase their numbers at a rate \(D\) by eating prey . The rate of change of both population numbers is proportional to the size of the population. These assumptions can be encoded in the following differential equations, \begin{align}\label{eq:lotka-voltera} \dot{x} &= Ax-Bxy &\\ \dot{y} &= Dxy-Cy, \end{align} which are a pair of coupled first-order nonlinear differential equations.

Although the nonlinearity make a solution difficult, we can numerically integrate the equations to plot their time evolution (prey in green and predators in red), notice the predator populating lags behind the prey population:

Populations of prey (green) and predators (red). Notice how the predator population lags behind the prey population.

Instead of trying to solve the equations we can easily construct the dynamical map:

An alternative representation of the predator-prey system. Here the prey are on the \(x\) axis and predators are on the \(y\) axis. Again notice how the predator population lags behind the prey population. With this kind of view the systems behaviour for a range of initial conditions is apparent at a glance.
Notice the strange feature around which the dynamics seems to flow? It would have been hard to predict that feature just by looking at the equations. It's a fixed point of the motion and now we know it's there, finding where is easy! We set \(\dot{x}(t)=\dot{y}(t)=0\) and solving the resulting equations yields two possibilities \begin{equation*} \left\{x(t) =0, \;\;y(t) = 0\right\}, \qquad \left\{x(t) =\frac{C}{D}, \;\;y(t) = \frac{A}{B}\right\}. \end{equation*} The first solution is trivial (all predators and all prey are dead), the second is the fixed point that we can see in the map.

2 Linearisation

Say we were to start the simulation close to the fixed point. We can see from the graph that the system would oscillate around the fixed point in something resembling an ellipse — i.e. the population numbers will oscillate like a sinusoid function. In such a region the population numbers would behave like a simple oscillator with a fixed phase between the two populations (see harmonic-oscillator).

Small ocillations in the predator-prey system near the equilibrium value lead to the familiar sinusoid dynamics of a harmonic oscillator.

Let's examine the motion near this fixed point by changing variables to \begin{align*} x(t) &= x_0 +\delta_x(t) \\ y(t) &= y_0 +\delta_y(t) \end{align*} What we are doing is a process called linearisation. Substituting the above into \eqref{eq:lotka-voltera} and expanding yields: \begin{align*} \dot{\delta_x} &= -\frac{BC}{D}\delta_y - B\delta_x\delta_y \\ \dot{\delta_y} &= \frac{AD}{B}\delta_x + D\delta_x\delta_y. \end{align*} Since \(\delta_x\) and \(\delta_y\) are both small, \(\delta_x\delta_y\) will be even smaller and we can neglect it, Giving \begin{align*} \dot{\delta_x} &= -\frac{BC}{D}\delta_y \\ \dot{\delta_y} &= \frac{AD}{B}\delta_x . \end{align*} These equations may not appear familiar it this form so lets take the first equation and differentiate it: \begin{equation*} \ddot{\delta_x} + \frac{BC}{D}\dot{\delta_y} = 0. \end{equation*} Now substitute in \(\dot{\delta_y}\), \begin{equation*} \ddot{\delta_x} + AC\delta_x = 0. \end{equation*} This is nothing more than the equation of motion for simple harmonic motion with an angular frequency of \(\omega_0=\sqrt{AC}\). Interestingly the oscillation frequency does not depend on \(B\), the rate predators kill their prey, or \(D\), the rate the predators reproduce. For the parameters in the plot above the period should be \(T=2\pi/\omega_0=6.3\), have a close look at the plot.

Here is a model you can play with

Click figure to download the CDF demo.
The dynamical map of the Lotka-Voltera equations. \(x\) represents predator numbers and \(y\) prey numbers.