#### Previous topic

root(method=’excitingmixing’)

#### Next topic

root(method=’df-sane’)

# root(method=’krylov’)

`scipy.optimize.``root`(fun, x0, args=(), method='krylov', tol=None, callback=None, options={})

  See also

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

  Options:

  nit : int, optional

  > Number of iterations to make. If omitted (default), make as many as required to meet tolerances.

  disp : bool, optional

  > Print status to stdout on every iteration.

  maxiter : int, optional

  > Maximum number of iterations to make. If more are needed to meet convergence, NoConvergence is raised.

  ftol : float, optional

  > Relative tolerance for the residual. If omitted, not used.

  fatol : float, optional

  > Absolute tolerance (in max-norm) for the residual. If omitted, default is 6e-6.

  xtol : float, optional

  > Relative minimum step size. If omitted, not used.

  xatol : float, 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_norm : function(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_options : dict, optional

  > Options for the respective Jacobian approximation.

  > rdiff : float, optional

  >   Relative step size to use in numerical differentiation.

  > method : {‘lgmres’, ‘gmres’, ‘bicgstab’, ‘cgs’, ‘minres’} or function

  >   Krylov method to use to approximate the Jacobian. Can be a string, or a function implementing the same interface as the iterative solvers in `scipy.sparse.linalg`.

  >   The default is `scipy.sparse.linalg.lgmres`.

  > inner_M : LinearOperator or InverseJacobian

  >   Preconditioner for the inner Krylov iteration. Note that you can use also inverse Jacobians as (adaptive) preconditioners. For example,

  >       >>> jac = BroydenFirst()
  >       >>> kjac = KrylovJacobian(inner_M=jac.inverse).

  >   If the preconditioner has a method named ‘update’, it will be called as `update(x, f)` after each nonlinear step, with `x` giving the current point, and `f` the current function value.

  > inner_tol, inner_maxiter, ...

  >   Parameters to pass on to the “inner” Krylov solver. See `scipy.sparse.linalg.gmres` for details.

  > outer_k : int, optional

  >   Size of the subspace kept across LGMRES nonlinear iterations.

  >   See `scipy.sparse.linalg.lgmres` for details.