优化故障排除和提示
下表介绍了典型的优化问题并提供了处理建议。
问题 | 建议 |
---|---|
| 除非问题是连续的且只有一个最小值,否则无法保证解就是全局最小值。要搜索全局最小值,请从多个起点开始优化(如果使用 |
目标函数 | 修改您的函数,以便在不可行点 |
最小化例程似乎进入无限循环,或者返回不是最小值的解(对于 | 可能是您的目标函数返回了 options = optimset('FunValCheck','on') 并调用将 |
求解器需要很长时间来求解。 | 好的起点对大多数优化问题都有帮助。可以根据您的问题特征,在某个区域尝试可能接近解的随机起点。 有时您可以使用演进方法来求解复杂的问题。首先,对具有较少自变量的问题进行求解。然后,通过适当的映射,将较简单问题的解用作更复杂问题的起点。有时候,您还可以在优化问题的初始阶段使用更简单的目标函数和更宽松的停止条件来加速求解过程。 |
不知道求解器在做什么。 | 要查看求解器在迭代过程中做了些什么,请执行以下操作: |
|
|
注意
优化求解器适用于实数值函数。复数值无法优化(除了复数值的实数值函数,例如范数)。