Lectures

This page contains a brief description of the curriculum including the progress plan as well as related administrative information. All topics of the covered material are examinable unless explicitly exempted.

  • Lectures: Tue, 12.15-14.00 and Wed, 14.15-16.00.
  • Plenumgsregning: Thu 10.15-12.00 on Zoom.

About the curriculum

Our course focuses on analytical and numerical techniques for solving ordinary differential equations as well as partial differential equations as well as a more in-depth introduction into numerical methods in general. In the past, the analytical and the numerical part were taught rather separately, and this year we will try to take a more integrated approach. Nevertheless you can think of the following topics to be taught during this course:

Part I: Laplace transforms and Fourier analysis

This part introduces analytical techniques to solve both ODEs and PDEs (and many other problems). To solves ODEs analytical, we will familiarize us with Laplace transform, a smart and powerful way to transform differential equations into algebraic ones that might be easier to solve. Another exciting topic we will study are Fourier series, which express simple functions as sums of sinus- and cosinus signals, and their extension, the Fourier transforms. These topics have applications in signal processing, image compression and many other areas in applied mathematics and the mathematical sciences. We will also discuss functions of several variables, and how to solve partial differential equations (PDEs), e.g., the heat and wave equations, by Fourier series.

The material for this part is based Advanced Engineering Mathematics by Erwin Kreyszig, 10th edition, John Wiley & Sons, 2011 and the chapter numbers in the table below refer to this textbook.

Part II: Numerical methods

Most of the mathematical equations and expressions encountered in real life applications can not be solved exactly using pen and paper. Instead, we search for approximate solutions, using numerical algorithms implemented on computers. In this course, we will look at numerical algorithms for solving nonlinear algebraic as well as ordinary and partial differential equations. We will also study how functions can be approximated by polynomials, and how this can be used to find approximations to integrals. Implementation and testing are indispensable elements when studying numerical methods.

The lecture material in this part of the course is given as Jupyter notebooks, which are interactive web based notes containing both mathematical text and executable code. Many of the presented examples and all homework related programming task will be using the Python programming language. Occasionally, we might use the Julia programming language for numerical examples. Julia is a rather new programming language which

"is a flexible dynamic language, appropriate for scientific and numerical computing, with performance comparable to traditional statically-typed languages." (from the Introduction to the Julia manual)

So in a (very small) nutshell, Julia aims at being as easy to use as Python and at running as fast as C code.

For instructions on how to obtain a Jupyter/Python/Julia environment, we refer you to the section below on How to obtain Python and Jupyter.

Administrative stuff you need to know

Zoom for online lectures

The digital lectures will be given and recorded via Zoom.

The Plenumsregning will also be digital and recorded via Zoom as well.

Please note that in order to access the zoom meeting, you need to login via SSO (Single sign-on) which allows you to login using your NTNU credentials, see Zoom with NTNU account for more information.

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 voilà, a Jupyter notebook application will show up in your browser tab.

Local installation

If you prefer a local installtion, the easiest way to obtain installation of a full-fledged 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/.

Getting Julia

See the download and platform specific installation instructions at https://julialang.org if you want to have a local copy on your computer. You can use the Jupyter environment from your Anaconda installation with Julia, see this tutorial. Otherwise, the JupyterLab at our course related online JupyterHub has a Julia kernel as well.

Lecture plan Overview

Note that this lecture plan is not set in stone and might be subject to modifications.

Chapter numbers in the table below refer to Advanced Engineering Mathematics by Erwin Kreyszig, 10th edition, John Wiley & Sons, 2011. You usually find most of the material also in mentioned chapters, but sometimes not all (for example for polynomial interpolation, Chebyshev nodes are not mentioned in the book, but their corresponding polynomials are).

Week Chapter Content
2 Introduction and preliminaries
3 19.3 Polynomial interpolation
4 19.5 Numerical integration
5 19.2 Numerical methods for nonlinear equations
6 6.1-6.5 Laplace transform
7
8 21.1-21.3* Numerical methods for ordinary differential equations
9
10 11.1-11.4, PPST, Ch. 1 Fourier series
11.
12 11.7-11.9, PPST, Ch. 3&5 Fourier transform
13 12.5-12.7 Heat Equation
14 12.1-12.4 Wave Equation
15 no lectures due to Easter break
16 (Wed) Numerical methods for partial differential equations
17 (Tue) Finish Methods for PDEs, (Wed) Question time

* This chapter is shorter and less detailed than we do/need it in our lecture, see Morten Nomes Notes or the slides for further references. PPST: Plonka, Potts, Steidl, Tasche: Numerical Fourier Analysis, Birkhäuser, 2018.

2022-10-05, Ronny Bergmann