This module introduces the essential mathematics underpinning computational science and data science. This will underpin both programming projects and applied computational modelling/data science modelling projects where complex computer models are used to simulate physical systems. In order to assist in the students’ general Python programming training, computational approaches will be used throughout to assist in the explanation of purely mathematical concepts as well as to implement numerical analysis and scientific computing algorithms from first principles.
The module will cover the following topics:
- Essentials for mathematical, computational and data science based modelling, including algorithms, code verification and validation, accuracy, convergence, stability, and some introductory probability.
- Linear algebra, including matrices, eigenvalues, rank, null spaces, and linear transformations.
- Introductory material on core computational techniques including interpolation, regression and quadrature.
- Ordinary differential equations, including standard analytical solution methods and simple numerical algorithms for their approximate solution.
- Partial differential equations, including simple numerical algorithms for their approximate solution.
On successful completion of this module, students will be able to:
- Describe some of the fundamental mathematics underpinning computational science, data science and machine learning.
- Describe some of the fundamental mathematics and concepts underpinning the representation of physical systems using mathematical and computational based modelling approaches.
- Derive scientific computing algorithms from mathematical first principles and implement using Python based programming.
- Introduction of modelling with mathematical/computational/data science techniques
- Linear Algebra 1
- Linear Algebra 2
- Errors, verification & validation
- Interpolation, regression and quadrature
- Probability & ML
- Numerical solution of ODEs
- Numerical solution of PDEs
This course will be assessed through a single piece of coursework released on the Thursday of the second and final week of this course, for submission on the Friday.
The lecture content is self-contained, but if you would like some suggestions for further reading consider the following
- Mathematics for Machine Learning, Marc Peter Deisenroth, A. Aldo Faisal, and Cheng Soon Ong [pdf and other resources available at: [https://mml-book.github.io/]
- Practical Numerical Methods with Python, Lorena Barba, Ian Hawke and Bernard Knaepen [A MOOC with IPython Notebooks available at: https://github.com/numerical-mooc/numerical-mooc/wiki]
- Numerical Methods in Engineering with Python 3, 3rd Edition, Jaan Kiusalaas
- Fundamentals of Engineering Numerical Analysis, 2nd Edition, Parviz Moin
- A First Course in the Numerical Analysis of Differential Equations, 2nd Edition, Arieh Iserles
- Numerical Linear Algebra, Lloyd N. Trefethen, David Bau III
- Finite Difference Methods for Ordinary and Partial Differential Equations: Steady-State and Time-dependent Problems, Randall LeVeque