BIOL-208 · Lesson 4 of 12 · 25 min

Population growth and regulation

A population is a group of individuals of one species living in the same area, and its size changes for only four reasons: births add individuals, deaths remove them, immigration brings them in and emigration takes them out. Everything that happens to a population, from the explosive spread of zebra mussels through the Great Lakes to the slow recovery of whooping cranes, is a matter of these four processes. BIOL-108 introduced exponential and logistic growth in outline. This lesson develops them properly: how growth rates are measured, why growth eventually slows, how the timing of density dependence can make populations cycle or behave chaotically, how chance events threaten small populations, and what regulates real populations in nature.

\[N_{t+1} = N_t + B - D + I - E\]

Exponential growth

If every individual has the same average chance of giving birth and of dying, and these chances do not change as the population grows, the population grows by a constant proportion each unit of time. For populations that breed continuously, the rate of change is proportional to population size:

\[\frac{dN}{dt} = rN \quad\Longrightarrow\quad N(t) = N_0\, e^{rt}\]

Here \( r \) is the intrinsic rate of increase: the per capita birth rate minus the per capita death rate when resources are unlimited. For species that breed once a year in a pulse, such as many birds and fish, growth is better described in discrete steps with the finite rate of increase \( \lambda \), the ratio of population size in one year to the year before:

\[N_{t+1} = \lambda N_t \quad\Longrightarrow\quad N_t = N_0 \lambda^t, \qquad \lambda = e^{r}\]

When \( r > 0 \) (or \( \lambda > 1 \)) the population grows; when \( r < 0 \) (\( \lambda < 1 \)) it shrinks. A useful rule of thumb is that the doubling time is about 0.693 divided by \( r \).

Intrinsic rates of increase and doubling times (approximate values)
import math
for name, r in [("bacteria (per hour)", 1.4), ("house mice (per week)", 0.05),
                ("white-tailed deer (per year)", 0.35), ("grizzly bear (per year)", 0.04)]:
    td = math.log(2) / r
    print(f"{name:30s} r = {r:5.2f}  lambda = {math.exp(r):.3f}  doubling time = {td:6.1f}")
Output
bacteria (per hour)            r =  1.40  lambda = 4.055  doubling time =    0.5
house mice (per week)          r =  0.05  lambda = 1.051  doubling time =   13.9
white-tailed deer (per year)   r =  0.35  lambda = 1.419  doubling time =    2.0
grizzly bear (per year)        r =  0.04  lambda = 1.041  doubling time =   17.3

Exponential growth happens in nature when a population is small relative to its resources. Introduced species often show it at first: European starlings, released in New York's Central Park in 1890 and 1891, spread across North America within about 60 years and now number in the tens of millions. Populations recovering from a crash also grow exponentially for a time. But no population can grow exponentially for long. A pair of white-tailed deer growing at \( r = 0.35 \) per year would, after a century, have more descendants than there are atoms in a small planet. Something must slow growth down.

Density dependence and logistic growth

As a population becomes crowded, individuals compete for food, space or nesting sites, disease spreads more easily, and predators may concentrate on the abundant prey. Birth rates fall and death rates rise. These effects are called density-dependent because their strength depends on population density. The simplest model of density dependence, the logistic model introduced by Pierre-François Verhulst in 1838, assumes that the per capita growth rate declines in a straight line as the population approaches the carrying capacity, \( K \), the largest population the environment can support indefinitely:

\[\frac{dN}{dt} = rN\Bigl(1 - \frac{N}{K}\Bigr)\]

When \( N \) is small, the term in brackets is close to 1 and growth is nearly exponential. As \( N \) approaches \( K \), the term approaches zero and growth stops. Plotted against time, the population follows an S-shaped (sigmoid) curve. The population grows fastest at \( N = K/2 \), where the product of numbers and per capita rate is greatest. That point is the basis of the maximum sustainable yield used in managing fisheries and game: a harvest equal to the growth rate at \( K/2 \), which is \( rK/4 \), can in theory be taken indefinitely. In practice, setting harvests at the theoretical maximum has repeatedly led to collapse, because \( r \) and \( K \) are uncertain and vary from year to year, as the collapse of Atlantic cod off Newfoundland in the early 1990s showed.

Two graphs. The left shows population size against time: an exponential J-shaped curve rising without limit and a logistic S-shaped curve levelling off at the carrying capacity K. The right shows the growth rate dN/dt against N, a hump peaking at K over 2.
Exponential and logistic growth, and the logistic growth rate peaking at K/2
Fitting the logistic model to census data (invented)
import numpy as np
from scipy.optimize import curve_fit

def logistic(t, K, r, N0):
    return K / (1 + (K - N0) / N0 * np.exp(-r * t))

# Invented census data: sheep introduced to an island (counts by year)
rng = np.random.default_rng(208)
years = np.arange(0, 26, 2)
true = logistic(years, 1700, 0.45, 50)
counts = np.round(true * rng.normal(1, 0.06, years.size))
(K, r, N0), _ = curve_fit(logistic, years, counts, p0=[1500, 0.3, 50])
for y, c in zip(years, counts):
    print(f"year {y:2d}: {int(c):5d}")
