Of Life, Death and Linear Algebra

Leslie Matrices, Part 1

In this post, we explore a family of population models built from one of the simplest tools in mathematics: linear algebra.

The central idea is to represent a population by age classes and encode its demographic state as a vector $\mathbf{x}(t)$. We focus on the female population—not for ideological reasons, but because standard demographic models track births through female fertility rates.

We begin with a fictional family, then move toward the formal framework used for real populations. For me, that movement—from an almost playful family thought experiment to something that can speak about societies and species—is exactly what made Leslie matrices memorable in the first place.

1. Introduction – A Matrix That Stuck

Some mathematical ideas stay with you long after class ends. For me, the Leslie matrix was one of them. I first encountered it in a high-school elective, the kind of course you take out of curiosity and forget to expect anything profound from.

At first glance it looks modest: just a small matrix of fertility and survival values. But that matrix is enough to project how a population evolves across generations. I remember being genuinely surprised by how much demographic intuition could be compressed into such a sparse object.

What starts as a classroom model quickly opens into broader questions: conservation policy, species recovery, aging societies, and long-term planning. That was the moment it stopped feeling like an exercise and started feeling like a way of seeing.

In this first part, I want to recover some of that first encounter: the sense that a simple matrix can carry a surprisingly human story.

2. Meet the Family (and the First Matrix)

Let’s ground the model in a simple story. Imagine a multigenerational family: great-grandmother Édith, grandmother Anna, her daughters Marie and Claire, and their daughters Sophie and Amira.

To make the system tractable, divide the population into three age classes:

  • Class 1: Children (0–15)
  • Class 2: Reproductive age (16–47)
  • Class 3: Post-reproductive (48+)

At time $t$, the population state is:

\[\mathbf{x}(t) = \begin{pmatrix} x_1(t) \\ x_2(t) \\ x_3(t) \end{pmatrix}\]

where $x_1$ is the number of girls, $x_2$ the number of women of reproductive age, and $x_3$ the number of older women.

Each time step, individuals age, some survive into the next class, and reproductive-age women generate births. This gives:

\[\mathbf{x}(t+1) = L \cdot \mathbf{x}(t)\]

where $L$ is a $3 \times 3$ Leslie matrix with:

  • Top row: fertility rates (daughters per woman per period)
  • Subdiagonal: survival probabilities (transition to the next age class)

Example:

\[L = \begin{pmatrix} 0 & 1.2 & 0 \\ 0.8 & 0 & 0 \\ 0 & 0.7 & 0 \end{pmatrix}\]

If we start from:

\[\mathbf{x}(0) = \begin{pmatrix} 1 \\ 1 \\ 1 \end{pmatrix}\]

then:

\[\mathbf{x}(1) = L \cdot \mathbf{x}(0) = \begin{pmatrix} 1.2 \\ 0.8 \\ 0.7 \end{pmatrix}\]

Iterating this equation projects the population forward. What I still like about this example is that it keeps the algebra close to something intuitive: you can almost picture the family changing as you multiply by the matrix. The same mechanism then scales from a toy family model to entire countries.

3. The Leslie Matrix: Mathematical Structure and Long-Term Behavior

Formally, a Leslie matrix $L \in \mathbb{R}^{n \times n}$ models an age-structured population with $n$ classes. The state vector is:

\[\mathbf{x}(t) = (x_1(t), x_2(t), \dots, x_n(t))^T\]

The matrix $L$ is defined as:

\[L = \begin{pmatrix} f_1 & f_2 & f_3 & \cdots & f_n \\ s_1 & 0 & 0 & \cdots & 0 \\ 0 & s_2 & 0 & \cdots & 0 \\ \vdots & \ddots & \ddots & \ddots & \vdots \\ 0 & 0 & \cdots & s_{n-1} & 0 \end{pmatrix}\]

with:

  • $f_i$: age-specific fertility for class $i$
  • $s_i$: survival probability from class $i$ to class $i+1$

Population dynamics follow:

\[\mathbf{x}(t+1) = L \cdot \mathbf{x}(t)\]

Key Results

  • Dominant eigenvalue $\lambda_1$: the largest eigenvalue of $L$ determines long-run growth.

    • $\lambda_1 > 1$: long-run growth
    • $\lambda_1 = 1$: long-run stationarity
    • $\lambda_1 < 1$: long-run decline
  • Stable age distribution: the normalized right eigenvector associated with $\lambda_1$ gives the limiting age composition.

  • Net reproductive rate $R_0$:

    \[R_0 = \sum_{j=1}^n f_j \cdot \ell_j,\]

    where $\ell_j = \prod_{i=1}^{j-1} s_i$ is the probability of surviving to age class $j$.

This is where the model becomes powerful: it does not only generate trajectories, it explains their asymptotic structure. For me, that is still the satisfying part—the moment when repeated computation gives way to a clean conceptual picture.

In Part 2, we extend this foundation to practical modeling topics: transient dynamics, sensitivity and elasticity, and time-varying environments.

Companion notebook

You can run the Part 1 notebook here:


Written on July 14, 2025