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.CMINPACKType
CMINPACK(; method::Symbol = :auto, autodiff = missing)

Keyword Arguments

  • method: the choice of method for the solver.
  • autodiff: Defaults to missing, which means we will default to letting MINPACK construct the jacobian if f.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 routine hybrd1
  • :lm: Levenberg-Marquardt. Uses MINPACK routine lmdif1
  • :lmdif: Advanced Levenberg-Marquardt (more options available with ; kwargs...). See MINPACK routine lmdif for more information
  • :hybrd: Advanced modified version of Powell's algorithm (more options available with ; kwargs...). See MINPACK routine hybrd 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 routine hybrj for more information
  • :lm: Advanced Levenberg-Marquardt with user supplied Jacobian. Additional arguments are available via ; kwargs.... See MINPACK routine lmder for more information

The default choice of :auto selects :hybr for NonlinearProblem and :lm for NonlinearLeastSquaresProblem.

Note

This algorithm is only available if MINPACK.jl is installed.