Skip to main content
`Ctrl`+`K`
scipy.optimize.

# SR1

class scipy.optimize.SR1(min_denominator=1e-08, init_scale='auto')

  Symmetric-rank-1 Hessian update strategy.

  Parameters:
    min_denominator float

      This number, scaled by a normalization factor, defines the minimum denominator magnitude allowed in the update. When the condition is violated we skip the update. By default uses `1e-8`.

    init_scale{float, np.array, ‘auto’}, optional

      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.144-146.

  References

  [1] (1,2)

  Nocedal, Jorge, and Stephen J. Wright. “Numerical optimization” Second Edition (2006).

  Methods

  `dot`(p) | Compute the product of the internal matrix with the given vector.
  `get_matrix`() | Return the current internal matrix.
  `initialize`(n, approx_type) | Initialize internal matrix.
  `update`(delta_x, delta_grad) | Update internal matrix.