我试图解决这个非线性问题:
var c;
var n;
minimize error:
(
(6770924 - (n * c * exp(-c * 1)))^2 +
(3617627 - (n * c * exp(-c * 2)))^2 +
(2344172 - (n * c * exp(-c * 3)))^2
) / 3;
当我执行此代码时,我有0迭代的成功消息:
MINOS 5.51: optimal solution found.
0 iterations, objective 214759264300000
Non lin evals: obj = 3 grad = 2.
但变量' n'和' c'设置为' 0'。使用这个答案我从函数中得到一个坏值,因为没有从常量值中减去任何值。
如果我拿出' n'函数的变量我有一个正常的答案,' c'最小化我的功能。我描述的模型出了什么问题?
提前致谢。
答案 0 :(得分:2)
正如this post中已经提到的,MINOS对起点非常敏感。例如,使用1作为n
的起始值可以得到更好的目标值:
ampl: let n := 1;
ampl: solve;
MINOS 5.51: optimal solution found.
10 iterations, objective 24439722900
Nonlin evals: obj = 34, grad = 33.