From 05ba5da27205905e5adf8b59bfe1bf5327e7b0d6 Mon Sep 17 00:00:00 2001 From: Deniz Donmez Date: Mon, 15 Sep 2025 10:32:07 +0300 Subject: [PATCH] new module 'differentiation' --- README.md | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 755a6ea..e671d2a 100644 --- a/README.md +++ b/README.md @@ -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 ---