Repository navigation
Fix review findings, add missing methods, tests, CI and refresh tutorials - #1
Merged
Merged
Conversation
…ials
Correctness
- RK45: error estimate was normalized twice; step control now uses one
scaled error norm with exponent 1/5, h_min checks the unclipped step and
raises ConvergenceError
- ODESolver.solve no longer shrinks h; time grid t0 + k*h, exact t_end,
backward integration, systems of ODEs (vector states)
- Multistep methods: bootstrap stays inside [t0, t_end], cached f values,
variable-step weights for a shortened last step; AdamsMoulton is now a
real 2-step method (steps=1 gives the trapezoidal rule)
- Implicit methods raise ConvergenceError when Newton fails
- Bisection handles roots at the end points, relative tolerance, sign tests
- PowerIteration uses a fixed pseudo-random start vector; norm2 and
condition_number("2") use singular values
- RQI and inverse iteration handle exactly singular shifts
- QREigenvalues: Hessenberg + Francis double-shift QR (complex pairs);
shifted=False keeps the basic iteration
- SVD: one-sided Jacobi thin SVD, orthonormal U for rank-deficient A
- NonlinearFit: L2 objective, only improving steps accepted, augmented QR
step, input validation, converged flag, verbose implemented
- Scale-aware pivot/rank/symmetry tests; QRSolver for tall matrices;
LeastSquaresSolver/PolyFit reject m < n; classical Gram-Schmidt now
projects the original columns
- Matrix/Vector: ==, unary -, scalar /, A[i], iteration, shape of empty
matrices, ValueError on dimension mismatch
Performance
- Optional step recording (record_steps), permutation vector in LU,
inverse iteration factorizes once, faster matmul/matvec, one matvec per
power iteration, cached Cholesky L^T, barycentric Lagrange, PolyFit in a
scaled variable with Horner evaluation
New features
- SOR, LU.det/inverse, Brent, RegulaFalsi (Illinois), CubicSpline,
chebyshev_nodes, n-point and composite Gauss-Legendre, AdaptiveSimpson,
Romberg, DormandPrince, auto step size for finite differences,
plot helpers accept an axis
Project
- Test suite for every module (144 tests), demo smoke test, GitHub Actions
workflow, version 0.2.0, optional extras, README update
- Tutorials updated for the new behaviour and re-executed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AiW6XDeDLFt46PLZsaSF2h
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Correctness
scaled error norm with exponent 1/5, h_min checks the unclipped step and
raises ConvergenceError
backward integration, systems of ODEs (vector states)
variable-step weights for a shortened last step; AdamsMoulton is now a
real 2-step method (steps=1 gives the trapezoidal rule)
condition_number("2") use singular values
shifted=False keeps the basic iteration
step, input validation, converged flag, verbose implemented
LeastSquaresSolver/PolyFit reject m < n; classical Gram-Schmidt now
projects the original columns
matrices, ValueError on dimension mismatch
Performance
inverse iteration factorizes once, faster matmul/matvec, one matvec per
power iteration, cached Cholesky L^T, barycentric Lagrange, PolyFit in a
scaled variable with Horner evaluation
New features
chebyshev_nodes, n-point and composite Gauss-Legendre, AdaptiveSimpson,
Romberg, DormandPrince, auto step size for finite differences,
plot helpers accept an axis
Project
workflow, version 0.2.0, optional extras, README update
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01AiW6XDeDLFt46PLZsaSF2h