# Module Information

#### Course Delivery

Delivery Type | Delivery length / details |
---|---|

Lecture | 22 x 1 Hour Lectures |

#### Assessment

Assessment Type | Assessment length / details | Proportion |
---|---|---|

Semester Assessment | Worksheets | 30% |

Semester Assessment | 2 assignments | 20% |

Semester Exam | 2 Hours Written Examination | 50% |

Supplementary Exam | 2 Hours Written Examination | 100% |

### Learning Outcomes

On successful completion of this module students should be able to:

1. demonstrate an ability to write short programs in Python;

2. demonstrate an awareness of good practice in developing computer programs;

3. plot data using Python;

4. construct an interpolating polynomial using either the Lagrange or Newton formula, and describe their relative advantages and disadvantages;

5. prove the error formula for Lagrange interpolation;

6. construct divided and forward difference tables for prescribed data;

7. construct a cubic spline interpolant and discuss the advantage of this approach over the use of the Lagrange interpolant;

8. derive and apply the trapezoidal and Simpson's rules for approximating an integral;

9. derive the error term for the trapezoidal and Simpson rule;

10. derive and apply the formula for Romberg integration;

11. derive Gauss-type integration rules;

12. determine the root(s) of a nonlinear equation using the bisection method, functional iteration and Newton's method;

13. state and prove the conditions under which the sequence x{r+1}=g(x{r}) converges to a unique root of the equation x=g(x);

14. determine the order of an iterative process for computing the root of an equation;

15. state the conditions under which an initial value problem possesses a unique solution;

16. define the concepts of consistency, convergence and stability for one-step methods for solving initial value problems;

17. compute numerical approximations to the solution of initial value problems using one-step methods including predictor-corrector methods;

18. determine the consistency, convergence and stability of given one-step methods.

### Brief description

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 subject. 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.

### Content

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.

Semester 2

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.

### Module Skills

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. |

Team work |

### Notes

This module is at CQFW Level 6