Explore modules

Leslie Population Matrix

Project a three-age-class population with fecundity and survival, inspect uncapped counts and age shares, and test extinction and periodic boundaries.

Free theory article

Project a three-age-class population with fecundity and survival, inspect uncapped counts and age shares, and test extinction and periodic boundaries.

Concept & interpretation

A population with many young individuals can behave differently from one with the same total but more reproductive individuals. A Leslie matrix keeps those age classes separate. Each multiplication combines expected offspring with survival into the next age class. This module follows a fictional population in three equal-duration classes; its parameters illustrate the arithmetic rather than estimate any particular species.

Run a fixed-matrix experiment

Open the Leslie Population Matrix interactive module. The controls may scroll within the sidebar on desktop or the panel above the chart on mobile. The history table has its own horizontal scroll so that large counts remain readable.

  1. Press Reset experiment. Check that Generation is 0, all three initial counts are 10, the total is 30, and the growth factor is Undefined. Press Next once to obtain (25, 5, 4) and total 34.
  2. Set Generation to 3. Confirm (26, 6, 5) and total 37. Press Previous to return to generation 2: (12, 12.5, 2). Press Next to reproduce generation 3.
  3. Choose Plot → Age shares (%). Counts remain (26, 6, 5); the shares are 26/37, 6/37 and 5/37. Change Playback speed to 2, press Play, then Pause. Play advances generations; the speed affects waiting time only. Rewind returns to generation 0 with the chosen matrix and initial counts intact.
  4. Set Fecundity 1, Fecundity 2 and Fecundity 3 to 0. Each edit pauses and starts a new history at generation 0. At generation 3, all counts are 0. Their shares are Undefined because there is no population to divide by.
  5. Press Reset experiment. Set Fecundity 2 to 0, Fecundity 3 to 2 and Survival 2 to 3 to 1. Keep Fecundity 1 at 0 and Survival 1 to 2 at 0.5. Visit generations 1, 2 and 3: (20, 5, 10), (20, 10, 5), then (10, 10, 10). This repeating example challenges a claim that age shares must always settle.
  6. Press Reset experiment, set all fecundities to 5 and both survivals to 1, then choose generation 6. Confirm (1080250, 180750, 30250). Switch the plot back to Population counts and compare the ledger with the expanded vertical scale.
  7. Reset again. Change Initial age 1 and Initial age 2 to 0, leaving Initial age 3 at 10. Generation 3 becomes (5, 0, 1). Set Initial age 3 to 0 too and choose generation 30: extinction remains extinction, with no defined age shares or growth ratio.
  8. Enter -1 in Initial age 1. The text remains visible with a validation error, and the old chart and results disappear. Replace it with 10 to begin a valid new history at generation 0. Resize the viewport: the selected experiment stays intact. Play stops at generation 30 rather than looping back automatically.
Read the full free theory article