There are no announcements




The aim of the course is to present several numerical methods that can be used in different scientific areas and implement them using Python. The course starts from the basic idea of an algorithm and evolves discussing, for instance, numerical methods to compute derivatives and integrals of functions, to solve linear systems, and to integrate ordinary and partial differential equations. Each lecture will have an initial part of theory and a final part of Python demo.


Autumn 2018 (Monday, October 8 to Friday, December 14)


  • Live lecture hours: 10
  • Recorded lecture hours: 0
  • Total advised study hours: 40


  • Thu 13:05 - 13:55


Calculus, linear algebra, ordinary and partial differential equations. Some basic concepts of probability, mechanics and fluid mechanics might be used during the examples.


- how to install Python and basic commands, definition of an algorithm, evaluation of the square root
- root finding algorithms: bisection and more advanced methods
- solutions of linear systems, direct and indirect methods
- derivatives of a function using finite differences, methods of finding the function extremes
- Lagrange polynomials and splines
- integration of single variable functions with rectangles and other methods
- Monte Carlo method to compute multivariable integrals
- solutions of ODEs using Euler and Runge-Kutta methods
- integration of PDEs using finite difference algorithms
- fast Fourier transforms (FFTs) and their use in solving PDEs with periodic boundary conditions


Davide Proment
Phone 01603 591642


Numerical Recipes, The Art of Scientific ComputingW. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery
An Introduction to Numerical AnalysisSuli and Mayers
Computational PhysicsNewman


Clicking on the link for a book will take you to the relevant Google Book Search page. You may be able to preview the book there. On the right hand side you will see links to places where you can buy the book. There is also link marked 'Find this book in a library'. This sometimes works well, but not always. (You will need to enter your location, but it will be saved after you do that for the first time.)


The course assessment will be through coursework. A formative (optional) piece of coursework will be set during the half term, while a the final summative piece of coursework is take-home and will take place in the Autumn semester examination period.


Files:Exam paper
Released: Sunday 6 January 2019 (260.3 days ago)
Deadline: Sunday 20 January 2019 (245.3 days ago)

As stated in the exam sheet, please write down your solutions using your preferred Python platform/IDE.

As the main MAGIC assessment page only allows PDF files to be uploaded, you must upload your solutions in a single file, containing the code you edited to produce the solutions and some concise explanations of your reasoning on the MAGIC099 assessment form. This page has the address
As an example, please see the formative coursework solutions I have produced that you can find on the course files page.
Please note: unless specifically asked, you can use the already-implemented functions of any modules (like NumPy or SciPy) you want.
The minimum to pass is 50
This page will not show your submitted python script - instead you can check that your file has submitted correctly or resubmit your file at any time before the deadline by returning to the MAGIC099 assessment form.

Recorded Lectures

Please log in to view lecture recordings.