Undergraduate Project 2026-27 (3H)


Many systems in nature evolve in time: planets orbit stars, populations grow and decline, financial markets fluctuate, and fluids move through the atmosphere and oceans. These processes are often described mathematically using ordinary differential equations (ODEs).

Since exact solutions are rarely available, numerical time integration has become an essential tool for understanding and predicting time-dependent systems across science and engineering. Applications range from climate and weather prediction to epidemiology, neuroscience, finance, and spacecraft dynamics.




The goal of this project is to explore how the quality of these approximations can be analysed mathematically.


What is this project about?

This project introduces the mathematical and computational foundations of numerical methods for solving ordinary differential equations.

One of the central questions is:

 

How can we design numerical methods that are both accurate and stable while remaining computationally efficient?

 

The project can also explore why some numerical methods work well for certain problems but fail dramatically for others.


Group project

In the group component of this project, students will investigate the construction and analysis of numerical methods for solving ordinary differential equations.

The aims of the group project will be to:

  • derive/review basic numerical time-stepping methods for ordinary differential equations;
  • analyse their accuracy, consistency, and convergence properties;
  • investigate numerical stability and stiffness;
  • implement and compare standard schemes (such as RK4) in MATLAB or Python;
  • explore the trade-off between computational cost, stability, and accuracy.


Mode of operation and evidence of learning for the group project

The project will require reading introductory texts on numerical analysis and working through key examples in numerical time integration. Students will derive numerical schemes mathematically and implement them computationally using MATLAB or Python.

Students will demonstrate their understanding by comparing numerical solutions with analytical results where available, analysing the behaviour of different methods, implementing numerical algorithms, and clearly communicating their findings in both written and oral formats.


Individual project

The individual project will build upon the material developed in the group project to explore more advanced topics in numerical time integration.

Possible directions include:

  • higher-order multi-step methods;
  • adaptive time-stepping and error control;
  • stiff differential equations and implicit methods;
  • geometric numerical integration;
  • numerical methods for oscillatory systems;
  • applications to problems arising in physics, biology, or fluid dynamics.

The direction of the project can be adapted depending on the student’s interests in theory, computation, or applications.


Mode of operation and evidence of learning for the individual project

In the individual strand of the project, students will learn through reading and identifying their own relevant resources. Depending on the topic chosen, students may extend the code developed in the group project or develop new numerical implementations independently.

Students will demonstrate their understanding by deriving and analysing numerical methods, exploring computational examples, interpreting numerical results, and clearly communicating their findings in both written and oral formats.


Prerequisites/Corequisites

This project combines analytical work with practical scientific computing. Students should therefore be comfortable with basic programming in MATLAB and/or Python.

Computational Mathematics II and Mathematical Methods II are essential.


References

[1] Griffiths, D. F. and Higham, D. J.: Numerical Methods for Ordinary Differential Equations.

[2] Butcher, J. C.: Numerical Methods for Ordinary Differential Equations.

[3] Iserles, A.: A First Course in the Numerical Analysis of Differential Equations.

Updated: