new module 'differentiation'

This commit is contained in:
2025-09-15 10:32:07 +03:00
parent 9d807b3b84
commit 05ba5da272

View File

@@ -1,8 +1,17 @@
# numethods
A small, from-scratch, object-oriented Python package implementing classic numerical methods.
A lightweight, from-scratch, object-oriented Python package implementing classic numerical methods.
**No NumPy / SciPy solvers used**, algorithms are implemented transparently for learning and research.
## Why this might be useful
- Great for teaching/learning numerical methods step by step.
- Good reference for people writing their own solvers in C/Fortran/Julia.
- Lightweight, no dependencies.
- Consistent object-oriented API (.solve() etc).
---
## Features
### Linear system solvers
@@ -25,7 +34,7 @@ A small, from-scratch, object-oriented Python package implementing classic numer
- **Newton** (divided differences): `NewtonInterpolation`
- **Lagrange** polynomials: `LagrangeInterpolation`
### Orthogonalization, QR, and Least Squares (NEW)
### Orthogonalization, QR, and Least Squares
- **Classical Gram-Schmidt**: `QRGramSchmidt`
- **Modified Gram-Schmidt**: `QRModifiedGramSchmidt`
@@ -33,13 +42,23 @@ A small, from-scratch, object-oriented Python package implementing classic numer
- **QR-based linear solver** (square systems): `QRSolver`
- **Least Squares** for overdetermined systems (via QR): `LeastSquaresSolver`
### Numerical Differentiation
- **Forward difference**: `ForwardDiff`
- **Backward difference**: `BackwardDiff`
- **Central difference (2nd order)**: `CentralDiff`
- **Central difference (4th order)**: `CentralDiff4th`
- **Second derivative**: `SecondDerivative`
- **Richardson extrapolation**: `RichardsonExtrap`
### Matrix & Vector utilities
- Minimal `Matrix` / `Vector` classes
- `@` operator for **matrix multiplication** (NEW)
- `*` for **scalar**-matrix multiplication
- `@` operator for **matrix multiplication**
- `*` for **scalar**matrix multiplication
- `.T` for transpose
- Forward / backward substitution helpers
- Norms, dot products, row/column access
---