This is a pre-release version (latest).Go to latest (1.18.0)
{ } Raw JSON

bundles / scipy latest / scipy / optimize / _nonlin / BroydenFirst

class

scipy.optimize._nonlin:BroydenFirst

source: build-install/usr/lib/python3.14/site-packages/scipy/optimize/_nonlin.py:866

Signature

class BroydenFirst(alpha = None, reduction_method = restart, max_rank = None)

Members

Summary

Find a root of a function, using Broyden's first Jacobian approximation.

Extended Summary

This method is also known as "Broyden's good method".

Parameters

alpha : float, optional

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

reduction_method : str 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 is max_rank - 2.

max_rank : int, optional

Maximum rank for the Broyden matrix. Default is infinity (i.e., no rank reduction).

Notes

This algorithm implements the inverse Jacobian Quasi-Newton update

which corresponds to Broyden's first Jacobian update

Examples

The following functions define a system of nonlinear equations
def fun(x):
    return [x[0]  + 0.5 * (x[0] - x[1])**3 - 1.0,
            0.5 * (x[1] - x[0])**3 + x[1]]
✓
A solution can be obtained as follows.
from scipy import optimize
sol = optimize.broyden1(fun, [0, 0])
✓
sol
✗
array([0.841, 0.159])

See also

root

Interface to root finding algorithms for multivariate functions. See method='broyden1' in particular.

Aliases

  • scipy.optimize.BroydenFirst