Upload files to "/"

This commit is contained in:
2025-09-11 16:37:41 +03:00
parent 63a1889a41
commit 3e45c5400e
2 changed files with 80 additions and 0 deletions

View File

@@ -1,2 +1,64 @@
# numethods # numethods
A small, from-scratch, object-oriented Python package implementing classic numerical methods.
**No NumPy / SciPy solvers used** — algorithms are implemented transparently for learning and research.
## Features
### Linear system solvers
- **LU decomposition** (with partial pivoting): `LUDecomposition`
- **GaussJordan** elimination: `GaussJordan`
- **Jacobi** iterative method: `Jacobi`
- **GaussSeidel** iterative method: `GaussSeidel`
- **Cholesky** factorization (SPD): `Cholesky`
### Root-finding
- **Bisection**: `Bisection`
- **Fixed-Point Iteration**: `FixedPoint`
- **Secant**: `Secant`
- **Newtons method** (for roots): `NewtonRoot`
### Interpolation
- **Newton** (divided differences): `NewtonInterpolation`
- **Lagrange** polynomials: `LagrangeInterpolation`
### Orthogonalization, QR, and Least Squares (NEW)
- **Classical GramSchmidt**: `QRGramSchmidt`
- **Modified GramSchmidt**: `QRModifiedGramSchmidt`
- **Householder QR** (numerically stable): `QRHouseholder`
- **QR-based linear solver** (square systems): `QRSolver`
- **Least Squares** for overdetermined systems (via QR): `LeastSquaresSolver`
### Matrix & Vector utilities
- Minimal `Matrix` / `Vector` classes
- `@` operator for **matrix multiplication** (NEW)
- `*` for **scalar**matrix multiplication
- `.T` for transpose
- Forward / backward substitution helpers
---
## Install (editable)
```bash
pip install -e /numethods
```
or just add `/numethods` to `PYTHONPATH`.
## Examples
```bash
python /numethods/examples/demo.py
```
## Notes
- All algorithms are implemented without relying on external linear algebra solvers.
- Uses plain Python floats and list-of-lists for matrices/vectors.
- Tolerances use a relative criterion `|Δ| ≤ tol (1 + |value|)`.

18
pyproject.toml Normal file
View File

@@ -0,0 +1,18 @@
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "numethods"
version = "0.1.0"
description = "Some numerical methods implemented in Python"
authors = [
{ name = "Deniz Donmez", email = "denzdonmez@gmail.com" }
]
readme = "README.md"
requires-python = ">=3.8"
license = { text = "MIT" }
[tool.setuptools.packages.find]
where = ["."]
include = ["numethods"]