scipy/conjugate scipy/conjugate#

Description#

scipy conjugate-gradient minimizer: sparse linear system solver.

This plugin solves the linear system \(A\chi = -\nabla J_0\) that arises in the Gauss-Newton inner loop of a variational inversion, using either:

The matrix \(A = \mathbf{I} + \mathbf{H}\mathbf{B}\mathbf{H}^\top\) is never formed explicitly; it is represented as a scipy.sparse.linalg.LinearOperator whose matrix-vector product is evaluated via a TL/forward call to the simulator.

YAML arguments#

The following arguments are used to configure the plugin. pyCIF will return an exception at the initialization if mandatory arguments are not specified, or if any argument does not fit accepted values or type:

Mandatory arguments#

method : str, mandatory

Type of solver.

Optional arguments#

maxiter : int, optional

Maximum number of iterations

maxfun : int, optional

Maximum number of function evaluation

epsg : float, optional

Condition on the norm of the gradient. Converges if ||g||_k < epsg . ||g||_0

Requirements#

The current plugin requires the present plugins to run properly:

Requirement name

Requirement type

Explicit definition

Any valid

Default name

Default version

simulator

Simulator

True

True

gausscost

std

YAML template#

Please find below a template for a YAML configuration:

 1minimizer:
 2  plugin:
 3    name: scipy
 4    version: conjugate
 5    type: minimizer
 6
 7  # Mandatory arguments
 8  method: XXXXX  # str
 9
10  # Optional arguments
11  maxiter: XXXXX  # int
12  maxfun: XXXXX  # int
13  epsg: XXXXX  # float