Error using lsqncommon (line 67)

39 次查看(过去 30 天)
DIMITRY
DIMITRY 2015-9-4
评论: DIMITRY 2015-9-4
Hi,
I have a case with an optim via lsqnonlin just trying to minimize a price but the lsqncommon is handing over my optim.
[x,resnorm,FVAL,Exitfalg,output] = lsqnonlin(G, I, lb, ub, options);
with G an function handled returning a price difference between two set.
I = [0.1 0.1 0.1 0.1 -1];
the returned error is as follow Error using lsqncommon (line 67) The Levenberg-Marquardt algorithm does not handle bound constraints and the trust-region-reflective algorithm requires at least as many equations as variables; aborting
lb = [0 0 0 0 -1];
ub = [1 1 1 1 1];
Would you provide a support?
thanks.
  6 个评论
DIMITRY
DIMITRY 2015-9-4
Hey sorry! please formalize what you clearly need to save time!
In G please!!! it is simply x = (b - c) as an handled function! the function G returned 4.1859 as explained!
thanks for your reply!
Star Strider
Star Strider 2015-9-4
I really need to see the full code for ‘G’.
What parameter are you optimising with respect to?

请先登录,再进行评论。

回答(1 个)

Matt J
Matt J 2015-9-4
编辑:Matt J 2015-9-4
You have 5 unknowns and therefore the trust region algorithm expects your G function to return at least 5 elements (representing 5 equations), so that the system is over-determined. Instead, though, your G() is returning a scalar.
It doesn't really make sense to be solving 1 equation in 5 unknowns, so you should probably get more equations from somewhere. Possibly, you've misinterpreted lsqnonlin and think that, like fmincon/fminunc,etc... lsqnonlin expects a scalarized objective function. It does not.
  1 个评论
DIMITRY
DIMITRY 2015-9-4
Great thanks Matt, that is it in fact my G function is a substract of x = (b - c) where b is the target function output and c is a 5 factor function to be minimized by the lsqnonlin with the I vector as entry. so in c I have flex the 5 factors with the x output of the minimization. I am still taking a deeper look at it in the meantime...

请先登录,再进行评论。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by