Scientific Computing

Numerical Methods for Partial Differential Equations

Partial differential equations are used in science and engineering to describe phenomena like electric fields, waves, structural deformations, or heat transport. In practice these equations have to be solved by numerical methods, and the development of efficient algorithms for partial differential equations is an important subject in both numerical analysis and numerical linear algebra. This lecture focuses on the discretization of these equations, i.e., the approximation of the solution in a finite-dimensional space, while the lecture "Iterative methods for large linear systems" treats efficient solvers for the resulting systems of equations. It covers the following topics:

  • finite difference discretization of elliptic equations (Poisson's equation, consistency, stability, convergence),
  • finite difference discretization of parabolic equations (heat equation, stable time-stepping schemes, convergence),
  • finite difference discretization of hyperbolic equations (wave equation, stable time-stepping schemes, conservation of energy, convergence),
  • variational problems and the finite element method (Sobolev spaces, Riesz' theorem, Lax-Milgram, Friedrichs' inequality, Galerkin's method, Cea's lemma),
  • finite element method (triangulation, nodal basis functions, stiffness matrix, Bramble-Hilbert lemma, Sobolev's lemma, interpolation error).

Lecture notes are available here. Some of the topics are also covered in an older German version of the lecture notes.

The exercises accompanying the lecture focus both on extensions of the mathematical theory and the implementation and application of the presented techniques.

  1. Exercises of Thursday, April 13th, 2017: T1, T2
  2. Exercises of Thursday, April 20th, 2017: T3, T4
  3. Exercises of Thursday, April 27th, 2017: T5, T6
  4. Exercises of Thursday, May 4th, 2017: T7, T8
  5. Exercises of Thursday, May 11th, 2017: T9, T10, T11
  6. Exercises of Thursday, May 18th, 2017: T12, T13, T14
  7. Exercises of Thursday, May 25th, 2017: T15, T16, T17
  8. Exercises of Thursday, June 1st, 2017: T18, T19
  9. Exercises of Thursday, June 8th, 2017: T20, T21, T22
  10. Exercises of Thursday, June 15th, 2017: T23, T24, T25
  11. Exercises of Thursday, June 22nd, 2017: T26, T27, T28
  12. Exercises of Thursday, June 29th, 2017: T29, T30, T31


  1. Programming: Modelling of Finite-Difference discretizations for two-dimensional  PDEs (Part 1)
  2. Programming: Potential equation with Dirichlet boundary condition,  iterative solution with conjugate gradient method
  3. Programming: Potential equation with additional interior boundary conditions (Example: Elektrolytischer Trog)
  4. Programming: Heat equation with implicite Euler method and Crank-Nicolsen method, various boundary conditions
  5. Programming: Wave equation with discrete energy preserving methods
  6. Programming: Modelling of Finite-Difference discretizations for two-dimensional  PDEs (Part 2) 
  7. Programming: Convection-diffusion problems with variable coefficients using upwind techniques
  8. Programming: Triangulations in 2d, Calculation of Element matrices (linear elements)
  9. Programming; Assembling of stiffness and mass matrix