Numerical Analysis methods with Python (experimental)
Project description
Numerica
My own experimental implementations of numerical methods as homework.
Use documentation to see how to use, and check test.py for real examples.
Table of Contents
- Usage
- Documentation
- Resources
- Testing Package
- Uploading to PyPI
Usage
python >= 3.8 is required
Importing
import numerica as n
from numerica import f // function definition
from numerica import m // matrix definition
Function Definition
f('expression')
fx = f('3x^2 + 2x + 3')
fx(2)
Matrix Definition
m(
a11, a12, a13;
a21, a22, a23;
a31, a32, a33
)
matrix = m('1,2,3; 4,5,6; 7,8,9');
Documentation
1- Solving Nonlinear Equations
Root Bracketing Methods
Graph
n.nl_graph(fx, dx, epsilon, x)
Bisection
n.nl_bisection(fx, epsilon, a, b)
Regula-Falsi
n.nl_regulafalsi(fx, epsilon, a, b)
Iterative Methods
Fixed-Point Iteration
n.nl_fixedpoint(hx, epsilon, x)
Newton-Raphson
n.nl_newtonraphson(fx, epsilon, x)
Secant
n.nl_secant(fx, epsilon, x0, x1)
2- Matrix Operations
Basic Operations
Matrix Definition
m(
a11, a12, a13;
a21, a22, a23;
a31, a32, a33
)
Identity Matrix
n.m_id(n)
Size of Matrix
(m, n) = n.m_size(A)
Transpose of a Matrix
n.m_transpose(A)
Finding Inverse of a Matrix
Gauss-Jordan Method
n.mi_gaussjordan(A)
Matrix Utils
Concat Matrices by Row (Horizontal)
n.m_rowconcat(A, B)
Concat Matrices by Column (Vertical)
n.m_colconcat(A, B)
Map a Row of Matrix
n.m_rowmap(A, i, iteratee)
Map all Matrix Cells
n.m_cellmap(A, iteratee)
Is Matrix Check
n.is_matrix(A)
Slice Matrix Vertically
n.m_rowslice(A, start, stop, step)
3- Solving Systems of Linear Equations
Gauss Elimination
n.ls_gauss(A, C)
Jacobi
n.ls_jacobi(A, C, X, epsilon=0.001)
Gauss-Seidel
n.ls_gaussseidel(A, C, X, epsilon=0.001)
4- Solving Systems of Nonlinear Equations
5- Numerical Integration
Trapezoidal
n.itg_trapezoidal(fx, x0, xn, n)
Simpson
n.itg_simpson(fx, x0, xn, n)
6- Numerical Differentiation
Euler Methods
Backward
n.diff_backward(fx, x)
Forward
n.diff_forward(fx, x)
Midpoint
n.diff_midpoint(fx, x)
7- Finite Differences
Determine Degree of a Polynomial
n.fd_degree(pair_tuples)
n.fd_degree([(x0,y0), (x1,y1), (x2,y3), ...])
8- Interpolation
Lagrange
n.itp_lagrange(pair_tuples)
n.itp_lagrange([(x0,y0), (x1,y1), (x2,y3), ...], x)
9- Regression
Least Squares
n.reg_leastsquares(pair_tuples)
n.reg_leastsquares([(x0,y0), (x1,y1), (x2,y3), ...], x, deg)
Resources
- YTU Numerical Analysis Lecture Notes
- https://mat.iitm.ac.in/home/sryedida/public_html/caimna/index1.html
Testing Package
Test Directly as Script
python3.8 -m numerica
or Install Package Locally (from repo root dir)
pip3.8 install .
and Test It from REPL
import numerica as n
# ...
or Use test.py Interactively
python3.8 -i test.py
# ...
or Just Test and Exit
python3.8 test.py
Uploading to PyPI
Install Twine
pip3.8 install twine
Build
rm -rf build & rm -rf dist & rm -rf numerica.egg-info
python3.8 setup.py sdist bdist_wheel
Upload
twine upload dist/*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
numerica-0.3.0.tar.gz
(11.5 kB
view details)
Built Distribution
numerica-0.3.0-py3-none-any.whl
(15.7 kB
view details)
File details
Details for the file numerica-0.3.0.tar.gz
.
File metadata
- Download URL: numerica-0.3.0.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36c2ba7fe71bae7a44678b470aded20dd413d1f4745b515d68b30835823106bc |
|
MD5 | 1254768b18a274115b48507731909eea |
|
BLAKE2b-256 | 3922e98443d3623d0854b0bc463415bd0519dd7f106a55a31149848ea9f81111 |
File details
Details for the file numerica-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: numerica-0.3.0-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e13e9728cf065b2735be44e091d8f9420fd8c9eb2b9a60ced240a17fcdb35880 |
|
MD5 | 4752ae3f56aaa8a49f3ed0956c8faeb9 |
|
BLAKE2b-256 | a85c159fe2f802bba027ee5b4663d982f355cbbf460fd53ff4f8d39fca085eec |