root(method=’broyden1’)#
- scipy.optimize.root(fun, x0, args=(), method='hybr', jac=None, tol=None, callback=None, options=None)
See also
For documentation for the rest of the parameters, see
scipy.optimize.root
- Options:
- ——-
- nitint, optional
Number of iterations to make. If omitted (default), make as many as required to meet tolerances.
- dispbool, optional
Print status to stdout on every iteration.
- maxiterint, optional
Maximum number of iterations to make.
- ftolfloat, optional
Relative tolerance for the residual. If omitted, not used.
- fatolfloat, optional
Absolute tolerance (in max-norm) for the residual. If omitted, default is 6e-6.
- xtolfloat, optional
Relative minimum step size. If omitted, not used.
- xatolfloat, optional
Absolute minimum step size, as determined from the Jacobian approximation. If the step size is smaller than this, optimization is terminated as successful. If omitted, not used.
- tol_normfunction(vector) -> scalar, optional
Norm to use in convergence check. Default is the maximum norm.
- line_search{None, ‘armijo’ (default), ‘wolfe’}, optional
Which type of a line search to use to determine the step size in the direction given by the Jacobian approximation. Defaults to ‘armijo’.
- jac_optionsdict, optional
Options for the respective Jacobian approximation.
- alphafloat, optional
Initial guess for the Jacobian is (-1/alpha).
- reduction_methodstr or tuple, optional
Method used in ensuring that the rank of the Broyden matrix stays low. Can either be a string giving the name of the method, or a tuple of the form
(method, param1, param2, ...)
that gives the name of the method and values for additional parameters.Methods available:
restart
: drop all matrix columns. Has no extra parameters.simple
: drop oldest matrix column. Has no extra parameters.svd
: keep only the most significant SVD components. Takes an extra parameter,to_retain
, which determines the number of SVD components to retain when rank reduction is done. Default ismax_rank - 2
.
- max_rankint, optional
Maximum rank for the Broyden matrix. Default is infinity (i.e., no rank reduction).
Examples
>>> def func(x): ... return np.cos(x) + x[::-1] - [1, 2, 3, 4] ... >>> from scipy import optimize >>> res = optimize.root(func, [1, 1, 1, 1], method='broyden1', tol=1e-14) >>> x = res.x >>> x array([4.04674914, 3.91158389, 2.71791677, 1.61756251]) >>> np.cos(x) + x[::-1] array([1., 2., 3., 4.])