主要内容

优化的故障诊断和建议

这个表描述了典型优化问题并提供建议来处理它们。

问题

建议

找到的解决方案fminbndfminsearch不是一个全球最小值。全球最小最小的目标函数值在所有点在搜索空间。

没有保证的解决方案是一个全球最低,除非你的问题是连续的,只有一个最小值。寻找全球最低,启动优化从多个起始点(或间隔的情况fminbnd)。

评估目标函数是不可能的f (x)在一些点x。这样的点被称为不可行

修改你的函数返回一个很大的积极价值f (x)不可行点x

最小化程序似乎进入一个无限循环或返回一个解决方案,不是一个最小(或不是一个零的情况fzero)。

也许你的目标函数返回或复杂的值。解决期望唯一真正的目标函数值。任何其他值可能会导致意想不到的结果。确定是否存在或复杂的值,设置

选择= optimset (“FunValCheck”,“上”)

和调用优化函数选项作为输入参数。如果一个函数返回一个目标或复杂的价值,这个设置使解算器抛出一个错误。

解算器需要很长时间。

大多数优化问题受益于良好的起点。试随机起始点,该地区可能接近于一个解决方案,基于你的问题特征。

有时你可以使用一个进化方法解决复杂的问题。首先,解决问题与小数量的独立变量。使用解决万博 尤文图斯方案从这些简单的问题更复杂问题的起点通过使用一个适当的映射。同样,你有时可以加速解决方案通过使用简单的目标函数和不严格的停止条件的初始阶段的优化问题。

目前尚不清楚解算器是做什么。

看到它迭代解算器正在做什么:

fminsearch未能达成解决方案。

fminsearch可以为各种原因无法达成一个解决方案。

  • 可怜的扩展。如果你的问题没有充分集中和扩大,正确解算器能不能收敛。尽量让每个坐标给大致相同的对目标函数的影响,并确保每个坐标附近的一个可能的解决方案的规模不是太大或小。为此,编辑目标函数为每个坐标和添加或用合适的常数。

  • 不适当的停止标准。如果您所指定的值TolFunTolX太小了,fminsearch可以没有意识到当它已经达到了一个解决方案。如果该值太大,fminsearch可以停止远离一个解决方案。

  • 可怜的初始点。试着开始fminsearch从不同的初始点。

  • 迭代不足。如果迭代的求解耗尽或卡住,尝试重新启动fminsearch从它的最后一点达到一个更好的解决方案。有时fminsearch达到一个更好的解决方案时增加的价值MaxFunEvals麦克斯特从他们的默认的选项200 *长度(x0)

相关的话题