# Learning material

All Jupyter notebooks can be beautified using the css file caculus4N.css used found here.

## Week 34 - Introduction and Preliminaries

- Please take some time to review some important material from Calculus 1 to 3 and have a look at the Preliminaries.pdf. Regarding vector spaces, inner products, orthogonal projections etc. it might be a good idea to review the corresponding lecture notes 9-projeksjon.pdf from last autumn's Calculus 3 course. We also recommend to try to solve the corresponding
**homework assignment from last year**(but don't try to submit it) old_exercise_01.pdf, you can have a look at the solution manual if we get stuck with one of the problems old_exercise_01_solutions.pdf - Lecture notes on Introduction.ipynb, Introduction.pdf
- Lecture notes on MachineRepresentationOfNumbers.ipynb

**Note that topics from week 34 won't be relevant for the exam.**

## Week 35 - Polynomial interpolation

- Lecture notes LagrangeInterpolation.pdf and corresponding Jupyter notebook LagrangeInterpolation.ipynb, open it directly in our Jupyterhub
- Lecture notes NewtonInterpolation.pdf and corresponding Jupyter notebook NewtonInterpolation.ipynb, open it directly in our Jupyterhub
- Handwritten supplemental notes written during the lectures can be found in PolynomialInterpolationSupplements.pdf (04.09.21 09:39)
- Lecture notes ErrorTheoryInterpolation.pdf and corresponding Jupyter notebook ErrorTheoryInterpolation.ipynb, open it directly in our Jupyterhub)
- The python code used in the Jupyter notebooks above is can be also found in polynomialinterpolation.py

### Key concepts

- Interpolation problem
- Lagrange Interpolation using Lagrange polynomials (Ccardinal functions)
- Newton Interpolation using Newton polynomials
- Estimate for interpolation error
- Runge's example and optimal distribution of interpolation nodes using Chebychev nodes/interpolation

## Week 36 - Numerical integration

- Preliminaries: Some numerical integration methods were already considered in Calculus 1, Week 42, please review this material, e.g. by watching video recording of lecture 08 (in Norwegian).
- Lecture notes SimpleQuadrature.pdf, as Jupyter notebook SimpleQuadrature.ipynb, SimpleQuadrature.ipynb (on Jupyterhub)
- Lecture notes CompositeQuadrature.pdf and corresponding Jupyter notebook CompositeQuadrature.ipynb, CompositeQuadrature.ipynb (on Jupyterhub)
- Lecture notes GaussQuadrature.pdf and corresponding Jupyter notebook GaussQuadrature.ipynb, GaussQuadrature.ipynb (on Jupyterhub)

## Week 37 - Numerical methods for nonlinear equations

- Hand-written lecture notes Lecture 7 (Bisection, Fixed point iterations), Lecture 7 continued, Lecture 8 (Newton method, systems of nonlinear equations).
- Jupyter Notebook nonlinearequations.ipynb

#### Week 37 - Additional Python crash course

- Code tutorial on composite quadrature rules CompositeSimpsonCodeTutorial.ipynb CompositeSimpsonCodeTutorial.ipynb (on Jupyterhub)

### Key concepts

- Idea of numerical integration/quadrature rules
- Simple quadrature rules (QR), such as endpoint QR, midpoint QR, trapezoidal QR, Simpson's QR
- Degree of exactness
- Quadrature error estimate for simple QRs
- Design of composite quadrature rules (CQR)
- Error estimates for CQR
- Convergence/approximation order and experimental order of convergence (EOC)
- Gauss quadrature (
**not relevant for exam**)

## Week 38-39 Laplace transform

- Slides Lecture 9
- Slides with notes Lecture 9 with handwritten notes
- Slides Lecture 10
- Slides with notes Lecture 10 with handwritten notes
- Slides Lecture 11
- Slides with notes Lecture 11 with handwritten notes (This is an updated version from Monday 12-14. In the earlier class, there was 1/2 (in red) on slide 9 which was not supposed to be there)
- Slides Lecture 12
- Slides with notes Lecture 12 with handwritten notes (This is the version of Parallel 2, as there was an error on page 16 in parallel 1, which is corrected in this new version (and also corrected in the video))
- Here is a short reminder on (a simplified version of) partial fraction decomposition (delbrøksoppspaltning), including an example.
- Lecture notes on Laplace transform by Marten Nome (in Norwegian) 01-laplacetransform.pdf

### Key Concepts

- s-shifting
- t-shifting
- existence of the Laplace transform
- Laplace transform of derivatives and integrals
- solving ODEs with the Laplace transform
- unit step function, Dirac's delta function
- Convolution
- Integral Equations
- Differentiation and Integration of Transforms
- Systems of ODEs

## Week 40-41 Numerical methods for ordinary differential equations

- Introduction to numerical methods for ODEs: IntroductionNuMeODE.ipynb IntroductionNuMeODE.ipynb (on Jupyterhub). There is also a pdf version IntroductionNuMeODE.pdf.
- Error analysis of numerical methods for ODEs: ErrorAnalysisNuMeODE.ipynb, ErrorAnalysisNuMeODE.ipynb (on Jupyterhub). There is also a pdf version ErrorAnalysisNuMeODE.pdf.
- Introduction to Runge-Kutta methods: RungeKuttaNuMeODE.ipynb, RungeKuttaNuMeODE.ipynb (on Jupyterhub), RungeKuttaNuMeODE.pdf.
- Adaptive Runge-Kutta methods AdaptiveNuMeODE.ipynb
- Final notebook containing all code tutorial on Runge-Kutta methods RungeKuttaCodeTutorials.ipynb RungeKuttaCodeTutorials.ipynb (on Jupyterhub). It contains a few "After notes" of things which we did not manage to take up during the code tutorials.

