Skip to main content

Numerical Analysis methods with Python (experimental)

Project description

Numerica

PyPI version

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

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

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


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)

Uploaded Source

Built Distribution

numerica-0.3.0-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

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

Hashes for numerica-0.3.0.tar.gz
Algorithm Hash digest
SHA256 36c2ba7fe71bae7a44678b470aded20dd413d1f4745b515d68b30835823106bc
MD5 1254768b18a274115b48507731909eea
BLAKE2b-256 3922e98443d3623d0854b0bc463415bd0519dd7f106a55a31149848ea9f81111

See more details on using hashes here.

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

Hashes for numerica-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e13e9728cf065b2735be44e091d8f9420fd8c9eb2b9a60ced240a17fcdb35880
MD5 4752ae3f56aaa8a49f3ed0956c8faeb9
BLAKE2b-256 a85c159fe2f802bba027ee5b4663d982f355cbbf460fd53ff4f8d39fca085eec

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page