Skip to content
This repository has been archived by the owner on Oct 31, 2024. It is now read-only.

Fast and simple nonlinear solvers for the SciML common interface. Newton, Broyden, Bisection, Falsi, and more rootfinders on a standard interface.

License

Notifications You must be signed in to change notification settings

SciML/SimpleNonlinearSolve.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimpleNonlinearSolve.jl

Warning

This package has been moved into a subpackage in NonlinearSolve (https://github.com/SciML/NonlinearSolve.jl/tree/master/lib/SimpleNonlinearSolve). Direct all questions and issues to NonlinearSolve.jl repository

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

  • Batched solvers have been removed in favor of BatchedArrays.jl. Stay tuned for detailed tutorials on how to use BatchedArrays.jl with NonlinearSolve & SimpleNonlinearSolve solvers.
  • The old style of specifying autodiff with 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.