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.
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
BatchedArrays.jl
. Stay tuned for detailed
tutorials on how to use BatchedArrays.jl
with NonlinearSolve
& SimpleNonlinearSolve
solvers.chunksize
, standardtag
, etc. has been
deprecated in favor of directly specifying the autodiff type, like AutoForwardDiff
.Broyden
and Klement
have been renamed to SimpleBroyden
and SimpleKlement
to
avoid conflicts with NonlinearSolve.jl
's GeneralBroyden
and GeneralKlement
, which
will be renamed to Broyden
and Klement
in the future.LBroyden
has been renamed to SimpleLimitedMemoryBroyden
to make it consistent with
NonlinearSolve.jl
's LimitedMemoryBroyden
.