Logistic Growth and Equilibrium

When growth slows as it approaches a limit — feedback, carrying capacity, and stability

2026-02-26

Before You Start

You should know
What exponential growth looks like and why a system can grow quickly when nothing is stopping it.

You will learn
How limits enter a model, why growth slows near a carrying capacity, and what equilibrium means in a real system.

Why this matters
Very few real populations or environmental systems can grow forever. Logistic thinking is one of the first ways modelling becomes more realistic.

If this gets hard, focus on…
The story of fast growth early on, slower growth later, and a ceiling the system approaches. The equation is just a compact version of that story.

In 1944, the US Coast Guard introduced 29 reindeer to St Matthew Island in the Bering Sea as an emergency food reserve. With no predators, no disease pressure, and abundant lichen, the herd grew exponentially — from 29 to 6,000 animals in 19 years. Then, in the winter of 1963–64, the population crashed to 42. The lichen had been grazed to bare rock. The island’s carrying capacity had been overshot so badly that recovery was impossible, and the last reindeer died in 1980.

Exponential growth is always a temporary condition. Resources run out. Space fills. Competition intensifies. The logistic equation captures this reality by adding a single feedback term that makes growth slow as a population approaches the maximum its environment can sustain. The resulting S-shaped curve appears across ecology, epidemiology, technology adoption, and urban growth — wherever initial rapid expansion gives way to saturation. More importantly, the logistic equation introduces the concept of equilibrium: a state the system gravitates toward regardless of where it starts. Understanding which equilibria are stable and which are not turns out to be the key to understanding why some systems recover from disturbance and others collapse.

1. The Question

What happens when exponential growth hits a limit?

A bacteria colony grows exponentially in a petri dish — until nutrients run out. A city expands rapidly — until housing, water, or infrastructure constrains it. An invasive species spreads unchecked — until predators, disease, or competition slow it down.

The key insight: In all these cases, the growth rate decreases as the population increases. When the population is small, there’s plenty of room and resources — growth is nearly exponential. When the population is large, crowding and scarcity slow things down.

The mathematical question: How do we model growth that slows itself?


2. The Conceptual Model

From Exponential to Logistic

In exponential growth, the rate is proportional to the population:

\frac{dN}{dt} = rN

The rate increases forever as N increases.

In logistic growth, we add a brake — a term that reduces the growth rate as N gets large:

\frac{dN}{dt} = rN\left(1 - \frac{N}{K}\right)

Where: - N is the population - r is the intrinsic growth rate (growth rate when N is small) - K is the carrying capacity (maximum sustainable population)

Interpretation of the term \left(1 - \frac{N}{K}\right):

Population N/K $1 - N/K$ Growth
N \ll K (small) ≈ 0 ≈ 1 Nearly exponential
N = K/2 0.5 0.5 Half the max rate
N = K 1 0 No growth
N > K > 1 < 0 Decline

When N is small, $1 - N/K $, and we recover exponential growth.
When N = K, the brake term becomes zero — growth stops.
When N > K (overshoot), the brake term is negative — the population declines back toward K.


3. Building the Mathematical Model

The Logistic Differential Equation

\frac{dN}{dt} = rN\left(1 - \frac{N}{K}\right)

This is a nonlinear differential equation. The right side has an N^2 term when you expand it:

\frac{dN}{dt} = rN - \frac{r}{K}N^2

Unlike the exponential equation, this one doesn’t have a simple algebraic trick to solve. We can find the solution, but it requires more advanced techniques (separation of variables with partial fractions).

The Analytical Solution

The solution is:

N(t) = \frac{K}{1 + \left(\frac{K - N_0}{N_0}\right)e^{-rt}}

Where N_0 is the initial population at t = 0.

Don’t panic if this looks complicated. The key features are:

  1. As t \to 0: N(t) \to N_0 (starts at the initial value)
  2. As t \to \infty: N(t) \to K (approaches carrying capacity)
  3. The curve is S-shaped (sigmoid)

