numerical-methods
Repository with the purpose of helping the ones in need on their path to achieving the computer science numerical wisdom. Contains MATLAB/Octave (and Python/C++ soon) implementations of the algorithms.
Implemented algorithms
Nonlinear Equations
|
Matlab |
Python |
C++ |
Bisection method |
:octocat: |
|
|
Newton-Raphson method |
:octocat: |
|
|
Secant method |
:octocat: |
|
|
Gaussian methods
|
Matlab |
Python |
C++ |
Gaussian elimination |
:octocat: |
|
|
Gaussian elimination with Partial Pivoting |
:octocat: |
|
|
Gaussian elimination with Scaled Partial Pivoting |
:octocat: |
|
|
Gaussian elimination with Total Pivoting |
:octocat: |
|
|
LU Factorization methods
|
Matlab |
Python |
C++ |
Doolittle |
:octocat: |
|
|
Crout |
:octocat: |
|
|
Cholesky |
:octocat: |
|
|
QR Factorization methods
|
Matlab |
Python |
C++ |
Givens |
:octocat: |
|
|
Gram-Schmidt |
:octocat: |
|
|
Householder |
:octocat: |
|
|
Iterative methods
|
Matlab |
Python |
C++ |
Gauss-Seidel |
:octocat: |
|
|
Jacobi |
:octocat: |
|
|
Successive over-relaxation (SOR) |
:octocat: |
|
|
Eigenvalues decomposition
|
Matlab |
Python |
C++ |
Power method |
:octocat: |
|
|
Inverse Power method |
:octocat: |
|
|
Deflation method |
:octocat: |
|
|
Ad-hoc algorithms
|
Matlab |
Python |
C++ |
Diagonally dominance |
:octocat: |
|
|
Positive definition |
:octocat: |
|
|
Triangular matrices evaluation |
:octocat: |
|
|
Gershgorin circles |
:octocat: |
|
|
Gauss-Jordan Matrix Inverse |
:octocat: |
|
|
Convention
- Before starting working on something, check the "Pull requests" tab to see if there isn't anyone who's already doing the same thing!
- Convention: The sources' names will start with a capital letter: "Crout", "Doolittle", "Householder", "Givens" etc.
- Comment your sources!
- Test your sources with several input cases: eye matrix, full matrix, triu matrix, tril matric, random matrix, small, big etc.
- Use notation tags:
- [NOTE] for related notes
- [USES] for sources which use other sources that are in a different folder to suggest that the user should first copy the dependencies (sources needed) in the same folder for testing
- before creating a Pull Request, it should look like this: Householder
Python coding style
https://github.com/google/yapf
Contributors
This project exists thanks to all the people who contribute.
Other repositories that might be of interest:
-
Algorithm design repository
-
Computer Programming repository