SciML / SimpleNonlinearSolve.jl

Fast and simple nonlinear solvers for the SciML common interface. Newton, Broyden, Bisection, Falsi, and more rootfinders on a standard interface.
https://docs.sciml.ai/NonlinearSolve/stable/
MIT License
68 stars 27 forks source link
bisection-method broyden-method differential-equations falsi-method falsi-position julia newton newton-raphson nonlinear-dynamics nonlinear-solvers nonlinear-systems rootfinding scientific-machine-learning sciml

SimpleNonlinearSolve.jl

Join the chat at https://julialang.zulipchat.com #sciml-bridged Global Docs

codecov Build Status Build status

ColPrac: Contributor's Guide on Collaborative Practices for Community Packages SciML Code Style

Fast implementations of root finding algorithms in Julia that satisfy the SciML common interface. SimpleNonlinearSolve.jl focuses on low-dependency implementations of very fast methods for very small and simple problems. For the full set of solvers, see NonlinearSolve.jl, of which SimpleNonlinearSolve.jl is just one solver set.

For information on using the package, see the stable documentation. Use the in-development documentation for the version of the documentation which contains the unreleased features.

High Level Examples

using SimpleNonlinearSolve, StaticArrays

f(u, p) = u .* u .- 2
u0 = @SVector[1.0, 1.0]
probN = NonlinearProblem{false}(f, u0)
solver = solve(probN, SimpleNewtonRaphson(), abstol = 1e-9)

## Bracketing Methods

f(u, p) = u .* u .- 2.0
u0 = (1.0, 2.0) # brackets
probB = IntervalNonlinearProblem(f, u0)
sol = solve(probB, ITP())

For more details on the bracketing methods, refer to the Tutorials and detailed APIs

Breaking Changes in v1.0.0