我使用的是Matlab的fmincon,但优化已停止,并显示以下消息
fmincon stopped because the size of the current step is less than
the selected value of the step size tolerance.
我将TolX设置为10 ^ -10,将Tolfun设置为10 ^ -10
我检查了日志,一阶最优性是198.因此,这绝对不是最佳解决方案。什么可能出错?
此外,我使用了不同版本的matlab R2013b和R2014a,对于相同的代码和数据,它们有不同的结果。在matlab R2013b中fmincon有问题吗?
答案 0 :(得分:1)
当您对Matlab的两个版本之间的差异有疑问时,或者在本例中有两个工具箱版本,首先要检查的是发行说明:for Matlab和for the Optimization toolbox。实际上,似乎是fmincon
was updated。你指定'Algorithm'
了吗?如果不是,差异可能是由于R2014a中的默认值不同。在这种情况下,您可以在R2013b中指定使用'interior-point'
算法并获得更好的结果。
您可以阅读fmincon
here使用的算法。