Suggested Project Topics

Here are a few ideas for project topics for final year, higher diploma, and Masters students. The only common thread is that they combine some mathematics with computation.

1. Symbolic/numerical computing with Chebfun

Symbolic computing packages, such as Maple, are wonderful tools for exploration and experiment, but are typically too slow for large-scale applications. Numerical computing tools, such as Matlab, can be highly efficient (if used properly) but lack the facility for symbolic manipulation. However, a new Matlab/Octave system called Chebfun is trying to change that.

A student who undertakes this project would investigate the mathematics that underpins the system, while developing new programmes and examples to solve problems with chebfuns. A particularly interesting example might be the (numerical) solution of differential equations by high-order finite element methods.

You should consider this project if you like numerical analysis and programming.

2. Simulating Large Random Graphs and Social Networks

Through Facebook, twitter, or even just your phone's contact lists one can discover large graphs representing social networks. The representation of these graphs leads to some nice problems in computer science, and their analysis gives rise to some very interesting mathematical questions.

A project on this topic would mainly involve

  • Study of graph theory, and related problems in Linear Algebra,
  • Computer representation of large data structures,
  • Mathematical and/or computational analysis of graphs.

A good starting point is the recently published Graph Algorithms in the Language of Linear Algebra, by Kepner and Gilbert (Eds). (On-campus access to full text available through SIAM ebooks).

3. Automatic Differentiation

Given a function, it is not hard to construct a numerical scheme to estimate its derivatives at certain points. However, it is easy to show that such schemes are highly susceptible to numerical error.

Automatic differentiation is an approach based on repeated use of the chain rule and which can be applied to arbitrary functions and should be accurate to machine precision. It can be particularly useful in problems where one needs to find derivatives of vector-valued functions (Jacobians...).

This project will begin with reading a recent article: Introduction to Automatic Differentiation and MATLAB Object-Oriented Programming, Richard D. Neidinger. SIAM Rev. 52, pp. 545-563. The ideas and tools will be developed and applied to (I hope!) some interesting but non-trivial problems.

4. Vectorisation for modern computer hardware

As described recently (Aug 24th) on Mike Croucher's (@walkingrandomly) blog "Walking Randomly, modern CPUs can operator directly on vectors - usually 4 64-bit floats, or 8 32-bit floats. Some compilers do this automatically for some CPUs, whereas others need a little help

.

In this project we'd study some important mathematical algorithms and see how they could be vectorised and thus optimised. We might also study programming with GPUs.

5. Topics in Numerical Analysis

Numerical Analysis is the area of mathematics that is concerned with the design and analysis of methods and algorithms for obtaining useful solutions to mathematical problems. Two of the main sources of problems are differential equations and linear algebra. The applications are far too numerous to mention.

The interested student should browse a few books in the library. For example Afternotes on Numerical Analysis and Afternotes goes to Graduate School (G.W. Stewart), Introduction of Numerical Analysis (Stoer and Bulirish),

Depending on the students' interests, projects may have little or no computing aspects, or may be strongly focused on computational problems, or something in between.

6. Some topic of mutual interest

Why not come up with your own idea? A good place to start would be the Education articles in SIAM Review.

Or read some mathematical blogs. The most famous is Terry' Tao's. "Cleve's Corner" as a regular blog by Cleve Moler on topics related to numerical analysis and Matlab.

David Gleich's blog features some neat ideas and demos.

Or you could go to the library and have a look at such titles as

to name but a few.