This module introduces the algorithms used to solve the continuous and constrained optimisation problems that arise in modelling, machine learning and scientific computing, together with the numerical-analysis tools needed to run them reliably on finite-precision hardware. Learners cover gradient and Newton-type descent, line search and trust region, convexity, KKT conditions, linear and quadratic programming, and the main sources of numerical error. Mastery is demonstrated when a learner can pick an appropriate algorithm for a given problem, justify convergence and stability, and read the output critically.
Learners are judged on choosing and implementing an appropriate algorithm, justifying its convergence and reasoning about numerical error. The weighting rewards implementation and critique over paper-and-pencil derivation alone.