Course manual 2025/2026

Course content

The course focuses on developing numerical algorithms to solve prototypical partial differential equations. Students will learn how to discretize differential equations using finite difference approximations, analyse the stability and accuracy of finite difference schemes, and implement these schemes in code to solve a variety of scientific and engineering problems. Topics covered include:

  • Derivation of finite difference formulas for various derivatives
  • Explicit and implicit finite difference methods for ordinary and partial differential equations
  • Stability analysis techniques, such as the Courant–Friedrichs–Lewy (CFL) condition
  • Accuracy and convergence of finite difference schemes
  • Applications to problems such as heat transfer, fluid flow, and wave propagation

Furthermore, the course provides a brief introduction to advanced numerical methods (finite volume, and finite element).

Study materials

Literature

  • Kyle Novak, Numerical Methods for Scientific Computing, 2nd edition

Software

  • A working python distribution is necessary with the basic scientific libraries (numpy, scipy, numba, matplotlib).

Objectives

  • Students recognize the form and characteristic behavior of partial differential equations (including Laplace, diffusion, wave, diffusion-reaction, advection-diffusion).
  • Students can derive finite difference schemes for a wide-range of second order partial differential equations.
  • Students can prove the numerical stability of finite difference schemes.
  • Learn the basics of finite volume method, and are able to connect techniques learned with finite differences to finite volumes.
  • Learn the basics of finite element method, connect numerical techniques (such as integration schemes) to finite differences.
  • Students can derive the conditions for numerical stability (CFL) for a wide range of finite difference schemes.
  • Students can investigate mathematical models of physical system by deriving a suitable computational model, assuring stability, and executing analysis.

Teaching methods

  • Lecture
  • Working independently on e.g. a project or thesis
  • Laptop seminar

The lectures will present the theoretical background as well as adding several optional small simulation exercises. During these lectures three assignments will be defined that the students will work on in pairs. The guided laptop sessions will give aid with the technical questions towards the completion of the assignments.

Learning activities

Activity

Hours

Hoorcollege

28

Laptopcollege

28

Tentamen

3

Self study

109

Total

168

(6 EC x 28 uur)

Attendance

This programme does not have requirements concerning attendance (Ter part B).

Assessment

Item and weight Details

Final grade

5 (50%)

Tentamen

Must be ≥ 5, NAP if missing

5 (50%)

Assignments

Must be ≥ 5, NAP if missing

3 (30%)

Set 1

NAP if missing

3 (30%)

Set 2

NAP if missing

4 (40%)

Set 3

NAP if missing

lab assignment 50% and exam 50%

Assignments

Assignment 1

  • Research assignment on solving PDEs with self-written code.

Assignment 2

  • Research assignment on investigating reaction-diffusion type systems with self-written code.

Assignment 3

  • Challenge assignment using multiple numerical methods learned during the course (Finite difference, Finite element, lattice Boltzmann).

All three assignments are graded and they form 50% of the course grade.

Fraud and plagiarism

The 'Regulations governing fraud and plagiarism for UvA students' applies to this course. This will be monitored carefully. Upon suspicion of fraud or plagiarism the Examinations Board of the programme will be informed. For the 'Regulations governing fraud and plagiarism for UvA students' see: www.student.uva.nl

Course structure

Weeknummer Onderwerpen Studiestof
1
2
3
4
5
6
7
8

Contact information

Coordinator

  • dr. G. Závodszky