Numerical Methods
An HSSP Spring Course
Difficulty: High.
Required Knowledge:
- Middle school algebra.
- If you wish to do homework you should know Python. You would probably be fine with MATLAB, C++, or C#, but all code here will be written in Python with the packages
numpy, scipy, matplotlib,
and jupyter
.
Schedule
- The derivative, fixed point iteration, Newton’s method, Euler, Runge-Kutta, and multistep methods.
- Quadrature a.k.a. numerical integration, finite difference methods and correctors.
- Linear differential equations, matrix fundamentals, the QR algorithm, Newton-like methods, stiffness.
- Finite element methods, various bases, Fourier/DCT transforms, Fourier analysis (faster solvers), Fourier analysis (stability).
- Optimization: Binary and golden-section search, the simplex method, gradient descent, conjugate gradient descent, and Adam.
- Stable diffusion.
Lecture Notes
- Week 1
- Week 2
- Week 3
- Week 4
- Week 5
Examples
- Week 1
- Week 2
- Week 3
- Week 4
- Week 5
- Week 6
Installation
Open up the terminal (cmd line on Windows) and run
git clone https://github.com/programjames/hssp-spring-numerical-methods
cd hssp-spring-numerical-methods/examples
pip install -r requirements.txt
To view a .ipynb
file run jupyter notebook
and open the corresponding file.