Exponential growth cannot last
The simplest population model, dN/dt = rN, grows a population without bound at rate r. Real environments do not allow that — food, space and predators cap how many individuals can survive. The logistic growth model adds that cap directly into the equation, using a carrying capacity K:
dN/dt = r * N * (1 - N/K) when N << K: growth is nearly exponential, dN/dt ~ r*N when N -> K: growth rate -> 0, population levels off when N > K: dN/dt < 0, population declines back toward K
The S-curve and why K matters
Plotted over time, logistic growth traces an S-shaped curve: slow start, accelerating rise while resources are abundant, then a bend as competition for food and space intensifies, and a plateau at K, the maximum population the environment can sustain indefinitely. K is not fixed in nature — a drought, a new food source, or habitat loss can shift it up or down mid-simulation, and the population then grows or shrinks toward the new ceiling.
Adding a second species: Lotka-Volterra
A single logistic equation describes one species in a static environment. Real ecosystems couple species together, and the classic case is a predator and its prey. The Lotka-Volterra equations model both populations simultaneously:
dPrey/dt = a*Prey - b*Prey*Predator dPredator/dt = d*Prey*Predator - c*Predator a = prey growth rate, b = predation rate c = predator death rate, d = predator growth per prey eaten
Why predator-prey systems cycle instead of settling
Unlike single-species logistic growth, Lotka-Volterra does not settle to a fixed point under the basic equations — it cycles. Abundant prey lets predators multiply; more predators eat down the prey population; fewer prey starves the predators; predator numbers fall; prey rebounds; the cycle repeats. The two populations are permanently out of phase, with predator peaks trailing prey peaks. This lag is why real predator-prey pairs like lynx and snowshoe hare, tracked in Hudson's Bay Company fur records for over a century, show these boom-bust cycles rather than converging to a stable coexistence.
What breaks the idealised cycle
The pure Lotka-Volterra model assumes unlimited prey growth in the predator's absence and instantaneous, frictionless response — assumptions real ecosystems violate. Adding a carrying capacity to the prey's own growth term, or a saturating predation rate (a predator can only eat so fast even with abundant prey, the functional response), damps the oscillation toward a stable equilibrium instead of an endless cycle. This is why ecologists treat the basic Lotka-Volterra pair as a starting qualitative model, not a quantitative prediction — it explains why cycles exist, less precisely how large or how long each one will be.
Frequently asked questions
What happens to a population once it reaches carrying capacity?
Under the logistic model, growth rate falls to zero once N equals K because the (1 - N/K) term vanishes — births and deaths balance and the population holds steady at K, unless the environment itself changes and shifts K up or down.
Why do predator and prey populations cycle instead of reaching a stable balance?
In the basic Lotka-Volterra equations there is a built-in time lag: predators only decline after prey has already become scarce, and prey only recovers after predators have already declined. That lag produces oscillation rather than convergence to a fixed point — predator peaks trail prey peaks by roughly a quarter cycle.
Does real-world data actually show Lotka-Volterra style cycles?
Yes, the clearest example is the roughly decade-long boom-bust cycle between Canada lynx and snowshoe hare populations recorded in Hudson's Bay Company fur-trading records, which closely matches the qualitative shape predicted by the coupled predator-prey equations, though the amplitude and period depend on details the idealised model leaves out.
Try it live
Everything above runs in your browser — open Population Dynamics and change the parameters while it is running. Nothing is installed, nothing is uploaded, the whole model lives in one tab.
▶ Open Population Dynamics simulation