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 arraylike object.
 xin : 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 maxnorm) for the residual. If omitted, default is 6e6.
 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)  Eyert, J. Comp. Phys., 124, 271 (1996).