JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

Predator and Prey: Lotka-Volterra

Rabbits feed foxes, foxes thin the rabbits, and round and round it goes. Here is the simplest pair of equations that captures that endless chase — and the honest story of why its perfect cycles are too good to be true.

Two animals, one story

Picture an island with exactly two kinds of animal: rabbits, who eat unlimited grass, and foxes, who eat only rabbits. When rabbits are plentiful the foxes feast and multiply; the swelling fox population then eats the rabbits down; with fewer rabbits the foxes starve and decline; and with fewer foxes the rabbits bounce back — and the whole story begins again. This rung is where every tool you have climbed past finally goes to work, and the Lotka-Volterra model is the gentlest possible start: just two coupled first-order equations that hold this entire ecological drama.

Let x stand for the prey (rabbits) and y for the predators (foxes). The model is the pair x' = a x - b x y and y' = -c y + d x y, with all four constants a, b, c, d positive. The trick to never forgetting it is to read each term as a sentence. The lone term a x says prey breed on their own at rate a — grass is unlimited, so left alone they grow exponentially. The lone term -c y says predators, given no food, die off at rate c. Everything interesting lives in the shared term x y.

The meeting term is the whole idea

Why a product x y, of all things? Because that product is a count of encounters. If you scatter x rabbits and y foxes at random across the island, the number of rabbit-meets-fox events in a moment is proportional to x times y — double the rabbits, you double the meetings; double the foxes, you double them again. Each meeting is bad for the rabbit (the -b x y in the prey equation) and good for the fox (the +d x y in the predator equation). That single nonlinear term is what couples the two species and lifts this above anything you could solve term by term.

Where nothing changes: the two equilibria

Before tracing any motion, find the resting points — set both right-hand sides to zero, exactly as you learned in the phase-plane rung. From a x - b x y = 0 and -c y + d x y = 0 you get two solutions. The dull one is x = 0, y = 0: an empty island, nothing to do. The interesting one is the coexistence point x = c/d, y = a/b, where prey breeding exactly balances predation and predator gains exactly balance death. There, and only there, both populations could in principle hold steady forever.

Your instinct from earlier guides is to classify that coexistence point by linearizing — compute the Jacobian there, read off its eigenvalues, and name the equilibrium. Do it, and the eigenvalues come out purely imaginary, plus/minus i times sqrt(a c). Purely imaginary eigenvalues are the signature of a center: no growth, no decay, just rotation. So the linear picture says the populations should circle the coexistence point forever, neither settling onto it nor flying away.

A hidden bookkeeping total

The separate argument is one of the most satisfying tricks in the whole subject: find a conserved quantity — a number you can compute from (x, y) that never changes as the system evolves, a hidden 'energy'. For Lotka-Volterra it exists, and it is the function H = d x - c ln x + b y - a ln y. You can verify by the chain rule that dH/dt = (dH/dx) x' + (dH/dy) y' works out to exactly zero along every solution; that is the honest proof, not a hand-wave.

The payoff is immediate. Because H never changes, every trajectory is trapped on a single level curve H(x, y) = constant — and for this H those level curves are nested closed loops encircling the coexistence point. So the cycles are real: the center survives the nonlinear truth, and the populations genuinely orbit forever, each starting condition tracing its own loop. This is why predators peak *just after* prey: the state runs around the loop, prey cresting first and predators a quarter-cycle behind, exactly the out-of-phase rise and fall.

Prey   x' = a x - b x y      (breed,   lose to meetings)
Pred   y' = -c y + d x y     (starve,  gain from meetings)

Equilibria:  (0, 0)   and   (c/d, a/b)
Conserved:   H = d x - c ln x + b y - a ln y   (dH/dt = 0)
Orbits:      level curves H = const  ->  nested closed loops
The whole model on one card: two equations, two rest points, and the conserved H whose level curves are the closed orbits.

Reading the cycle, then doubting it honestly

  1. Start at a point off the equilibrium, say plenty of prey and few predators. Prey climb (lots of grass, few hunters), so x grows first.
  2. Abundant prey feed the predators, so y now climbs too — but it lags, because the foxes have to eat and breed before their numbers swell.
  3. Now too many predators overgraze the prey: x falls. With food vanishing, the predators soon follow and y falls too.
  4. With few predators left, the prey recover — and you are back where you began, having traced one full closed orbit. The loop repeats forever.

One clean simplification before you trust any of it: there look like four constants, but the cycle's *shape* is governed by far fewer. By rescaling the variables and the clock — measuring rabbits in units of c/d, foxes in units of a/b, and time in units of 1/sqrt(a c) — you can boil the system down to a tidier form with only one real parameter left. This is nondimensionalization, and it tells you which combinations of a, b, c, d actually matter, sparing you from chasing four numbers when the geometry hinges on one.

Now the honesty the model demands. Those perfect, nested cycles are special to this exact equation and are not robust — the center is structurally fragile. With no grass limit, prey alone would explode exponentially without the foxes; that is plainly wrong for any real island. Add even a small carrying-capacity term to the prey and the closed loop usually turns into an inward spiral winding toward a steady coexistence — the cycles were a knife-edge all along. And real predators get full and stop eating, which the bare product x y ignores. The model is a first, idealized sketch: illuminating precisely *because* it is simple, not because it is realistic. Do not over-read its perpetual oscillation as a universal law of ecology.