HCL_LeastSquaresFcnl_ creates least squares objective functions from operators and data
![]() | HCL_LeastSquaresFcnlGNProductDomain_d ( HCL_OpProductDomain_d * Operator, HCL_Vector_d * Data) Usual constructor. Pointers to the operator and data are required. |
![]() | Domain () const Domain space access |
![]() | 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 |
![]() | Write ( ostream & str ) const Write invokes the Write methods of the operator and data. |
HCL_LeastSquaresFcnl_ creates least squares objective functions from operators and data. The term "ProductDomain" indicates the operator (and therefore the functional) is defined on a product space. 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(an instance of HCL_OpProductDomain_d) and a data vector d. The interface to these objects constructed by the class is the least squares functional
its gradient
and the Gauss-Newton approximation to its Hessian operator
expressed as an HCL_Functional_d, an input class for optimization methods.
So 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 instead (an instance of HCL_OpProductDomain_d), use
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_d), or to any of the algorithms using first derivative information, such as BFGS (HCL_UMin_lbfgs_d) or nonlinear conjugate gradients (HCL_UMinNLCG_d), as well as those algorithms specifically recognizing the product space structure, such as HCL_UMinAlt_d and HCL_UMinSub_d.
virtual HCL_VectorSpace_d& Domain() const
virtual HCL_EvaluateFunctional_d* Evaluate( const HCL_Vector_d & x ) const
virtual ostream& Write( ostream & str ) const
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