QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.5
Public Member Functions | List of all members
NonLinearLeastSquare Class Reference

Non-linear least-square method. More...

#include <ql/math/optimization/leastsquare.hpp>

Public Member Functions

 NonLinearLeastSquare (Constraint &c, Real accuracy=1e-4, Size maxiter=100)
 Default constructor.
 
 NonLinearLeastSquare (Constraint &c, Real accuracy, Size maxiter, boost::shared_ptr< OptimizationMethod > om)
 Default constructor.
 
 ~NonLinearLeastSquare ()
 Destructor.
 
Arrayperform (LeastSquareProblem &lsProblem)
 Solve least square problem using numerix solver.
 
void setInitialValue (const Array &initialValue)
 
Arrayresults ()
 return the results
 
Real residualNorm ()
 return the least square residual norm
 
Real lastValue ()
 return last function value
 
Integer exitFlag ()
 return exit flag
 
Integer iterationsNumber ()
 return the performed number of iterations
 

Detailed Description

Non-linear least-square method.

Using a given optimization algorithm (default is conjugate gradient),

\[ min \{ r(x) : x in R^n \} \]

where \( r(x) = |f(x)|^2 \) is the Euclidean norm of \( f(x) \) for some vector-valued function \( f \) from \( R^n \) to \( R^m \),

\[ f = (f_1, ..., f_m) \]

with \( f_i(x) = b_i - \phi(x,t_i) \) where \( b \) is the vector of target data and \( phi \) is a scalar function.

Assuming the differentiability of \( f \), the gradient of \( r \) is defined by

\[ grad r(x) = f'(x)^t.f(x) \]