Course info

Tentative teaching material

Main material:

Additional material

Final Curriculum

  • Lectures / handwritten notes (available in "Plan of Lectures").

    Note in particular the parts that are not always so well covered in the lecture note of Owren:

    • Methods of positive coefficients, monotonicity, and the discrete max principle (DMP).
    • Stability w.r.t. right hand side, supersolutions, error estimates, convergence, vector vs function norms.
    • Convergence of monotone schemes for hyperbolic transport equations.
    • von Neumann analysis.
    • Method of fattening the boundary (irregular domains).
    • Finite element error analysis - theory (Galerkin orthogonality, coercivity, continuity, Cea's lemma, interpolation estimates, error bounds) and examples. (Mostly covered by Curry, but see also my lectures).

  • Note on finite difference methods by Brynjulf Owren: All of it.

  • Note on finite element methods by Charles Curry: Section 1-5.

  • J.C. Strikwerda: Finite Difference Schemes and Partial Differential Equations: Chapter 13.1-3 and 14.1-3 (Linear algebra for PDEs).

  • All course projects and exercises.
Important definitions/results/arguments not in Owren Handwritten note page Slides
DMP 1d: \(L_h=\frac1{h^2}\delta_h^2\) 9.01.2024 6
Parabolic (general result) 25.01.2024 2
2d: \(L_h=\frac1{h^2}(\delta_x^2+\delta_y^2)\) 08.02.2024 2-4
General result and proof 13.02.2024 6-7 week 7
Hyperbolic 22.02.2024 3-4
Meth. of positive coefficients 1d definition 11.01.2024 2
General definition 25.01.2024 2
Monotone method General definition 11.01.2024 2
13.02.2024 6 week 7
13.02.2024 6 week 7
Stability w.r.t. R.H.S 1d 11.01.2024 4
11.01.2024 1-2
1d+time 25.01.2024 3-6
2d 08.02.2024 4-5
Error analysis FDMs 1d 9.01.2024 3-5
1d+time (FE,BE) 08.02.2024 1-2
1d+time (general) 08.02.2024 3-5
2d 08.02.2024 1-3
general 15.02.2024 1-3
hyperbolic 27.02.2024 2-3

The exam

4 hours written school exam.

Prerequisite: You must have passed one project and the compulsory exercise.

Language: English.

Permitted aids: Approved simple calculator (check NTNU rules) AND Rottmann: Matematisk formelsamling.

  • The following 3 notes and 2 book chapters can be found in Inspera as attached PDF-files (no physical copies allowed):
  1. The note on finite difference methods by of Brynjulf Owren.

  2. The note on finite element methods by Charles Curry.

  3. Strikwerda: Finite Difference Schemes and Partial Differential Equations, chp. 13 and 14.

Inspera scan: Solutions must be submitted as handwritten sheets. At the bottom of each problem you will find a seven-digit code. Fill in this code in the top left corner of the sheets you wish to submit for this problem.

  • Different problems will have different seven-digit codes! 

Grading

Exam 60 %, 2 projects 40 %. The two grades are combined into one in Inspera.

Prerequisites

These are topics covered by earlier courses like Mathematics 1 - 4, Numerical Mathematics (TMA4215), and Linear Methods (TMA4145).

Subject Topics subtopics
Linear algebra Vector and matrix norms; Symmetric Positive Definite matrices; Inner product spaces; Linear independence; basis of a vector space; orthonormal basis.

Diagonalization; SVD; Jordan Canonical form.

Spectral radius; Gershgoring's theorem; Condition number.

Newton method; fixed point iteration; basic iterative methods for linear systems (Jacobi, Gauss-Seidel and SOR).
Calculus/Analysis Derivative, integration. Taylor's theorem. Big O notation.

Fourier series and transform.

Norms, continuity, convergence, completeness.

Function spaces, Hilbert spaces, \(L^p\) spaces, dual spaces.

Riesz representation theorem.
ODEs/PDEs Existence and uniqueness of ODEs. Solution of simple ODEs.

Classification of linear PDEs (elliptic/parabolic/hyperbolic).

Initial conditions, Dirichlet and Neumann boundary conditions.

Solution by separation of variables.
Numerical ODEs Convergence of the Euler method, order conditions and stability.

Course Software Info

In this course we use Jupyter notebooks, which are interactive web based notes containing both mathematical text and executable code. We will be using the Python programming language.

How to obtain Python and Jupyter

Jupyterhub

The fastest way to get started with Python and the Jupyter ecosystem is to use our Jupyterhub, which provides a cloud-based Jupyter environment which you can simply use in your browser. Just click on the link, enter your NTNU/Feide credantials and a Jupyter notebook application will show up in your browser tab. Once the project/exercise will be shared/uploaded:

  • Go to Jupyterhub
  • Log in, use your standard NTNU user and password
  • You should now have the Home page in Jupyter open. Go to Shared notebooks, click Use on the notebook of your interest, and it will open. What you see open is your local copy of the file, so you can use it and modify it without making any harm.
  • When you are finished with your session, please stop the kernel (see Control panel in the upper right corner), and log out.

(The system can sometimes be a bit slow. If it seems to have stopped completely, go to Control panel in the upper right corner, stop the server, log out and log in again.)

Local installation

If you prefer a local installation, the easiest way to obtain installation of a Python distribution which includes the most important scientific computing packages and a Jupyter environment, is to install the Anaconda Python Distribution. Detailed instructions for installing Anaconda on Windows, Linux and MacOS can be found in the Anaconda Documentation.

Tutorials on Python and Jupyter

If you want to quickly brush up your Python, we recommend you to take a look at https://www.learnpython.org/, but if you are more interested into a deep-dive into Python, you might want to visit https://www.w3schools.com/python/default.asp. In particular, there are detailed tutorials on three most important Python modules we will use throughout the course:

  • NumPy, a Python library/module used for working with arrays
  • SciPy, a Python library/module for scientific computing
  • Matplotlib, a Python library/module for visualization of scientific data.

Detailed documentation for the most fundamental Python libraries in scientific computations can be found at https://scipy.org/.

You can find a quick introduction to Jupyter Notebook in https://realpython.com/jupyter-notebook-introduction/, while the official documentation is in Jupyter Documentation. A collection of interesting Jupyter notebooks to familiarize with is in https://github.com/jupyter/jupyter/wiki.

Some additional notes may be added later.

2024-04-24, Espen Robstad Jakobsen