Population growth models (exponential vs logistic)
This calculator compares two classic continuous-time population growth models. Both predict population size
N(t) over time t from an initial population N0 and a growth rate r. The logistic model
also includes a carrying capacity K, which limits long-term growth.
Symbols and inputs
- N(t): population size at time t
- N0: initial population at t = tstart (must be > 0)
- r: growth rate per time unit (positive = growth, negative = decline)
- K: carrying capacity (logistic only; must be > 0)
- tstart, tend: time interval for simulation
- Δt: step size used to build the table and plot points
In both models, the simulation uses the offset
Δt = t − tstart, so the “initial” population is always interpreted as
N(tstart) = N0.
Time offset used in the calculator
\[
\begin{aligned}
\Delta t &= t - t_{\text{start}}
\end{aligned}
\]
Exponential growth model
The exponential model assumes a constant per-capita growth rate. It is most appropriate when resources are not
limiting over the time window being modeled.
Model equation
\[
\begin{aligned}
N(t) &= N_0 \cdot e^{\,r \cdot \Delta t}
\end{aligned}
\]
Solving for r from two observed points (optional)
If you know two observations (t1, N1) and (t2, N2) with
N1 > 0 and N2 > 0, you can solve for r:
\[
\begin{aligned}
\frac{N_2}{N_1} &= e^{\,r \cdot (t_2 - t_1)} \\
\ln\!\left(\frac{N_2}{N_1}\right) &= r \cdot (t_2 - t_1) \\
r &= \frac{\ln\!\left(\frac{N_2}{N_1}\right)}{t_2 - t_1}
\end{aligned}
\]
Doubling time (when r > 0)
The doubling time is the time required for the population to multiply by 2 under exponential growth.
\[
\begin{aligned}
t_d &= \frac{\ln(2)}{r}
\end{aligned}
\]
If r ≤ 0, the population does not double, so doubling time is not defined (in that case the model predicts
stability or decline).
Logistic growth model
The logistic model adds density dependence by introducing a carrying capacity K. Growth slows as
N(t) approaches K, producing an S-shaped curve.
Closed-form solution (used by the calculator)
\[
\begin{aligned}
N(t) &= \frac{K}{1 + A \cdot e^{-r \cdot \Delta t}} \\
A &= \frac{K - N_0}{N_0}
\end{aligned}
\]
When N0 < K and r > 0, the population increases quickly at first and then levels off near
K. When N0 > K, the model predicts a decline toward K.
Why growth slows: the logistic differential equation
\[
\begin{aligned}
\frac{dN}{dt} &= r \cdot N \cdot \left(1 - \frac{N}{K}\right)
\end{aligned}
\]
The factor \(\left(1 - \frac{N}{K}\right)\) reduces growth when N is large relative to K.
Maximum growth point (inflection) near N = K/2
The logistic curve has its steepest slope (maximum growth rate) near N = K/2.
\[
\begin{aligned}
\left(\frac{dN}{dt}\right)_{\max} &= \frac{r \cdot K}{4}
\end{aligned}
\]
Inflection time (time when N(t) = K/2)
Setting N(t) = K/2 and solving for the time offset gives:
\[
\begin{aligned}
\frac{K}{2} &= \frac{K}{1 + A \cdot e^{-r \cdot \Delta t}} \\
A \cdot e^{-r \cdot \Delta t} &= 1 \\
\Delta t_{\text{infl}} &= \frac{\ln(A)}{r} \\
t_{\text{infl}} &= t_{\text{start}} + \Delta t_{\text{infl}}
\end{aligned}
\]
This expression is most meaningful in the common case N0 < K (so A > 0) and r ≠ 0.
Overlay comparison (educational view)
When you overlay the two curves using the same N0 and r, the key difference is long-term behavior:
the exponential model keeps increasing without bound (for r > 0), while the logistic model approaches the
horizontal limit K. The plot highlights K as a reference line and (optionally) marks the maximum-growth point
near N = K/2.
Practical interpretation tips
-
Units matter: if time is in days, then r is “per day”. If time is in years, then r is “per year”.
-
Short windows: many real populations look exponential over short time spans even if they are ultimately limited.
-
Carrying capacity: treat K as an environmental constraint (space, nutrients, competition, etc.), not a fixed law.
-
Negative r: both models can represent decline; logistic decline approaches K from above or below depending on N0.