# 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 start on Monday, 11th of January.
• Lectures and tutorial session will be held digitally and recorded via Zoom throughout the entire January, see Zoom and Panopto for online lectures below for detailed information.

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."1)

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 Administrative stuff you need to know.

## Administrative stuff you need to know

### Zoom and Panopto for online lectures

The digital lectures will be given and recorded via Zoom.

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. You can find the complete Zoom meeting details on our Blackboard page.

Note that all Zoom lectures and plenary exercise sessions will be recorded and you can find the video recordings on our Panopto (lectures) and Panopto (plenary exercises) webpage, respectively. You will also find the links in the menu of our Blackboard course page.

### Getting Python and Jupyter

The easiest way to obtain 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.

Alternatively, you can also use our Jupyterhub. Instructions for how to log in and to upload own notebooks can be found on the course-related Blackboard page.

### 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 and learning material

### Lecture plan

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.

All learning material can be found on our Learning material page.

1)
See Introduction to the Julia manual