class LSConjugateGradient : public QuadraticOptima

Least Squared Conjugate Gradient

Inheritance:


public members:

LSConjugateGradient ( int n , LinearForward * p , Vector <double>* data, int it, double tol , int verb)
a constructor
int n
dimension of model space
LinearForward * p
pointer to the forward operator (matrix)
Vector <double>* data
pointer to the observed data vector
int it
maximum number of iterations in solving linear system
double tol
the maxmimum tolerable error
int verb
vebose or quiet
LSConjugateGradient (int n , LinearForward * p , Vector <double>* data, int it, double tol )
a constructor
Model <double> optimizer ( Model <double>& m0)
CGLS search starting from m0, and returns an optimum model
Model <long> optimizer ( Model <long>& m0)
CGLS search starting from m0, and returns an optimum model

Inherited from QuadraticOptima:

public members:

virtual int numIterations()
Vector <double> currentError()

Inherited from Optima:

protected members:

int iterMax
double tol
List <double>* residue
ObjectiveFunction * fp
int isVerbose
int isSuccess
List <double> appendResidue(double res)

Documentation

The conjugate gradient implemented here should be used for the solution of the normal equations $A^T.A.x = A^T.y$. It is coded such that the product $A^T.A$ is never performed, to avoid numerical instabilities and non sparse matrices. This procedure comes straight from the classical paper "Methods of conjugate gradients for solving linear systems:, 1952, NBS J. Research by Hesteness and Stiefel."


direct child classes: PreconditionedCGLS

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling