Structured Population Models
A newborn, a juvenile, and a reproductive adult contribute very differently to a population’s future, so treating everyone as identical throws away essential biology. Structured models track these classes explicitly, and their long-run behavior is governed entirely by the eigenvalues and eigenvectors of a projection matrix — the same linear-algebra machinery behind next-generation matrices in disease ecology.
Projecting an age- or stage-structured population
When survival and fecundity depend on age or developmental stage, we split the population into classes and record their counts in a vector . A projection matrix advances the population one time step, using the matrix notation of a matrix acting on a vector. For age classes this is a Leslie matrix; for stages (where individuals can remain in a class) it is a Lefkovitch matrix.
The structure of encodes the life cycle:
- the top row holds fecundities — offspring produced per individual of class ,
- the sub-diagonal holds survival probabilities — the fraction of class surviving and advancing to class ,
- a Lefkovitch matrix may add diagonal entries for individuals that survive but stay in the same stage.
Iterating is a discrete-time projection, closely related to repeated matrix multiplication since .
Long-run growth and structure
After transients decay, the population settles into steady exponential growth at a fixed rate multiplied each step, and its composition stops changing. Both facts fall out of the eigenvalues and eigenvectors of :
- The dominant eigenvalue (largest in magnitude) is the asymptotic per-step growth rate — the discrete analogue of . means growth, decline, a stationary population.
- The right eigenvector for , solving , gives the stable stage distribution — the proportions in each class once structure equilibrates.
- The left eigenvector, solving , gives reproductive value — the relative expected lifetime contribution of each class to future generations.
The Perron–Frobenius theorem guarantees that a well-behaved (nonnegative, irreducible) projection matrix has a real, positive dominant eigenvalue with a nonnegative eigenvector, so these quantities are biologically meaningful.
A worked example
Consider three stages — juveniles, subadults, adults — with the Leslie matrix Only adults and subadults reproduce (fecundities and ); half of juveniles survive to become subadults () and of subadults become adults ().
The characteristic equation expands to Solving numerically gives the dominant eigenvalue , so the population grows about per time step. The corresponding right eigenvector (before normalizing) is Dividing by the sum gives the stable stage distribution : at steady state about juveniles, subadults, and adults.
In code
We build , extract the dominant eigenvalue, and normalize its eigenvector to get the stable stage distribution.
R
L <- matrix(c(0, 1, 5,
0.5, 0, 0,
0, 0.3, 0), nrow = 3, byrow = TRUE)
e <- eigen(L)
i <- which.max(Re(e$values)) # dominant eigenvalue index
$lambda <- Re(e$values[i])
$w <- Re(e$vectors[, i]); w <- w / sum(w)
$lambda # ~1.090 (per-step growth rate)
w # ~c(0.631, 0.289, 0.080) stable stage distribution
Python
import numpy as np
L = np.array([[0.0, 1.0, 5.0],
[0.5, 0.0, 0.0],
[0.0, 0.3, 0.0]])
vals, vecs = np.linalg.eig(L)
i = np.argmax(vals.real) # dominant eigenvalue
lam = vals[i].real
w = np.abs(vecs[:, i].real); w /= w.sum()
print(lam) # ~1.090
print(w) # ~[0.631, 0.289, 0.080]
1.0899905360790787
[0.63092527 0.28941777 0.07965696]
Julia
using LinearAlgebra
L = [0.0 1.0 5.0;
0.5 0.0 0.0;
0.0 0.3 0.0]
vals, vecs = eigen(L)
i = argmax(real.(vals)) # dominant eigenvalue
lambda = real(vals[i])
w = abs.(real.(vecs[:, i])); w ./= sum(w)
lambda # ~1.090
w # ~[0.631, 0.289, 0.080]
Why it matters
Structured models turn detailed life-history data — stage-specific survival and fecundity — into a single number, the growth rate , plus the population composition and the relative worth of each stage, all read directly off an eigen-decomposition. The same matrix-eigenvalue logic underlies the next-generation matrix that yields in epidemiology, so mastering Leslie and Lefkovitch matrices pays off across both population and disease ecology.