{ } Raw JSON

bundles / scipy 1.17.1 / scipy / optimize / _hessian_update_strategy / BFGS

class

scipy.optimize._hessian_update_strategy:BFGS

source: /scipy/optimize/_hessian_update_strategy.py :285

Signature

class   BFGS ( exception_strategy = skip_update min_curvature = None init_scale = auto )

Members

Summary

Broyden-Fletcher-Goldfarb-Shanno (BFGS) Hessian update strategy.

Parameters

exception_strategy : {'skip_update', 'damp_update'}, optional

Define how to proceed when the curvature condition is violated. Set it to 'skip_update' to just skip the update. Or, alternatively, set it to 'damp_update' to interpolate between the actual BFGS result and the unmodified matrix. Both exceptions strategies are explained in [1], p.536-537.

min_curvature : float

This number, scaled by a normalization factor, defines the minimum curvature dot(delta_grad, delta_x) allowed to go unaffected by the exception strategy. By default is equal to 1e-8 when exception_strategy = 'skip_update' and equal to 0.2 when exception_strategy = 'damp_update'.

init_scale : {float, np.array, 'auto'}

This parameter can be used to initialize the Hessian or its inverse. When a float is given, the relevant array is initialized to np.eye(n) * init_scale, where n is the problem dimension. Alternatively, if a precisely (n, n) shaped, symmetric array is given, this array will be used. Otherwise an error is generated. Set it to 'auto' in order to use an automatic heuristic for choosing the initial scale. The heuristic is described in [1], p.143. The default is 'auto'.

Notes

The update is based on the description in [1], p.140.

Aliases

  • scipy.optimize.BFGS