Numerical methods in Python (MAGIC099) |
GeneralDescription
Aim
The aim of this course is to introduce the students to the practical application of a relatively wide spectrum of numerical techniques and familiarise the students with numerical coding. Often in mathematics, it is possible to prove the existence of a solution to a given problem, but it is not possible to "find it". For example, there are general theorems to prove the existence and uniqueness of an initial value problem for an ordinary differential equation. However, it is in general impossible to find an analytical expression for the solution. In cases like these numerical methods can provide an answer, albeit limited: for example, there are numerical procedures (called algorithms) that, given an initial value problem, will compute its solution. This module is designed to cover four key areas: linear equations, quadratures (i.e. the evaluation of definite integrals) and the solution of Ordinary and Partial Differential Equations. The nature of the module is eminently practical: we will cover relatively little of the mathematical background of the numerical techniques that we will study. On the other hand students will be required to do a reasonable amount of programming in Python; the assessment will test their ability to code in Matlab or Python and to put into practice the theoretical methods studied at lectures. Computer laboratory sessions are associated to this module and will complement the lectures. Structure
Assessment The assessment is through coursework: (A) One shorter test of Python knowledge (B) Two longer coursework assignment to test programming skills and numerical problem solving. SemesterAutumn 2017 (Monday, October 9 to Friday, December 15) Timetable
PrerequisitesNo prerequisites information is available yet.
SyllabusLinear Systems
Linear systems, direct methods (Gaussian and LU decomposition), indirect methods (Jacobi, Gauss- Seidel).
Quadratures
Polynomial interpolation methods and adaptive methods.
Initial Value for Ordinary Differential Equations
Basic theory, one-step methods (Euler, Runge-Kutta), predictor-corrector methods, multi-step-methods (Adam-Bashforth, Adam-Moulton). Higher order ODEs and systems of ODEs.
Boundary Value Problems for ODEs
Shooting, finite differences.
Partial Differential Equations
Basic theory, simple PDEs (Poisson, Heat, Wave). Finite difference algorithms for parabolic, hyperbolic and elliptic PDEs.
Non-Linear Equations
Bisection method. Contraction mappings and Newton’s method for functions of one or more variables.
Python
Introduction, commands to solve quadratures and integrate ordinary and partial differential equations. Basic programming techniques.
Lecturer
Students
BibliographyNo bibliography has been specified for this course. AssessmentNo assessment information is available yet.
No assignments have been set for this course. FilesFiles marked L are intended to be displayed on the main screen during lectures. Recorded LecturesPlease log in to view lecture recordings. |