SciPy
This is an extension for importing solvers from SciPy 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:
import Pkg
Pkg.add("NonlinearSolveSciPy")
import NonlinearSolveSciPy as NLSPNote that using this package requires Python and SciPy to be available via PythonCall.jl.
Solver API
NonlinearSolveSciPy.SciPyLeastSquares — TypeSciPyLeastSquares(; method="trf", loss="linear")Wrapper over scipy.optimize.least_squares (via PythonCall) for solving NonlinearLeastSquaresProblems. The keyword arguments correspond to the method ("trf", "dogbox", "lm") and the robust loss function ("linear", "soft_l1", "huber", "cauchy", "arctan").
NonlinearSolveSciPy.SciPyRoot — TypeSciPyRoot(; method="hybr")Wrapper over scipy.optimize.root for solving NonlinearProblems. Available methods include "hybr" (default), "lm", "broyden1", "broyden2", "anderson", "diagbroyden", "linearmixing", "excitingmixing", "krylov", "df-sane" – any method accepted by SciPy.
NonlinearSolveSciPy.SciPyRootScalar — TypeSciPyRootScalar(; method="brentq")Wrapper over scipy.optimize.root_scalar for scalar IntervalNonlinearProblems (bracketing problems). The default method uses Brent's algorithm ("brentq"). Other valid options: "bisect", "brentq", "brenth", "ridder", "toms748", "secant", "newton" (secant/Newton do not require brackets).