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:
scipy.sparse.linalg.cg — standard conjugate-gradient (CG).
scipy.sparse.linalg.lobpcg — Locally Optimal Block Preconditioned CG (LOBPCG).
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 |
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
See also