new module 'differentiation'
This commit is contained in:
27
README.md
27
README.md
@@ -1,8 +1,17 @@
|
|||||||
# numethods
|
# 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.
|
**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
|
## Features
|
||||||
|
|
||||||
### Linear system solvers
|
### Linear system solvers
|
||||||
@@ -25,7 +34,7 @@ A small, from-scratch, object-oriented Python package implementing classic numer
|
|||||||
- **Newton** (divided differences): `NewtonInterpolation`
|
- **Newton** (divided differences): `NewtonInterpolation`
|
||||||
- **Lagrange** polynomials: `LagrangeInterpolation`
|
- **Lagrange** polynomials: `LagrangeInterpolation`
|
||||||
|
|
||||||
### Orthogonalization, QR, and Least Squares (NEW)
|
### Orthogonalization, QR, and Least Squares
|
||||||
|
|
||||||
- **Classical Gram-Schmidt**: `QRGramSchmidt`
|
- **Classical Gram-Schmidt**: `QRGramSchmidt`
|
||||||
- **Modified Gram-Schmidt**: `QRModifiedGramSchmidt`
|
- **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`
|
- **QR-based linear solver** (square systems): `QRSolver`
|
||||||
- **Least Squares** for overdetermined systems (via QR): `LeastSquaresSolver`
|
- **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
|
### Matrix & Vector utilities
|
||||||
|
|
||||||
- Minimal `Matrix` / `Vector` classes
|
- Minimal `Matrix` / `Vector` classes
|
||||||
- `@` operator for **matrix multiplication** (NEW)
|
- `@` operator for **matrix multiplication**
|
||||||
- `*` for **scalar**-matrix multiplication
|
- `*` for **scalar**–matrix multiplication
|
||||||
- `.T` for transpose
|
- `.T` for transpose
|
||||||
- Forward / backward substitution helpers
|
- Forward / backward substitution helpers
|
||||||
|
- Norms, dot products, row/column access
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user