Mathematica: Linear Algebra

Linear algebra is about the solution of simultaneous linear equations, linear eigensystems etc. There are two courses described here, which vary very considerably in difficulty. Neither are currently being given and may be out of date.

Numerical Linear Algebra

This course starts by covering Mathematica's basic matrix facilities, fairly quickly, for people who are not experts with them. It then covers the basics of linear algebra using real and complex matrices. It is intended for people who can use Mathematica, but need to know what it can do with matrices and linear algebra.

Matrix arithmetic and how matrices are used in linear algebra (e.g. the solution of linear equations) is no longer taught in the ordinary mathematics A-level, but only in Further Pure mathematics. If you do not know this, you MUST learn it first. For further information, see Matrix Prerequisites.

Lectures

The presentation for the course.

Presentation

The example input, suitable for running by cut-and-paste.

Example input

The input files used in the examples.

Matlab input

CSV input

Symbolic Linear Algebra

The second lecture covers linear algebra with symbolic matrices, and its debugging and tuning. It shows how to get first- and second-order approximations to problems, with the variations in the input being in the form of unknown variables. This enables what is often called perturbation analysis or sensitivity analysis.

People who want to do comparable work with other numerical methods (such as PDEs, ODEs or optimisation) will also find it relevant, as the techniques the course covers apply to those as well.

WARNING: this sort of work is never easy, though it is much easier in Mathematica than by hand, and attendees should be reasonably familiar with using Mathematica. This is quite possibly the hardest actual programming course in the University, not excluding those given in the Computer Laboratory. They give harder theoretical ones, of course.

The presentation for the course.

Presentation

The example input, suitable for running by cut-and-paste.

Example input

A directory containing realistic, working code.

Worked examples