Skip to content

Latest commit

 

History

History
89 lines (66 loc) · 2.97 KB

README.md

File metadata and controls

89 lines (66 loc) · 2.97 KB

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:

  1. Algorithm design repository
  2. Computer Programming repository