"Bruno Luong" <firstname.lastname@example.org> wrote in message <email@example.com>... > "Matt J" wrote in message <firstname.lastname@example.org>... > > "Toan Cao" <email@example.com> wrote in message > > > > If you know a global lower bound on F(x), say F_low, then the minimization problem is equivalent to > > > > min f(x)'.f(x) > > > > where > > > > f(x)=F(x)- f_low > > > > So, you could apply Levenberg-Marquardt and/or Gauss-Newton to the reformulated problem. > > I don't think it is a good suggestion. (1) It make the code difficult to handle since f_low needs to be known. It squares the conditioning of the original problem, and thus all kinds of numerical difficulties become more prominent. ================
I'm sure it would have its drawbacks, but it's the only suggestion I can think of that doesn't require coding your own more general Levenberg-Marquardt routine. Also, the OP wanted to do Gauss-Newton as well. Gauss-Newton is only applicable to least squares cost functions, AFAIK, so some kind of square root factorization would have to be constructed for that.
I don't see finding f_low as a big problem. Remember, I'm not saying it has to be a tight lower bound, so some kind of term-by-term lower bound analysis on the cost function should give it to you.
As for the conditioning issue, an alternative factorization might be
If f_low is strictly less than the global minimum, then F(x)-f_low>0, so the sqrt shouldn't introduce any non-differentiabilities.