我试图在MATLAB中找到使用fmincon的最小值,我面临以下问题:
优化已完成,因为初始点处的渐变大小 小于函数容差的默认值。
我的目标函数的表面显示&#34;步骤&#34;,因此它在某些输入变量范围内具有相同的值(如果我是正确的话,渐变的大小为零):< / p>
当从初始点开始移动时,求解器没有看到目标函数值的任何变化,并完成优化:
Iteration Func-count f(x) Step-size optimality
0 3 581.542 0
Initial point is a local minimum.
Optimization completed because the size of the gradient at the initial point
is less than the default value of the function tolerance.
当目标函数保持其值不变(直到目标函数开始增加)时,是否有任何方法使求解器向前移动?
感谢您的帮助。
答案 0 :(得分:0)
我发布我的扩展评论作为答案,希望未来的答案者能够更容易找到解决方案:
使用非基于渐变的求解器可能会获得合理的结果,例如: ga
,如果对目标函数的评估成本不高。这些不依赖于梯度并且在非平滑函数上表现良好。在选择求解器算法之前,还应阅读以下指南:How to choose solver。
答案 1 :(得分:-1)
答案就在那里:
Initial point is a local minimum
。
您提供的初始点已经是本地最低值。因此算法找到最小值并坚持下去。 要查找其他本地最低或全局,请将初始点更改为远离本地最小值的其他值。 为了找到全局最小值,请使用全局优化技术。