Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Is nonlinear minimization (like Levenberg–Marquardt) directly available?

I need to minimize a function f of 3 variables (or more). f has a particular form because it is a sum of squares of nonlinear function of the 3 variables, for example:

double f(double x1, double x2, double x3)
{
 double acc = 0;
 for ( size_t i = 0; i < N; i++ ) {
   acc += pow(g(x1,x2,x3,i),2);
 }
 return acc;
}

std::vector< double > data;
double g(double x1, double x2, double x3, size_t i)
{
 return some nonlinear function of x1, x2, x3, data[i]
}

Is there any direct available algorithm for this kind of minimization?

For example I read here that the C++ class detail::BundleAdjusterBase uses Levenberg–Marquardt algorithm but it doesn't seem to me that this algorithm is directly available.