MINPACK.jl
This is a extension for importing solvers from MINPACK into the SciML interface. Note that these solvers do not come by default, and thus one needs to install the package before using these solvers:
using Pkg
Pkg.add("MINPACK")
using MINPACK, NonlinearSolve
Solver API
NonlinearSolve.CMINPACK
— TypeCMINPACK(; method::Symbol = :auto, autodiff = missing)
Keyword Arguments
method
: the choice of method for the solver.autodiff
: Defaults tomissing
, which means we will default to lettingMINPACK
construct the jacobian iff.jac
is not provided. In other cases, we use it to generate a jacobian similar to other NonlinearSolve solvers.
Submethod Choice
The keyword argument method
can take on different value depending on which method of fsolve
you are calling. The standard choices of method
are:
:hybr
: Modified version of Powell's algorithm. Uses MINPACK routinehybrd1
:lm
: Levenberg-Marquardt. Uses MINPACK routinelmdif1
:lmdif
: Advanced Levenberg-Marquardt (more options available with; kwargs...
). See MINPACK routinelmdif
for more information:hybrd
: Advanced modified version of Powell's algorithm (more options available with; kwargs...
). See MINPACK routinehybrd
for more information
If a Jacobian is supplied as part of the NonlinearFunction
, then the following methods are allowed:
:hybr
: Advanced modified version of Powell's algorithm with user supplied Jacobian. Additional arguments are available via; kwargs...
. See MINPACK routinehybrj
for more information:lm
: Advanced Levenberg-Marquardt with user supplied Jacobian. Additional arguments are available via; kwargs...
. See MINPACK routinelmder
for more information
The default choice of :auto
selects :hybr
for NonlinearProblem and :lm
for NonlinearLeastSquaresProblem.
This algorithm is only available if MINPACK.jl
is installed.