

Numerical Algorithm
Numerical Algorithm Repository Description
In this repository, we will state several practically numerical algorithm initially, and show the examples and codes which can you have explicit understanding about the algorithms. Later, we will follow some cutting-edge papers about numerical algorithms, do the code reproduction, and share in this repository.
Prerequisites
- At least one programming language, Matlab, python, or other languages if you are familiar with.
- Understanding of variables, data types, vector, matrix and basic function usage in your chosen programming language.
- Basic knowledge of Mathematical Analysis and Linear Algebra.
These won’t be enforced by the instructor, but you will be pretty lost without understanding those concepts. If you need a refresher, take a look at the beginner material we will upload.
Topics Overview
We will dive into the basic algorithm, and the nuances of them. Practical tools in Python and Matlab will be discussed, but we do not recommond you use that when you try to comprehend the numerical algorithms. The focus will be on complexity, convergency, and stability. Topics covered include:
Topics will be demonstrated through live-code examples/slides, available at Matlab Branch. For additional code in python please see Python Branch
See perface for background.
Projects/Code Review/Code reproduction
All assignments are listed within the Content Outline.
Content Outline
Numerical Algebra
Numerical Approximate
Numerical Partial Differential Equation
Numerical Stochastic Differencial Equation
Monte Carlo Method
Numerical Optimization
Advanced Topic
Resources
Beginner Materials
This class assumes you are confident with this material, but in case you need a brush-up…
Recommended Reading
- Finite Difference Methods for Ordinary and Partial Differential Equations Author: Randall J.LeVeque
- Basical Partial Differential Equation Author: David Bleecker, George Csordas
- 偏微分方程数值解法 李荣华
Specific Topics
- Matlab
- Python Numpy, Scipy, Matplotlib
GitHub
- Git and GitHub
- GitHub Pages
Workflow
If you’re using GitHub Desktop, these general instructions will help:
Enabling Edit
->Automatically Sync after Committing
is recommended. Here are the steps:
- Fork the repository for the exercise/project (found under github.com/Gonewiththewind4/Numerical-Algorithm).
- Clone the repository to your computer.
- Make sure all of your code is committed.
- Push/sync up to GitHub.
- Create a pull request on the original repository.
Program Skill Requirements
These apply to real life, as well.
- Travis CI build should pass if you want to use it. For matlab codes, please try Jenkins for continous integration.
- Must apply “good programming style” learned in class
- Functions should be “short” (see Sandi Metz’s rules for developers).
- Optimize for readability.
- Avoid using anonymous callbacks within other functions, especially if the callback is more than one or two lines.
- For projects, use Object-Oriented Programming.
- Any borrowed code must be properly annotated.
Reference
More Examples
(Continue to upload later)