# SNLE

System of Non-Linear Equations (SNLE)
Solve system of non-linear equations
$\mathbf{F(x)=0}$
subjected to
$\mathbf{lb} \le \mathbf{x} \le \mathbf{ub}$
$\mathbf{A x} \le \mathbf{b}$
$\mathbf{\forall i=0,...,I: c_i(x) \le 0}$
$\mathbf{F: R^n \to R^n}$
$\mathbf{x \in R^n}$

in versions prior to 0.34 you should use "NLSP" instead of "SNLE"

SNLE solvers connected to OpenOpt

derivatives
Info
scipy_fsolve BSD None df It's a wrapper around MINPACK's hybrd and hybrj algorithms.
(since v 0.5112)
matlab_fsolve
proprietary None df Requires MATLAB. Can handle sparse jacobian, user-supplied or from FuncDesigner automatic differentiation; currently Python2 only, not ported on Python3 and PyPy yet
interalg BSD (since r. 0.36) all; finite box-bounds are required (they may be very huge) interval analysis is used instead Guaranteed solution no matter are involved functions convex, nonconvex, multiextremum, ill-conditioned etc (or rather quickly ensures that solution doesn't exist). See the example where interalg works and scipy.optimize fsolve fails. Can obtain ALL solutions of nonlinear equations system in the given box lb_i <= x_i <= ub_i (example).
converter to NLP BSD all that NLP solver can handle all that NLP solver can handle Example: r = p.solve('nlp:ralg'). It tries to minimize norm(F, 2) till required ftol and contol will be reached.
nssolve BSD lb, ub, Aeq, A, c, h (example) df, dc, dh This one is primarily for nonsmooth and noisy funcs, uses NSP ralg or amsg2p solvers (former for constrained problems, latter currently for unconstrained) and is intended to be enhanced from time to time, as well as the solvers. ns- can be interpreted as NonSmooth or NoiSy or Naum Shor (Ukrainian academician, my teacher, r-algorithm inventor).

The ones below work very unstable and can't use user-provided gradient, at least for scipy 0.6.0
scipy_anderson, scipy_anderson2, scipy_broyden1, scipy_broyden2, scipy_broyden3, scipy_broyden_generalized
Maybe they will be enhanced in future by someone. See here for details