Optimization

A simple conjugate gradients solver is provided, but using IterativeSolvers.jl is highly recommended.

KirchMig.cgFunction.

cg(A, b [, x0]; maxiter=10, tol=1e-3, log=false) -> x [, history_x, history_r]

Solve the system Ax = b of a symmetric, positive definite linear map given by A using the conjugate gradients method.

Parameters

  • A

Linear map, which must have two methods defined: multiplication by AbstractVector and transpose multiplication by AbstractVector.

  • b : AbstractVector

RHS of equation Ax = b.

  • x0 : AbstractVector

Starting solution.

  • maxiter : Int, optional

Maximum number of iterations. Defaults to 10.

  • tol : Real, optional

Stopping criterion tolerance. Stops if the square root of the ration between the previous and current residuals is smaller than tol. Defaults to 1e-3.

  • log : Bool, optional

If true, returns also model and residuals at each iterations.