Module 1: Low-Dimensional Dynamics

Part I of the syllabus, Sessions 1 to 9

This module covers models with one or two state variables described by ordinary differential equations. You start with a single equation for an insect population and learn to find equilibria, decide their stability and follow them as parameters change. You then apply the same tools to epidemics, fit a model to data, and move to the plane, where oscillations, limit cycles, Hopf bifurcations and excitable systems appear (Strogatz 2024). Lectures and laboratories alternate: each lecture is followed by a session in which you implement the model in Python. Reusable code is in amlab/odes_1d/, amlab/odes_2d/ and amlab/epidemics/.

Session Structure

Session 1: Course overview. What is mathematical modeling?

What Is a Mathematical Model? The Modelling Workflow How the Course Works

Session 2: A first model: the spruce budworm

The Spruce Budworm Model Fixed Points and Stability Bistability

Session 3: Laboratory: numerical tools for one-dimensional models

Solving Initial Value Problems Budworm: the Model in Code Budworm: Integration and Time Series Budworm: a Streamlit App Michaelis-Menten Kinetics Practice: Budworm App Reproducible Code

Session 4: The budworm outbreak: hysteresis and its consequences

Saddle-Node Bifurcation Hysteresis Budworm and Forest: Fast and Slow

Session 5: Modelling the spread of epidemics: SIR and SIS

Compartmental Models: SIR and SIS The Reproduction Number The Final Size of an Epidemic

Session 6: Laboratory: epidemics and real data

Simulating the SIR Model Simulating the SIS Model Fitting an Epidemic to Data Predicting the Peak

Session 7: Two-dimensional systems: modelling oscillations

Linear Systems in the Plane The Phase Plane Hopf Bifurcation

Session 8: Laboratory: two-dimensional systems

CDIMA: Phase Plane CDIMA: Nullclines and Fixed Points CDIMA: Stability and the Hopf Point Animations and Interactivity Van der Pol Oscillator Practice: Planar Systems CDIMA: Parameter Map

Session 9: Excitable systems and models of the neuron

Excitability FitzHugh-Nagumo Model Relaxation Oscillations Morris-Lecar Model Bistable Switches

Extra (optional): the Lorenz system

Lorenz Attractor Sensitivity and Chaos Practice: Lorenz System

Pages marked “optional extension” and the practice pages (grey buttons) are ungraded. The graded assignments of the course are in Modules 2 and 4.

Learning Goals

  • Formulate a model as an ODE, and remove units to reduce the number of parameters.
  • Find equilibria and decide their stability from the linearization.
  • Recognize saddle-node and Hopf bifurcations, bistability and hysteresis.
  • Integrate ODEs with scipy.integrate.solve_ivp, and validate the result against known solutions.
  • Build interactive tools (Streamlit apps, Matplotlib animations and clickable parameter maps).
  • Use SIR and SIS models to compute reproduction numbers, herd immunity thresholds and final sizes.
  • Fit a model to incidence data and explain why the peak of an epidemic is hard to predict.
  • Read a phase plane: nullclines, fixed points, limit cycles, excitability and relaxation oscillations.

References

Strogatz, Steven H. 2024. Nonlinear Dynamics and Chaos: With Applications to Physics, Biology, Chemistry, and Engineering. Chapman; Hall/CRC.