Lotka-Volterra Calculator

Solve the predator-prey equations: find the equilibrium populations and simulate how prey and predator numbers evolve over time.

Quick Facts

Model
Lotka-Volterra predator-prey ODEs, solved with a 4th-order Runge-Kutta numerical integrator
dx/dt = αx − βxy (prey); dy/dt = δxy − γy (predators). Equilibrium: x* = γ/δ, y* = α/β.

Your Results

Calculated
Prey population at time t
-
Simulated x(t)
Predator population at time t
-
Simulated y(t)
Equilibrium prey population
-
x* = γ/δ
Equilibrium predator population
-
y* = α/β

Ready

Enter the four rate coefficients and starting populations, then calculate.

About the Lotka-Volterra equations

The Lotka-Volterra equations, developed independently by Alfred Lotka (1925) and Vito Volterra (1926), are the foundational mathematical model of predator-prey population dynamics in ecology. They describe how the populations of two interacting species — a prey species and a predator species that depends on it for food — change continuously over time. The model is a pair of coupled, nonlinear first-order differential equations that produce the classic cyclical "boom and bust" pattern seen in real predator-prey systems, such as the century of Hudson's Bay Company fur-trapping records for snowshoe hares and Canada lynx.

The equations

Let x(t) be the prey population and y(t) be the predator population at time t. The model is:

  • dx/dt = αx − βxy — prey grow exponentially at rate α in the absence of predators, and are removed by predation at a rate proportional to the product of both populations (rate constant β).
  • dy/dt = δxy − γy — predators grow in proportion to how much prey they consume (rate constant δ), and die off at a constant per-capita rate γ in the absence of prey.

All four parameters (α, β, γ, δ) must be positive. α is the prey's intrinsic growth rate, β is the predation (attack) rate, γ is the predator's death rate, and δ is the efficiency with which consumed prey are converted into new predators.

Equilibrium point

Setting both derivatives to zero gives a single non-trivial (coexistence) equilibrium: x* = γ/δ (prey) and y* = α/β (predators). At this point neither population changes — but the equilibrium is a "center," not an attractor: starting anywhere else produces a closed periodic orbit around (x*, y*) rather than convergence toward it. The size of the orbit is fixed entirely by the starting populations, which is why this calculator also reports the population trajectory (via numerical integration), not just the fixed point.

Why the populations cycle

When prey are abundant, predators have plenty to eat and their numbers grow (dy/dt > 0). More predators then consume prey faster than prey can reproduce, so the prey population falls. With less prey, predators start to starve and decline (dy/dt < 0). With fewer predators, prey pressure eases and the prey population rebounds — restarting the cycle. This out-of-phase oscillation, with predator peaks lagging prey peaks, is the model's signature prediction and matches the qualitative shape of many real predator-prey time series, even though the basic model ignores carrying capacity, age structure, and environmental noise.

Typical parameter magnitudes

  • Textbook demonstration values are often small, e.g. α = 0.6–1.1/year (rabbit-like growth), β = 0.001–0.02 (depends on population units), γ = 0.4–0.9/year, δ = 0.001–0.02.
  • Units matter: β and δ scale with how populations are counted (individuals, hundreds, thousands), so the same biological interaction can have very different-looking coefficients depending on the units used to record x and y.
  • A conserved quantity, V = δx − γ ln(x) + βy − α ln(y), stays constant along any trajectory of the ideal (undamped) model — a useful check that a numerical simulation is behaving correctly over long time spans.

Limitations of the basic model

The classic Lotka-Volterra system assumes unlimited prey food supply, no carrying-capacity ceiling, no time delays, and a linear ("mass-action") predation term. Real populations are also affected by seasonality, disease, multiple predator or prey species, and demographic randomness at low population sizes. Extended versions — such as the Rosenzweig-MacArthur model with logistic prey growth and saturating (Holling type II) predation — address some of these issues while keeping the same coupled-ODE structure.

Frequently Asked Questions

What do α, β, γ, and δ actually represent?
α is the prey's per-capita growth rate with no predators present. β is the predation rate: how quickly predators remove prey per encounter. γ is the predator's per-capita death rate with no prey present. δ is how efficiently consumed prey convert into new predators. All four are positive constants calibrated from field or experimental data.
How is the equilibrium point calculated?
Set dx/dt = 0 and dy/dt = 0 and solve: the non-trivial solution is x* = γ/δ (equilibrium prey population) and y* = α/β (equilibrium predator population). This is the center point that both populations orbit around; it is not a value either population settles into.
How does this calculator find the population at time t?
There is no simple closed-form solution for x(t) and y(t) in the general Lotka-Volterra system, so this calculator numerically integrates the two differential equations forward from your starting populations using the classic 4th-order Runge-Kutta method (RK4), a standard, accurate technique for solving systems of ODEs step by step.
Why do the prey and predator peaks not happen at the same time?
Predators only start increasing once prey are already abundant, and prey only start recovering once predators have already declined — so predator population peaks lag behind prey population peaks in every full cycle. This phase lag is a defining, testable feature of the model.
Can either population go negative or hit zero?
In the idealized continuous model populations approach but never mathematically reach zero — they can get extremely close during a "bust," which is when real populations would likely go extinct due to demographic randomness that the basic model does not include. Very small oscillation minima in a simulation should be read as "at risk of extinction," not as a literal population count.