We’ll verify this solution numerically and explore its behavior visually.


4. Equilibrium Points

Finding Equilibria

An equilibrium is a state where \frac{dN}{dt} = 0 — the population doesn’t change.

Set the right side to zero:

rN\left(1 - \frac{N}{K}\right) = 0

This is zero when: 1. N = 0 (extinction equilibrium) 2. $1 - N/K = 0 N = K$ (carrying capacity equilibrium)

Two equilibrium points: N^* = 0 and N^* = K.

Stability Analysis (Conceptual)

An equilibrium is stable if small perturbations return to it.
An equilibrium is unstable if small perturbations grow away from it.

At N^* = 0:
- If you add a small population (N > 0), does it grow or shrink? - When N is small, \frac{dN}{dt} = rN(1 - N/K) \approx rN > 0 - The population grows away from zero - N = 0 is unstable

At N^* = K:
- If N is slightly below K, then $1 - N/K > 0$, so \frac{dN}{dt} > 0 → population increases toward K - If N is slightly above K, then $1 - N/K < 0$, so \frac{dN}{dt} < 0 → population decreases toward K - N = K is stable

This is negative feedback — deviations from the equilibrium are self-correcting.


5. Worked Example by Hand

Problem: A deer population in a forest reserve has K = 500 deer and r = 0.4 per year. The initial population is N_0 = 50.

  1. Write the logistic model.
  2. Estimate N after 5 years using Euler’s method with Δt = 1 year.
  3. What is the growth rate \frac{dN}{dt} when N = 250?

Solution

(a) Logistic model

\frac{dN}{dt} = 0.4 N \left(1 - \frac{N}{500}\right)

(b) Numerical solution with Euler’s method

Euler’s method: N_{i+1} = N_i + \frac{dN}{dt}\bigg|_{N_i} \cdot \Delta t

Year N \frac{dN}{dt} = 0.4N(1 - N/500) N + \frac{dN}{dt} \cdot 1
0 50 $0.4(50)(1 - 50/500) = 19.0$ 69.0
1 69 $0.4(69)(1 - 69/500) = 23.7$ 92.7
2 92.7 $0.4(92.7)(1 - 92.7/500) = 30.2| 122.9 | | 3 | 122.9| &#36;0.4(122.9)(1 - 122.9/500) = 37.1 160.0
4 160.0 $0.4(160.0)(1 - 160.0/500) = 43.5$ 203.5
5 203.5 203.5

After 5 years: N \approx 204 deer

(Using the analytical formula: N(5) \approx 206 deer — very close!)

(c) Growth rate at N = 250

\frac{dN}{dt} = 0.4(250)\left(1 - \frac{250}{500}\right) = 0.4(250)(0.5) = 50 \text{ deer/year}

At half the carrying capacity, the population grows at 50 deer per year — the maximum growth rate for this model.


6. Computational Implementation

Below is an interactive model with phase plot visualization.

<label>
  Initial population ($N_0$):
  <input type="range" id="n0-logistic-slider" min="10" max="990" step="10" value="50">
  <span id="n0-logistic-value">50</span>
</label>
<label>
  Carrying capacity ($K$):
  <input type="range" id="k-slider" min="100" max="1000" step="50" value="500">
  <span id="k-value">500</span>
</label>
<label>
  Growth rate ($r$ per year):
  <input type="range" id="r-logistic-slider" min="0.1" max="1.0" step="0.05" value="0.4">
  <span id="r-logistic-value">0.40</span>
</label>

Try this:

Top panel (time series): - Start with N_0 = 50, K = 500, r = 0.4. Watch the S-curve approach K. - Set N_0 = 600 (above carrying capacity). The population declines to K. - Increase r to 0.8. The approach to equilibrium is faster. - Decrease r to 0.2. The approach is slower.

Bottom panel (phase plot): - The curve shows \frac{dN}{dt} as a function of N. - Growth rate is zero at N = 0 and N = K (the equilibria). - Growth rate is maximum at N = K/2 (halfway to carrying capacity). - The pink dot shows where the current N_0 sits on this curve.


7. Interpretation

The S-Curve (Sigmoid Growth)

The logistic model produces an S-shaped curve: 1. Exponential phase (small N): slow at first because the population is small 2. Rapid growth phase (intermediate N): fastest growth around N = K/2 3. Saturation phase (large N): growth slows as N \to K

This pattern appears in: - Technology adoption curves - Epidemic spread (before intervention) - Language learning (word acquisition) - Market saturation

Maximum Growth Rate at N = K/2

The growth rate \frac{dN}{dt} = rN(1 - N/K) is a parabola when plotted against N.

To find the maximum, take the derivative with respect to N and set it to zero:

\frac{d}{dN}\left[rN\left(1 - \frac{N}{K}\right)\right] = r\left(1 - \frac{2N}{K}\right) = 0

&#36;1 - \frac{2N}{K} = 0 \Rightarrow N = \frac{K}{2}$

The population grows fastest at half the carrying capacity.

Ecological interpretation: When the population is small, there are few individuals to reproduce. When the population is large, competition slows things down. Maximum growth happens at the sweet spot in between.

Overshoot and Correction

If N > K (overshoot), then:

&#36;1 - \frac{N}{K} < 0 \Rightarrow \frac{dN}{dt} < 0$

The population declines back toward K. This is the stabilizing feedback.


8. What Could Go Wrong?

Carrying Capacity Is Not Constant

In real systems, K changes over time: - Climate change alters habitat quality - Human development reduces available land - Resource management changes sustainable yield

A time-varying K requires a more complex model.

Allee Effects (Growth Fails at Low N)

Some populations need a minimum viable population to survive: - Pollination requires sufficient bee density - Social species need group coordination - Genetic diversity requires a breeding pool

The logistic model assumes positive growth for any N > 0. This isn’t always true.

Overshoot and Collapse

If the population grows faster than resources can regenerate, you can get overshoot followed by collapse below K — or even extinction.

The logistic model assumes smooth adjustment. Real populations can oscillate or crash.

Time Lags

If there’s a delay between population size and resource limitation (e.g., predator-prey systems, where predators respond with a lag), the system can oscillate around K rather than smoothly approaching it.

This requires a delay differential equation — beyond the scope of this model.


9. Extensions and Connections

Verhulst and the Origins of the Logistic Equation

The logistic equation was introduced by Belgian mathematician Pierre-François Verhulst in 1838 to model human population growth. He called it the “logistic curve” from the French logistique (related to reasoning and calculation).

It remains one of the most important models in ecology, epidemiology, and social science.

The Logistic Map (Discrete Version)

If we model population in discrete time steps (generations):

N_{t+1} = N_t + rN_t\left(1 - \frac{N_t}{K}\right)

This is the logistic map, which exhibits chaotic behavior for large r. A topic for future study.

Generalizations

The logistic model is a special case of more general growth equations:

Theta-logistic:

\frac{dN}{dt} = rN\left(1 - \left(\frac{N}{K}\right)^\theta\right)

Allows for different shapes of density dependence.

Gompertz growth:

\frac{dN}{dt} = rN \ln\left(\frac{K}{N}\right)

Used for tumor growth models.


10. Math Refresher: Phase Plots

A phase plot shows the rate of change on the y-axis and the state variable on the x-axis.

For the logistic equation: - x-axis: N (population) - y-axis: \frac{dN}{dt} (growth rate)

How to read it: - Where the curve crosses the x-axis (\frac{dN}{dt} = 0), you have equilibria - Where the curve is above the x-axis, N is increasing - Where the curve is below the x-axis, N is decreasing - The slope of the curve tells you how the growth rate responds to changes in N

Phase plots are powerful tools for understanding dynamical systems without solving equations analytically.


Summary