scipy.optimize.root(fun, x0, args=(), method='df-sane', tol=None, callback=None, options={'disp': False, 'fnorm': None, 'sigma_0': 1.0, 'eta_strategy': None, 'sigma_eps': 1e-10, 'M': 10, 'line_search': 'cruz', 'fatol': 1e-300, 'func': None, 'maxfev': 1000, 'ftol': 1e-08})

Solve nonlinear equation with the DF-SANE method

See also

For documentation for the rest of the parameters, see scipy.optimize.root


ftol : float, optional

Relative norm tolerance.

fatol : float, optional

Absolute norm tolerance. Algorithm terminates when ||func(x)|| < fatol + ftol ||func(x_0)||.

fnorm : callable, optional

Norm to use in the convergence check. If None, 2-norm is used.

maxfev : int, optional

Maximum number of function evaluations.

disp : bool, optional

Whether to print convergence process to stdout.

eta_strategy : callable, optional

Choice of the eta_k parameter, which gives slack for growth of ||F||**2. Called as eta_k = eta_strategy(k, x, F) with k the iteration number, x the current iterate and F the current residual. Should satisfy eta_k > 0 and sum(eta, k=0..inf) < inf. Default: ||F||**2 / (1 + k)**2.

sigma_eps : float, optional

The spectral coefficient is constrained to sigma_eps < sigma < 1/sigma_eps. Default: 1e-10

sigma_0 : float, optional

Initial spectral coefficient. Default: 1.0

M : int, optional

Number of iterates to include in the nonmonotonic line search. Default: 10

line_search : {‘cruz’, ‘cheng’}

Type of line search to employ. ‘cruz’ is the original one defined in [Martinez & Raydan. Math. Comp. 75, 1429 (2006)], ‘cheng’ is a modified search defined in [Cheng & Li. IMA J. Numer. Anal. 29, 814 (2009)]. Default: ‘cruz’


[R813]“Spectral residual method without gradient information for solving large-scale nonlinear systems of equations.” W. La Cruz, J.M. Martinez, M. Raydan. Math. Comp. 75, 1429 (2006).
  1. La Cruz, Opt. Meth. Software, 29, 24 (2014).
  1. Cheng, D.-H. Li. IMA J. Numer. Anal. 29, 814 (2009).