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/*
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.1.tar.gz
(11.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
numerica-0.3.1-py3-none-any.whl
(15.7 kB
view details)
File details
Details for the file numerica-0.3.1.tar.gz.
File metadata
- Download URL: numerica-0.3.1.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 |
8a577386456df2eb117645d484869ba2168352ad886b25d1402bab5bedfe6198
|
|
| MD5 |
2ddc4fd316018a1af16428fa579d4983
|
|
| BLAKE2b-256 |
62d7767af59aaf1739db8d52609d5669da46c13936e4102ca275c8a89c915c57
|
File details
Details for the file numerica-0.3.1-py3-none-any.whl.
File metadata
- Download URL: numerica-0.3.1-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 |
ddd1fbd982535d3e671ab213770bf7007b513fd7ffc6d548248d20ad2d763ff5
|
|
| MD5 |
05e7352154d7844cabb6e6c687f9d4d7
|
|
| BLAKE2b-256 |
539d133508e3f0a83227f8845f6149d9ae18619a5266cef106330801a93504c0
|