pysolverkit 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pysolverkit/__init__.py +70 -0
- pysolverkit/enums.py +91 -0
- pysolverkit/functions/__init__.py +17 -0
- pysolverkit/functions/base.py +445 -0
- pysolverkit/functions/elementary.py +192 -0
- pysolverkit/functions/fem2d.py +128 -0
- pysolverkit/functions/multivariate.py +57 -0
- pysolverkit/linalg/__init__.py +5 -0
- pysolverkit/linalg/linear_system.py +134 -0
- pysolverkit/linalg/matrix.py +42 -0
- pysolverkit/linalg/vector.py +46 -0
- pysolverkit/ode/__init__.py +12 -0
- pysolverkit/ode/base.py +6 -0
- pysolverkit/ode/first_order.py +297 -0
- pysolverkit/ode/second_order.py +323 -0
- pysolverkit/util.py +62 -0
- pysolverkit-0.1.0.dist-info/METADATA +58 -0
- pysolverkit-0.1.0.dist-info/RECORD +20 -0
- pysolverkit-0.1.0.dist-info/WHEEL +5 -0
- pysolverkit-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pysolverkit
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A Python library of numerical methods for root finding, interpolation, integration, ODEs, and linear systems
|
|
5
|
+
Requires-Python: >=3.10
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
|
|
8
|
+
# PySolverKit
|
|
9
|
+
|
|
10
|
+
[](https://github.com/mrigankpawagi/PySolverKit/actions/workflows/tests.yml)
|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
A compact Python library that brings classical numerical methods to life — root finding, interpolation, differentiation, integration, ODE solvers, linear systems, and 2D FEM for Poisson problems.
|
|
14
|
+
|
|
15
|
+
## Features
|
|
16
|
+
|
|
17
|
+
- **Function arithmetic** — add, subtract, multiply, and compose built-in function types (`Polynomial`, `Sin`, `Cos`, `Tan`, `Exponent`, `Log`) with plain Python operators
|
|
18
|
+
- **Root finding** — bisection, Newton-Raphson, secant, Regula Falsi, and modified Newton methods
|
|
19
|
+
- **Interpolation** — Lagrange and Newton divided-difference forms (forward/backward difference tables included)
|
|
20
|
+
- **Differentiation** — forward, backward, and central finite-difference schemes; set an exact derivative for Newton-type solvers
|
|
21
|
+
- **Integration** — rectangular, midpoint, trapezoidal, Simpson's, and Gauss-Legendre quadrature
|
|
22
|
+
- **ODE solvers** — Euler, Runge-Kutta (orders 1–4), Taylor series, trapezoidal, Adams-Bashforth/Moulton, and predictor-corrector methods for first-order IVPs; shooting and finite-difference methods for second-order BVPs
|
|
23
|
+
- **Linear algebra** — `Vector` and `Matrix` with arithmetic operations, and `LinearSystem` with Gaussian elimination and Gauss-Jacobi/Seidel iterative solvers
|
|
24
|
+
- **2D FEM** — `FEM2D` for Poisson equations on rectangular domains with Dirichlet boundary conditions
|
|
25
|
+
|
|
26
|
+
## Quick start
|
|
27
|
+
|
|
28
|
+
```python
|
|
29
|
+
import math
|
|
30
|
+
from pysolverkit import Polynomial, Sin, RootFindingMethod, IntegrationMethod
|
|
31
|
+
|
|
32
|
+
# Root finding
|
|
33
|
+
f = Polynomial(-6, 14, -7, 1) # x³ − 7x² + 14x − 6
|
|
34
|
+
root = f.root(RootFindingMethod.BISECTION, a=0, b=1, TOLERANCE=1e-6)
|
|
35
|
+
|
|
36
|
+
# Integration
|
|
37
|
+
g = Sin(Polynomial(0, 1)) # sin(x)
|
|
38
|
+
area = g.integrate(0, math.pi, method=IntegrationMethod.SIMPSON, n=100)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Documentation
|
|
42
|
+
|
|
43
|
+
Full API reference, detailed usage examples, and a method selector reference are in **[`docs/README.md`](docs/README.md)**.
|
|
44
|
+
|
|
45
|
+
## Running tests
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
python3 -m unittest discover -s tests -v
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Contributing
|
|
52
|
+
|
|
53
|
+
Contributions are welcome! To get started:
|
|
54
|
+
|
|
55
|
+
1. Fork the repository and create a feature branch.
|
|
56
|
+
2. Add or update tests in `tests/tests.py` for any new behaviour.
|
|
57
|
+
3. Ensure all tests pass: `python3 -m unittest discover -s tests -v`
|
|
58
|
+
4. Open a pull request with a clear description of the change.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
pysolverkit/__init__.py,sha256=fZiBAbEBCbp-kbrMNB73YlE93mMbDuiBB9qznj2ikXc,1328
|
|
2
|
+
pysolverkit/enums.py,sha256=ae4RTGpNERbUw0VVEym7FEPFia0BlGpDZZjiZb-xxX4,2044
|
|
3
|
+
pysolverkit/util.py,sha256=5jxCo5G-2_ENa3VnOI0Bq3HyddSsB6_kUJy_qtYP9Rs,1729
|
|
4
|
+
pysolverkit/functions/__init__.py,sha256=hi2sPl3oFiTGFEx1BQdWwbx6eb1v0BzhgXja0heOipw,360
|
|
5
|
+
pysolverkit/functions/base.py,sha256=AOgTPdJZTXaGDA1MSQ6e28dQ7_HX7bXi7jMklb0WuxI,15860
|
|
6
|
+
pysolverkit/functions/elementary.py,sha256=PHX9C7OQX1EQGV5V1WaAAH9C9w6NQb2c1xa8kZgyth4,6071
|
|
7
|
+
pysolverkit/functions/fem2d.py,sha256=RxfvPOyQv_J3hiGNZRLiPhQhzoCI-Hwk6tjkjdvMdck,4249
|
|
8
|
+
pysolverkit/functions/multivariate.py,sha256=nH9whg7cZRPZuXFbMHNzkzN0oSz7Xk-F4ZknFTqXy4o,1855
|
|
9
|
+
pysolverkit/linalg/__init__.py,sha256=-2e6KQQWRaxc7CtumphqqLmK102Vs4U0DDfl59RfrIA,142
|
|
10
|
+
pysolverkit/linalg/linear_system.py,sha256=y3mazHSK6D1jpBDEeu6aGRzqRVsegmG1p9vlJsdQKVo,4566
|
|
11
|
+
pysolverkit/linalg/matrix.py,sha256=08Pz4V21n2_OL_CV9f_OLfpDQp82mtnN3glf4fJNA98,1364
|
|
12
|
+
pysolverkit/linalg/vector.py,sha256=zR4mry0x_HlKJdgH-qE1tFJW0xzDl-RsFTERZ9RoBsI,1618
|
|
13
|
+
pysolverkit/ode/__init__.py,sha256=O0gv_Oe5G1u74jv2BW9gVjVfYnDeNfRHhkcG8B-3E3w,373
|
|
14
|
+
pysolverkit/ode/base.py,sha256=TBaZT1tek2R7nvArJ7_jJX2Lu3eYHHtgtfFCa-MKYsY,226
|
|
15
|
+
pysolverkit/ode/first_order.py,sha256=PXJdAnAJKsMcWA1zw_mLOI5F7Hw1eFo25OHZBqijRw4,10636
|
|
16
|
+
pysolverkit/ode/second_order.py,sha256=4PWDDEJBbxBN34ngOxuukB1Xp6J8k9-X1iQKmLgyowQ,9667
|
|
17
|
+
pysolverkit-0.1.0.dist-info/METADATA,sha256=yT472H_ZlFsHV9ARfScAcwBhV1Zud3ed9UH3fKn3m3o,2727
|
|
18
|
+
pysolverkit-0.1.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
19
|
+
pysolverkit-0.1.0.dist-info/top_level.txt,sha256=h3E11b6PSy0ZqDgpm7HR6h66H4AR2TDHoUMGoCHxYsw,12
|
|
20
|
+
pysolverkit-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pysolverkit
|