### Key concepts

- Initial value problem for ordinary differential equations (ODE)
- Euler's method and Heun's method, derivation of the methods and implementation
- General one-step methods
- Error theory including consistency/convergence error, convergence order, EOC (again!)
- Explicit Runge-Kutta methods: Motivation, description via Butcher tables, implementation
- Adaptive/embedded Runge-Kutta methods including computable error estimates and adaptive time-step selection

## Week 42 - 43 - Fourier series

- Slides Lecture 17 (Using Acrobat Reader, you can see the interactive slide on trigonometric functions)
- Hand-written lecture notes Lecture 17
- Slides Lecture 18
- Hand-written lecture notes Lecture 18
- Slides Lecture 19
- Hand-written lecture notes Lecture 19
- Slides Lecture 20
- Hand-written notes Lecture 20 (with a correction: infinity has been changed to N on page 2)
- Jupyter notebook lecture_17_additional_material.ipynb provides supplemental material, in particular plots of some (partial sums of) Fourier series.
- Lecture notes on Fourier series by Marten Nome (in Norwegian) fourierrekker.pdf
- To motivate the importance of understanding periodic functions, you can watch a video on atrial fibrillation made by NHI (Norsk Helseinformatikk).
- Finally, here is a short video by Steve Brunton explaining/illustrating the Gibb's phenomena very nicely! Extremely nice setup for digital teaching and I can only encourage you to poke around in Steve Brunton's well-known and famous YouTube channel covering a lot of computational engineering/mathematics topics!

### Key Concepts

- Fouries series representation of functions with period 2 \pi and arbitrary period; Euler formulas
- even, odd functions and their Fourier series representation
- half-range expansions
- approximation by trigonometric polynomials; minimum square error
- Fourier integral

## Week 44 Fourier transform

- Slides Lecture 21
- Hand-written lecture notes Lecture 21
- Hand-written lecture notes Lecture 22

### Key Concepts

- Fourier integral
- Gibbs phenomenon
- Fourier cosine and Fourier sine integral
- complex form of the Fourier integral
- Fourier transform and its properties; convolution#
- Discrete Fourier transform

## Week 45 Heat Equation

- Hand-written lecture notes Lecture 23
- Hand-written lecture notes Lecture 24

### Key Concepts

- Fundamental theorem on superposition
- Solution of the heat equation by Fourier series
- Steady two-dimensional heat equation: Laplace's equation
- Solving the Dirichlet problem in a rectangle
- Heat equation: Modeling very long bars

## Week 46 Wave Equation

- My handwritten lecture notes on the wave equation taking during the lecture WaveEquationLiveNotes.pdf (Nov 17, 23:00).
- Lecture notes on wave equation by Marten Nome (in Norwegian bolgelikningen.pdf

### Key concepts

- Formulation of wave equation with boundary and initial conditions
- Solution formula for a wave equation on a bounded interval using separation of variables
- d'Alembert's solution formula for wave equation on real line

## Week 47 Numerical methods for partial differential equations

- Finite difference methods for two-point boundary problems: Jupyter notebook TwoPointBoundaryProblems.ipynb, you can also simply pull the notebook into your JupyterHub instance by clicking this link. There is also a pdf version TwoPointBoundaryProblems.pdf
- Finite difference method for the Poisson problem in 2D: Jupyter notebook FDMPoissonProblem2D.ipynb (local copy), on Jupyterhub, and PDF version FDMPoissonProblem2D.pdf

### Key concepts

- Formulation of general two-point value problems
- Finite difference operators for first and second order derivatives and their approximation/convergence order
- Finite difference methods for the 1 dimensional Poisson problem -u'' = f with Dirichlet boundary conditions including resulting linear system and convergence order
- Finite difference methods for general two-point value problem with Dirichlet boundary conditions
- Finite difference methods for general two-point value problem with Neuman/Robin boundary conditions
- Finite difference methods for the 2-dimensional Poisson problem

**Important!**

All learning material below this line stems from the spring edition of Calculus 4N.`
For your convenience, we include it here in case want to get an idea of what lies
ahead of you. The material will continuously be updated during the course and whenever this happens,
this "marking line" will be moved downward accordingly and you will
receive an email notification via blackboard.
**Important!**

- Numerical methods for the heat equation: Jupyter notebook NumericalMethodsHeatEquation.ipynb, you can also simply pull the notebook into your JupyterHub instance by clicking this link. There is also a pdf version NumericalMethodsHeatEquation.pdf.
- Seminar covering how to write down discretizations and how to numerically solve some other PDE's. IPython Notebook numerical_solution_nonlin_and_wave.ipynb and hand-written notes. numerical_pde_seminar.pdf
- Lecture notes numerical methods for partial differential equations by Morten Nome (in Norwegian) 11-numerikk-for-pde.pdf

### Supplemental material

I heavily use and reuse Morten Nome's excellent lecture notes from 2019 edition of TMA4215, in particular for Part I of the course. For the second part, the material will be mostly based on Anne Kvœrnø's Jupyter Notebooks.