During the Autumn Term, the aim is to review a selection of numerical methods for differential equations, together with some of the existing analysis. The material is divided into two main parts, each concerned, respectively, with the numerical solution of ordinary equations (ODE) and partial differential equations (PDE). Part 1 introduces numerical methods for first-order ODE and is limited to one-step methods, with emphasis on Runge-Kutta methods. It includes a derivation of standard error error analysis (stability, order, accuracy, consistency) for both implicit and explicit methods. It also considers the solution of linear systems and questions related to stability of dynamical systems. Examples are drawn from Hamiltonian mechanics. Some examples of nonlinear ODE are also considered. Part 2 is devoted to the finite element method (FEM) for the discretization of PDE. The presentation starts with a review of function spaces with emphasis on Sobolev spaces and polynomial approximation in these spaces. It then includes the variational formulation of boundary value problems, definition and construction of finite element spaces. Standard error analysis is also included: a priori and a posteriori error estimation together with theoretical questions regarding accuracy, stability, reliability and adaptivity.
During the Spring term, the aim is to present fundamental concepts necessary in order to think like a programmer. This course has been developed for students with no previous programming experience as well as for those already familiar with main ideas in programming. The computer language (C++) is introduced from first principles. The students are supposed to learn general techniques for solving problems and to understand important concepts of programming such as algorithms and code debugging. The programming techniques introduced in the course will be implemented for numerical solution of several basic scientific and engineering problems.
Learning Outcomes
By The end of the Autumn term the student should be able to:-
Demonstrate knowledge of standard numerical methods for ordinary and partial differential equations
Apply a range of numerical methods to standard differential equations and derive the relevant analysis
Have an understanding of the programming issues associated with numerical schemes
By the end of the Spring term the student should be able to:-
Understand the basic principles of scientific and engineering programming
Understand key attributes of the following elements of programming languages: variables; data types; data arrays; assignment statements; iteration statements.
Develop and implement numerically stable and accurate algorithms for the basic tasks of computational science and engineering
Develop stable algorithms for matrix algebra, numerical solution of ordinary differential equations and for finding roots of non-linear equations
Assessment
22295-02 : Raw Module Mark : Coursework (100%)
Assessment Methods & Exceptions
Assessment: 90 minute examination (45%)
Continuous assessment (55%)
100% of the programming aspects of the course will be assessed continuously and the Autumn term will be assessed 10% by continuous assessment and 90% by examination.
Reassessment: By examination and resubmission of programming exercises.