HomeArticlesPredator-Prey Dynamics

Predator and Prey: The Lotka-Volterra Oscillation

Why two coupled growth equations chase each other in an endless cycle, and what changes when you replace the equations with particles.

mysimulator teamUpdated June 2026≈ 7 min read▶ Open the simulation

Two coupled equations, one oscillation

The Lotka-Volterra equations (Alfred Lotka, 1925; Vito Volterra, 1926, discovered independently) are the simplest mathematical model of a predator and a prey species interacting through consumption alone, with no other limiting factor:

dPrey/dt     = a*Prey - b*Prey*Predator
dPredator/dt = c*Prey*Predator - d*Predator

a = prey growth rate         b = predation rate
c = predator growth per prey eaten     d = predator death rate
live demo · prey and predator particles interacting locally● LIVE

Without predators, prey grow exponentially (a·Prey); without prey, predators starve exponentially (−d·Predator). The coupling terms b·Prey·Predator and c·Prey·Predator model encounters between the two populations — more of both means more meetings, so predation and predator growth both scale with the product of the two populations, the same mass-action assumption used for chemical reaction rates.

Why the populations chase each other in circles

Solve the equations and, away from the trivial all-zero equilibrium, the two populations trace a closed, repeating cycle rather than settling to a fixed point: prey grow while predators are scarce, the resulting abundance of prey lets predators grow, the resulting abundance of predators crashes the prey population, and the resulting scarcity of prey then crashes the predator population — back to the start. Plotted over time, prey and predator curves both oscillate with the same period, but the predator peak lags visibly behind the prey peak, because predators only grow after prey have already become abundant.

Plotted instead as prey versus predator on a phase plane (rather than each against time), the system traces a closed loop around a single equilibrium point where dPrey/dt = dPredator/dt = 0 — a centre, in the language of dynamical systems, meaning nearby trajectories neither spiral into it nor away from it, they just orbit it at a fixed amplitude set entirely by the initial conditions. This is a delicate, structurally unstable property: the basic Lotka-Volterra model has no damping, so unlike almost every other coupled oscillator in physics or engineering, its cycles do not shrink toward equilibrium over time.

From two numbers to hundreds of particles

The two differential equations describe population totals directly, assuming everyone in each species can instantly interact with everyone in the other — a well-mixed, spatially uniform population. The simulation on this page instead gives each prey and predator individual position, velocity and simple local rules: prey wander and reproduce at some rate, predators chase nearby prey and reproduce when they catch one, and both die (of old age for prey, of starvation for predators that catch nothing for too long). No global equation is solved anywhere in the code — the same boom-and-bust oscillation you would get from the differential equations emerges purely from thousands of local, particle-level interactions, plus the ability to actually see the spatial structure an ODE model completely hides: prey clusters getting hunted down locally, predators concentrating temporarily where prey is dense, and empty regions recovering while the action moves elsewhere.

Why real ecosystems don't oscillate forever

The pure model is famously fragile: any added realism — a carrying capacity limiting how many prey the environment can support even with zero predators, a saturating (Type II) functional response where each predator's kill rate plateaus instead of growing linearly with prey density, or demographic noise from small population sizes — typically damps the oscillation toward a stable equilibrium or, in other parameter regimes, destabilises it into extinction, rather than preserving the neutral, undamped cycles of the idealised equations. Lotka-Volterra is therefore best understood as a minimal, deliberately oversimplified starting point that demonstrates why predator-prey systems oscillate at all, not as a quantitatively accurate model of any specific real ecosystem.

Frequently asked questions

Why does the predator population peak after the prey population, not at the same time?

Because predator growth in the model depends on the product of prey and predator numbers - predators can only multiply once prey are already abundant enough to be caught often. That built-in lag is what produces the characteristic delayed, chasing oscillation between the two curves rather than them rising and falling together.

Do the oscillations in the basic Lotka-Volterra model ever settle down?

No, not in the idealised equations - the equilibrium point is a neutral centre, so trajectories orbit it forever at an amplitude fixed by the starting populations, with no damping. Real ecosystems oscillate less cleanly because added realism, like a carrying capacity or a saturating predation rate, typically damps the cycle toward equilibrium instead.

Does this simulation solve the Lotka-Volterra differential equations directly?

No. It simulates individual prey and predator particles moving and interacting under simple local rules - wandering, hunting, reproducing, starving - with no global equation solved anywhere. The same characteristic boom-and-bust population oscillation the equations predict emerges from those local interactions, plus visible spatial structure the equations cannot show.

Try it live

Everything above runs in your browser — open Prey-Predator and change the parameters while it is running. Nothing is installed, nothing is uploaded, the whole model lives in one tab.

▶ Open Prey-Predator simulation

What did you find?

Add reproduction steps (optional)