An open API service indexing awesome lists of open source software.

https://github.com/djeada/numerical-methods

Comprehensive library of numerical methods implemented in Python. It includes solutions to various mathematical problems, detailed explanations of each method, illustrative examples, and comparisons with prominent scientific libraries like Numpy, Scikit-Learn, and SciPy.
https://github.com/djeada/numerical-methods

jupyter-notebook linear-algebra matplotlib numerical-methods numpy python scikit-learn scipy

Last synced: 3 months ago
JSON representation

Comprehensive library of numerical methods implemented in Python. It includes solutions to various mathematical problems, detailed explanations of each method, illustrative examples, and comparisons with prominent scientific libraries like Numpy, Scikit-Learn, and SciPy.

Awesome Lists containing this project

README

        

# Numerical Methods
Comprehensive library of numerical methods implemented in Python. It includes solutions to various mathematical problems, detailed explanations of each method, illustrative examples, and comparisons with prominent scientific libraries like Numpy, Scikit-Learn, and SciPy.

![Demo](https://user-images.githubusercontent.com/37275728/189313603-b409b2be-41b5-4de6-9d4f-2bd8f6e41565.png)

## Requirements

* Python 3.10+
* Whatever library is mentioned in the project's requirements.txt file.

## Installation

To run *.py* scripts the recommended approach is to use virtualenv:

$ virtualenv env
$ source env/bin/activate
$ pip install -r requirements.txt
$ python path/to/main.py

For *.ipynb* notebooks you do not need to install anything locally on your PC. You may run all of the examples on the official website of Jupyter Notebooks using a demo version:

https://jupyter.org/try

To run the notebooks locally, use the following command:

$ jupyter notebook path/to/notebook.ipynb

## Topics

### Root And Extrema Finding

Method | Notes | Implementation | Examples
------ | ----- | -------------- | --------
| Bisection Method | | | |
| Secant Method | | | |
| Relaxation Method | | | |
| Golden Ratio Search | | | |
| Newton Raphson | | | |
| Gradient Descent | | | |

### Systems Of Equations

Method | Notes | Implementation | Examples
------ | ----- | -------------- | --------
| Inverse Matrix | | | |
| Gaussian Elimination | | | |
| LU Decomposition | | | |
| Gauss Seidel Method | | | |
| Jacobi Method | | | |

### Differentiation

Method | Notes | Implementation | Examples
------ | ----- | -------------- | --------
| Taylor series | | | |
| Forward difference | | | |
| Backward difference | | | |
| Central difference | | | |

### Integration

Method | Notes | Implementation | Examples
------ | ----- | -------------- | --------
| Midpoint Rule | | | |
| Trapezoidal Rule | | | |
| Simpson's Rule | | | |
| Monte Carlo Integration | | | |

### Matrices

Method | Notes | Implementation | Examples
------ | ----- | -------------- | --------
| Eigenvalues and Eigenvectors | | | |
| Power Method | | | |
| QR Method | | | |
| Eigenvalue Decomposition (EVD) | | | |
| Singular Value Decomposition (SVD) | | | |

### Regression

Method | Notes | Implementation | Examples
------ | ----- | -------------- | --------
| Linear Interpolation | | | |
| Least Squares | | | |
| Cubic Spline | | | |
| Lagrange Polynomial | | | |
| Newton's Polynomial | | | |
| Gaussian Interpolation | | | |
| Thin Plate Spline Interpolation | | | |

### Ordinary Differential Equations

Method | Notes | Implementation | Examples
------ | ----- | -------------- | --------
| Euler's Method | | | |
| Heun's Method | | | |
| Runge Kutta | | | |
| Picard's Method | | | |

## References

### Books

- **Burden, Richard L.; Faires, J. Douglas**
*Numerical Analysis, 9th Edition*
[Amazon Link](https://amzn.to/4jcJ6Ku)

- **Epperson, James F.**
*An Introduction to Numerical Methods and Analysis*
[Amazon Link](https://amzn.to/4hZUdWl)

- **Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P.**
*Numerical Recipes: The Art of Scientific Computing, 3rd Edition*
[Amazon Link](https://amzn.to/4liZQ4w)

- **Heath, Michael T.**
*Scientific Computing: An Introductory Survey*
[Amazon Link](https://amzn.to/41YDYE5)

- **Giordano, Nicholas J.; Nakanishi, Hisao**
*Computational Physics*
[Amazon Link](https://amzn.to/4cmFQtN)

- **Chapra, Steven C.**
*Applied Numerical Methods with MATLAB for Engineers and Scientists*
[Amazon Link](https://amzn.to/42h0Z49)

- **LeVeque, Randall J.**
*Finite Difference Methods for Ordinary and Partial Differential Equations*
[Amazon Link](https://amzn.to/3RyCpqm)

### Online Resources

- [MIT OpenCourseWare: Linear Algebra](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/)
- [Wikiversity: Cubic Spline Interpolation](https://en.wikiversity.org/wiki/Cubic_Spline_Interpolation)
- [Statnotes: Statistical Concepts by Dr. Garson](https://faculty.chass.ncsu.edu/garson/PA765/statnote.htm)
- [Numerical Methods Lectures, SDSU](https://jmahaffy.sdsu.edu/courses/s18/math541/Lectures.html)
- [Numerical Analysis: U of A Engineering Courses](https://engcourses-uofa.ca/books/numericalanalysis)
- [Numerical Methods by John Foster, UT Austin](https://johnfoster.pge.utexas.edu/numerical-methods-book)
- [Numerical Methods Course Material, NYU](https://math.nyu.edu/~stadler/num1/material/)
- [Fundamentals of Numerical Computation by Tobin A. Driscoll and Richard J. Braun](https://fncbook.com/)

## Contributing

Contributions are welcome! If you'd like to propose a major change, please open an issue first to discuss your ideas.

When contributing, ensure you update relevant tests as needed to maintain the integrity of the project.

## License

This project is licensed under the [MIT License](https://choosealicense.com/licenses/mit/).

## Star History

[![Star History Chart](https://api.star-history.com/svg?repos=djeada/Numerical-Methods&type=Date)](https://star-history.com/#djeada/Numerical-Methods&Date)