# 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, 23th of August at 8:15 on campus!** The detailed time and room plan can be found here.
All lectures will be given in English.

## 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.

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

## 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/.

## 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.

Week | Chapter | Content | Instructor |
---|---|---|---|

34 | Introduction and preliminaries | AM | |

35 | Polynomial interpolation | AM | |

36 | Numerical integration | AM | |

37 | Numerical methods for nonlinear equations | EK | |

38 | 6.1-6.2 | Laplace transform | EK |

39 | 6.3-6.7 | Laplace transform | EK |

40 | Numerical methods for ordinary differential equations | AM | |

41 | Numerical methods for ordinary differential equations | AM | |

42 | 11.1-11.4 | Fourier series | EK |

43 | 11.1-11.4 | Fourier series | EK |

44 | 11.7, 11.9 | Fourier transform | EK |

45 | 12.5-12.7 | Heat Equation | EK |

46 | 12.1-12.4 | Wave Equation | AM |

47 | Numerical methods for partial differential equations | AM |

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