HCL_LeastSquaresFcnl_d creates least squares objective functions from operators and data
HCL_LeastSquaresFcnl_d (HCL_Op_d * Operator, HCL_Vector_d * Data, double PenaltyParameter = 0.0, HCL_LinearOp_d * RegularizingOperator = NULL, HCL_Vector_d * ModelPrior = NULL) Usual constructor | |
virtual HCL_VectorSpace_d& | Domain () const Domain space access |
virtual HCL_EvaluateFunctional_d* | Evaluate ( const HCL_Vector_d & x ) const Evaluate creates an "evaluation" object, which knows how to compute the function value, gradient,and Hessian at the given x |
virtual ostream& | Write ( ostream & str ) const Write invokes the Write methods of the operator and data. |
HCL_LeastSquaresFcnl_d creates least squares objective functions from operators and data. This is a so called bridge class, i.e. it exists merely to make objects of some class behave like objects of another class. In this case, the input objects are a nonlinear operator A (an instance of HCL_Op_d) and a data vector d. The interface to these objects constructed by the class is the least squares functional its gradient and its Hessian operator expressed as an HCL_Functional_d, an input class for optimization methods.This class can be used to solve nonlinear least squares problems straight from the implementation of the underlying operator, without constructing by hand the least-squares function, as follows:
If you have a nonlinear operator N (an instance of HCL_Op_d), and a data vector d (an instance of HCL_Vector_d), construct the least-squares functional as follows:
HCL_LeastSquaresFcnl_d F(N, d);The HCL_Functional_d F so constructed is suitable for submission to an optimization algorithm using second derivative information, such as Steihaug-Toint (HCL_UMinTR), or to any of the algorithms using first derivative information, such as BFGS (HCL_UMin_lbfgs_d) or nonlinear conjugate gradients (HCL_UMinNLCG_d).
Many least-squares problems of practical interest are ill-posed, and must be regularized to yield stable solutions. This class offers a simple interface for defining a quadratic penalty term, to create a penalized least squares function from three optional parameters to the constructor:
- the penalty parameter (a scalar)
- the regularizing operator (an instance of HCL_LinearOp
- the model prior (an instance of HCL_Vector
These parameters appear in the order given here, and default to natural values. If none of them appear, no regularization takes place and the constructor builds the function previously described. Otherwise several special cases are implemented efficiently:
HCL_LeastSquaresFcnl_d F(L, d, eps);constructs a penalized problem with , , and prescribed penalty parameter ("ordinary Tihonov regularization"); HCL_LeastSquaresFcnl_d F(L, d, eps, R);constructs a penalized problem with , and prescribed penalty parameter and regularizing operator; HCL_LeastSquaresFcnl_d F(L, d, eps, NULL, xprior);constructs a penalized problem with and prescribed penalty parameter and model prior.
alphabetic index hierarchy of classes
this page has been generated automatically by doc++
(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de