print(f"fitted K = {K:.0f}, r = {r:.3f} per year, N0 = {N0:.0f}")
print(f"maximum growth at N = K/2 = {K/2:.0f}; MSY = rK/4 = {r*K/4:.0f} per year")
Output
year  0:    49
year  2:   107
year  4:   242
year  6:   552
year  8:   862
year 10:  1201
year 12:  1545
year 14:  1441
year 16:  1682
year 18:  1620
year 20:  1884
year 22:  1735
year 24:  1626
fitted K = 1713, r = 0.427 per year, N0 = 56
maximum growth at N = K/2 = 856; MSY = rK/4 = 183 per year

Time lags, cycles and chaos

The logistic model assumes that a population responds instantly to its own density. Real populations often respond with a delay: the number of young born this year may depend on how much food was available last year, or on the density when their parents were growing up. A delay of roughly a generation can make a population overshoot its carrying capacity, then crash below it, producing oscillations. Robert May showed in the 1970s that even a very simple discrete-time version of logistic growth, appropriate for species that breed once a year, can produce stable equilibria, regular cycles or chaos, depending only on how fast the population grows.

\[N_{t+1} = N_t + r_d N_t \Bigl(1 - \frac{N_t}{K}\Bigr)\]
The discrete logistic model: smooth approach, damped oscillation, cycles and chaos
def discrete_logistic(rd, K=100, N0=10, years=30):
    N = [N0]
    for _ in range(years):
        n = N[-1]
        N.append(max(n + rd * n * (1 - n / K), 0))
    return N

for rd in (0.5, 1.8, 2.3, 2.7):
    traj = discrete_logistic(rd)
    tail = ", ".join(f"{x:5.1f}" for x in traj[-8:])
    print(f"rd = {rd}:  last 8 years -> {tail}")
Output
rd = 0.5:  last 8 years -> 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0
rd = 1.8:  last 8 years -> 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0
rd = 2.3:  last 8 years -> 118.2,  68.8, 118.2,  68.8, 118.2,  68.8, 118.2,  68.8
rd = 2.7:  last 8 years -> 126.5,  36.0,  98.2, 102.9,  94.8, 108.1,  84.4, 120.0

With a low growth rate (0.5), the population approaches 100 smoothly. At 1.8 it overshoots and the oscillations dampen. At 2.3 it settles into a stable two-point cycle, alternating between high and low years. At 2.7 the pattern never repeats: this is deterministic chaos, in which the next value is fully determined by the current one, yet tiny differences in starting conditions grow until long-term prediction is impossible. The lesson for ecologists is that irregular fluctuations in a population do not necessarily mean that the environment is fluctuating; they can arise from the population's own dynamics.

Density-independent factors

Not everything that kills organisms depends on how crowded they are. A late spring frost, a flood, a severe drought or an early blizzard can kill a large fraction of a population regardless of its density. These density-independent factors cause fluctuations but cannot by themselves regulate a population, because they do not push it back toward any particular size. In many insects of temperate regions, weather explains most year-to-year changes in abundance, while density-dependent factors such as parasitoids and disease set the long-run level around which populations fluctuate. A long debate among ecologists in the mid-twentieth century over whether populations are controlled mainly by weather or by density has been resolved by recognizing that both act together.

Small populations and chance

Deterministic models assume that births and deaths happen at exactly their average rates. In small populations, chance matters. Demographic stochasticity is randomness in the fates of individuals: by bad luck, all the chicks hatched in a year might be male. Environmental stochasticity is randomness in conditions from year to year, such as good and bad seasons, which affects all individuals together. Even a population with a positive average growth rate can go extinct by chance if it is small and its growth rate varies a lot. This is why conservation biologists estimate a minimum viable population and use population viability analysis, covered in BIOL-367.

A stochastic population model: small populations face a higher risk of extinction (illustrative parameters)
import numpy as np

def extinction_prob(N0, mean_r, sd_r, years=50, reps=5000, seed=208):
    rng = np.random.default_rng(seed)
    extinct = 0
    for _ in range(reps):
        N = N0
        for _ in range(years):
            lam = np.exp(rng.normal(mean_r, sd_r))
            N = rng.poisson(N * lam)          # demographic noise
            if N == 0:
                extinct += 1
                break
    return extinct / reps

for N0 in (5, 20, 80):
    p = extinction_prob(N0, mean_r=0.01, sd_r=0.25)
    print(f"start {N0:3d} individuals: probability of extinction within 50 years = {p:.3f}")
Output
start   5 individuals: probability of extinction within 50 years = 0.777
start  20 individuals: probability of extinction within 50 years = 0.448
start  80 individuals: probability of extinction within 50 years = 0.137

Small populations face a further risk called the Allee effect, after the ecologist Warder Clyde Allee: below some density, individuals do worse rather than better, because they cannot find mates, cooperate in defence or feed effectively. Colonial seabirds and many marine invertebrates that spawn into the water need large numbers to breed successfully. Allee effects create a threshold below which a population tends to decline to extinction, a danger for species reduced to a few individuals.

Regulation in real populations

Field studies show that density dependence is common but rarely as simple as the logistic model. In song sparrows on Mandarte Island, British Columbia, studied for decades, the number of young produced per female falls steeply as the population grows, because territories become crowded. In plants, crowding causes self-thinning: as seedlings in a dense stand grow, many die, and the survivors grow larger, so that the number of plants falls as mean plant mass rises along a predictable line. In many mammals, density dependence acts through juvenile survival, while adult survival stays high. Lesson 5 shows how life tables separate these effects by age.

Worked problem

Is growth density-dependent?

A deer population was counted in five years: 400, 520, 640, 730, 790. Calculate the per capita growth rate each year and describe the trend.

Show solution
  1. Per capita growth = (N(t+1) − N(t)) / N(t).
  2. 400 to 520: 120/400 = 0.30. 520 to 640: 120/520 = 0.23.
  3. 640 to 730: 90/640 = 0.14. 730 to 790: 60/730 = 0.08.
  4. The per capita rate falls steadily as N rises.

Answer: Per capita growth fell from 0.30 to 0.08 as the population grew, consistent with density dependence and a carrying capacity probably in the 850–950 range.

Common mistakes

  • MistakeCarrying capacity is a fixed number for a species.

    InsteadK depends on the environment and changes with food, habitat and climate; it is a property of a population in a place.

  • MistakeA population grows fastest when it is near K.

    InsteadLogistic growth is fastest at K/2, where numbers and per capita rate together give the largest increase.

  • MistakeIrregular fluctuations must be caused by a changing environment.

    InsteadTime lags and strong density dependence can produce cycles and chaos even in a constant environment.

  • MistakeFloods and frosts regulate populations.

    InsteadDensity-independent factors cause fluctuations but cannot regulate, because they do not push a population toward a particular size.

  • MistakeA population with positive average growth cannot go extinct.

    InsteadSmall populations can go extinct by chance through demographic and environmental stochasticity or Allee effects.

Summary and key terms

  • Population change comes from births, deaths, immigration and emigration.
  • Exponential growth (dN/dt = rN) occurs when resources are unlimited; λ = e^r for discrete breeders.
  • Density dependence slows growth; the logistic model has growth fastest at K/2 and stopping at K.
  • Maximum sustainable yield is rK/4 in theory, but uncertainty makes harvesting at that level risky.
  • Time lags and high growth rates in discrete models can produce oscillations, cycles and chaos.
  • Density-independent factors cause fluctuations; density-dependent factors regulate.
  • Small populations face demographic and environmental stochasticity and Allee effects that raise extinction risk.
intrinsic rate of increase (r)
Per capita birth rate minus death rate under unlimited resources.
finite rate of increase (λ)
The ratio of population size in one time step to the previous one.
carrying capacity (K)
The largest population an environment can support indefinitely.
density dependence
A change in per capita birth or death rates with population density.
logistic growth
Growth that slows as a population approaches carrying capacity, giving an S-shaped curve.
maximum sustainable yield
The largest harvest that can in theory be taken indefinitely, at K/2 in the logistic model.
deterministic chaos
Irregular, non-repeating dynamics produced by a fully deterministic model.
demographic stochasticity
Random variation in the births and deaths of individuals.
environmental stochasticity
Random variation in conditions that affects all individuals together.
Allee effect
Reduced per capita growth at low density, for example from difficulty finding mates.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. A population of 200 grows at r = 0.1 per year. What is its size after 10 years?

    Show answer

    200 × e^1 ≈ 544.

  2. Convert r = 0.2 to λ.

    Show answer

    λ = e^0.2 ≈ 1.22.

  3. What is the doubling time for r = 0.07 per year?

    Show answer

    0.693/0.07 ≈ 9.9 years.

  4. For K = 1,000 and r = 0.4, where is growth fastest and what is MSY?

    Show answer

    At N = 500; MSY = 0.4 × 1,000 / 4 = 100 per year.

  5. In the logistic model, what is dN/dt when N = K?

    Show answer

    Zero.

  6. Name two density-dependent and two density-independent factors.

    Show answer

    Dependent: competition for food, disease. Independent: frost, flood.

  7. Why can a discrete-time population oscillate when a continuous one does not?

    Show answer

    Discrete breeding builds in a one-step time lag, so the population can overshoot K.

  8. What is the difference between demographic and environmental stochasticity?

    Show answer

    Demographic is chance in individual fates; environmental is year-to-year variation affecting everyone.

  9. Give an example of an Allee effect.

    Show answer

    Colonial seabirds or spawning invertebrates that breed poorly at low density.

  10. Why did harvesting Atlantic cod at estimated MSY fail?

    Show answer

    Estimates of r and K were uncertain and too optimistic, and environmental variation added risk; the stock collapsed.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz