#### Previous topic

scipy.optimize.newton_krylov

#### Next topic

scipy.optimize.excitingmixing

# scipy.optimize.anderson

`scipy.optimize.``anderson`(F, xin, iter=None, alpha=None, w0=0.01, M=5, verbose=False, maxiter=None, f_tol=None, f_rtol=None, x_tol=None, x_rtol=None, tol_norm=None, line_search='armijo', callback=None, **kw)

  Find a root of a function, using (extended) Anderson mixing.

  The Jacobian is formed by for a ‘best’ solution in the space spanned by last M vectors. As a result, only a MxM matrix inversions and MxN multiplications are required. [Ey]

  Parameters:

  F : function(x) -> f

  > Function whose root to find; should take and return an array-like object.

  x0 : array_like

  > Initial guess for the solution

  alpha : float, optional

  > Initial guess for the Jacobian is (-1/alpha).

  M : float, optional

  > Number of previous vectors to retain. Defaults to 5.

  w0 : float, optional

  > Regularization parameter for numerical stability. Compared to unity, good values of the order of 0.01.

  iter : int, optional

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

  verbose : 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.

  f_tol : float, optional

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

  f_rtol : float, optional

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

  x_tol : 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.

  x_rtol : float, optional

  > Relative minimum step size. 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’.

  callback : function, optional

  > Optional callback function. It is called on every iteration as `callback(x, f)` where x is the current solution and f the corresponding residual.

  Returns:

  sol : ndarray

  > An array (of similar array type as x0) containing the final solution.

  Raises:

  NoConvergence

  > When a solution was not found.

  References

  [Ey]

  (1, 2)
  22. Eyert, J. Comp. Phys., 124, 271 (1996).