The course provides an introduction to the theory and applications of nonlinear programming. It teaches principles of good modelling, from formulation of practical problems to computer solution, and how to design a range of algorithms and numerical methods. It acquaints students with general issues concerning computational algorithms, and considers application areas such as mathematical finance.

Syllabus
Nonlinear programming
- Formulation of unconstrained and constrained nonlinear optimisation models.
- One-dimensional search (Newton-Raphson, golden section search)
- Conditions for local optimality (quadratic forms, convex and concave functions, Taylor series for multiple variables).
- Gradient search, Newton's method, Quasi-Newton methods.
- Lagrange multiplier methods.
- Karush-Kuhn-Tucker optimality conditions.
- Penalty function methods.
- Non-derivative methods.

On completing the course, students should be able to:
- apply an appropriate algorithm or numerical method for solving a particular problem;
- discuss the relative advantages and limitations of the various algorithms and numerical methods;
- use given implementations of these algorithms in Matlab, and observe and analyse the results;
- understand the derivation and uses of the Karush-Kuhn-Tucker necessary conditions for optimality.

Computer labs
The course has a significant practical component comprising four one-hour computer labs using the MATLAB computer package. These will include one on Newton-Raphson and golden section search,and one on Gradient search, Newton's method and Quasi-Newton methods.