Project TMA4212

This project aims at developing experience in implementing and experimenting with finite difference discretizations of PDEs. This is a very important goal of this course.

The students should work in groups of three persons per group. As the number of students in this course is estimated to be quite large, we ask you to avoid groups of only one student.

You can look at the List of PDEs from which you will choose your favorite (allowing for no more than a few groups per PDE). Your task is to find out as much as you can about the problem, to propose a finite difference discretization of the equation (motivated by an analysis), and to implement the discretization method as efficiently as possible using MATLAB.

All the groups must have chosen a PDE from the list and sent a message to the teaching assistent as soon as possible and before 31.01.2015.

We want to meet all the groups and discuss their choices and work at least once in February.

In the conclusion section of your project report it should be clearly stated what was done by who. It is important to note that all participants in a group share equal responsibility for everything that group hands in. Every participant of a group should know and understand everything that group has done.

The deadline for handing in the project is 23.03.2015.

Please write your candidate number on your report. Do NOT write your name.


You can get a total of 40 points.

  • Implementation. The main goal of the project is to gain ability in using finite difference methods in practice. You should show your ability of producing a correct simulation of the problem. We here want to make sure you have learned how to design numerical experiments to verify the correctness of your code. Numerical evidence that the code is correct must be included in the report and poster. For example, this can be achieved by computing the error relative to a known solution of the problem or to a reference solution produced by running the programs with very small space and time step-sizes. In particular numerical results showing the correct order in time and space of the implemented numerical discretization should be provided. Max score for this task is 20 points.
  • Efficiency. It is important that your code is implemented efficiently. You will have to use what you have learned in the numerical linear algebra part of the course (give a short description and justification of your choices in the report and the presentation). Use iterative solution methods or fast Poisson solvers when appropriate. We hope you will be able to exploit the facilities offered by MATLAB and produce code which requires as little memory as possible and runs quickly. The code will be handed in and might be tested, so please make a minimum of documentation for your code, and make sure it runs. Max score for this task is 11 points.
  • Analysis. You should motivate your choice of method and provide an analysis of the problem substantiating the choice of the finite difference discretization and possibly proving the convergence of the numerical scheme (at least for a simplified, but relevant test problem). Max score for this part is 9 points.

The presentation will be an important step in the evaluation process. You will be asked to present your project in general and to explain how you handled these three different tasks (correctness of the implementation, analysis, and efficiency). This is mandatory. If you are unable to participate in the presentation we will be unable to test the achivement of learning goal L6 and this will have consequences on the final mark. If you are sick, you should provide a medical certificate to Stian at the office of our Department and inform us (Elena and Anders). We will arrange for you an oral discussion of your project work at a different date.

You are welcome to use Google and other sources for understanding more about the PDE problem you are going to solve. Use for example the databases MathSciNet and Zentralblatt Math.

2015-02-24, Elena Celledoni