|Assessment Type||Assessment length / details||Proportion|
|Semester Exam||2 Hours (Written Examination)||50%|
|Semester Assessment||2 x online tests in Semester 1||30%|
|Semester Assessment||2 assignments in Semester 2||20%|
|Supplementary Exam||2 Hours (Written Examination)||100%|
On successful completion of this module students should be able to:
Demonstrate an ability to write short programs in Python
Demonstrate an awareness of good practice in developing computer programs for numerical computation
Construct a polynormial or a spline that interpolates a set of data
Derive and apply standard numerical methods for approximating an integral and analyse the errors of these methods
Determine the root(s) of a non-linear equation using standard numerical methods, and demonstrate an awareness of the order of convergence of these methods.
Compute numerical approximations to the solution of initial value problems using one-step methods, and demonstrate an awareness of the convergence and stability of these methods.
The semester 1 content on learning python has been adjusted slightly so that it is suitable for mathematics students with minimal programming expereince.
It is often impossible to find the exact solution of a mathematical problem using standard techniques. In these situations one has to resort to numerical techniques and the use of a computer. Numerical analysis is concerned with the development and analysis of methods for the numerical solution of practical problems. This course will provide an introduction to the Python programming language and, more broadly, the Scientific Python Stack. It will then introduce techniques for the numerical approximation of mathematical problems and the analysis of these techniques, using Python to provide practical application of the numerical methods.
The python element of the module will be taught (by the Department of Computer Science) using two 1 hour lectures per
week, one of which is in a conventional lecture room, and the other is in a computer laboratory so that short presentations can be interspersed with practical demonstrations. There will also be a one hour practical each week starting from week 2, with demonstrator support:
1. INTRODUCTION: Types, variables, if-statements, for- and while-loops. The interpreter and the evaluation of simple expressions. Editing, saving and loading code. File handling.
2. DATA STRUCTURES: Lists and dictionaries. numpy arrays.
3. FUNCTIONS. Function definition, function calling.
4. ORGANISING PYTHON CODE. Generating documentation, catching and handling exceptions, organising code into modules.
5. OBJECTS AND CLASSES. Defining classes, instantiating an object. Inheritance.
6: PLOTTING: Manipulate data and plot results.
The numerical analysis element of the course will be taught using two 1-hour lectures per week (in conventional lecture theatres) supplemented by two 2-hour computer practical workshops during the semester.
1. POLYNOMIAL INTERPOLATION: Lagrange's formula. Newton's formula and divided differences. The forward difference formula. Interpolation error. Cubic spline interpolation.
2. NUMERICAL INTEGRATION: Trapezoidal rule, Simpson's rule. Composite integration rules. Quadrature errors. Romberg integration. Gaussian quadrature rules.
3. SOLUTION OF NONLINEAR EQUATION IN A SINGLE VARIABLE: Bisection method. Fixed point methods and contraction mappings. Newton's method. Order of convergence.
4. INITIAL VALUE PROBLEMS: Existence and uniqueness of solutions. Euler's method. Local truncation error. Consistency. Convergence. Stability. General one-step methods. Trapezoidal method. Predictor-corrector methods.
|Skills Type||Skills details|
|Application of Number||Necessary throughout.|
|Communication||Written answers to exercises and documenting of code must be clear and well-structured. Good listening skills are essential to successful progress in this course.|
|Improving own Learning and Performance||Students will be expected to develop their own approach to time-management in their attitude to the completion of work on time, and in doing the necessary preparation between lectures and workshops. They should act on feedback, for example the in-practical feedback from demonstrators and from their marked work.|
|Information Technology||Students will be set exercises in workshops that involve developing computer code. They will need to be able to use computers and library facilities throughout.|
|Personal Development and Career planning||Completion of tasks (worksheets and problem sheets) to set deadlines will aid personal development. Students will develop highly sought after programming skills.|
|Problem solving||Exercises will be set and marked. These will involve the derivation and implementation of numerical methods and their errors.|
|Research skills||Using a computer. Searching the language and library documentation.|
|Subject Specific Skills||Programming skills, debugging skills, numeracy skills, numerical analysis skills.|
This module is at CQFW Level 5