# perform (3) - Linux Manuals

## perform: Non-linear least-square method.

## NAME

QuantLib::NonLinearLeastSquare - Non-linear least-square method.

## SYNOPSIS

#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. *

**Array** & **perform** (**LeastSquareProblem** &lsProblem)

*Solve least square problem using numerix solver. *

void **setInitialValue** (const **Array** &initialValue)

**Array** & **results** ()

*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 ].PP
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 -

hi(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) ]

## Author

Generated automatically by Doxygen for QuantLib from the source code.