Core02: Scientific Computing - Archived material for the year 2019-2020

2019-2020
Lecturer(s): 
Dr Vassilios Dallas
Course Term: 
Michaelmas
Course Overview: 

This course will address some important aspects of scientific computing, largely through the lens of Matlab, a programming environment designed specifically for numerical mathematical modelling. A crash course in the essentials of programming in Matlab will be followed by its application to fundamental numerical topics including linear algebra, differential equations and optimization. These applications will involve exploring various inbuilt solvers and toolboxes. Other aspects of scientific computing will then be explored, including the public sharing of code, documentation, demos, parallel computing and GPUs. There will be a final group programming task which will be an opportunity to explore issues around developing code in teams for industry.

Course Synopsis: 

Introduction to programming in Matlab: The Matlab work environment; variables and basic mathematical functions; arrays (manipulation and indexing); function handles; their use in numerical equation solving, finding stationary points, root finding, numerical integration and graph plotting; logical operations, m-files and functions; sparse matrices; advantages of sparse matrices and implicit matrix-vector products.

Applications of programming in Matlab: linear algebra; solving systems of linear equations; SVD and eigen-decomposition; image compression; numerical solution of ODEs; optimization.

Aspects of scientific computing: using external code; Matlab Central; exploring documentation and demos; sharing code publicly; using remote servers, parallel computing and GPUs.

Developing software as a team: image classification group task.

Reading List: 

T. Davis, Matlab Primer, 8th edition, CRC Press, 2010

Please note that e-book versions of many books in the reading lists can be found on SOLO and ORLO.