MATLAB做非线性约束优化时,怎么老显示这个啊?

Warning: Large-scale (trust region) method does not currently solve this type of problem,
switching to medium-scale (line search).这是什么意思,对结果有什么影响?请高手指点。由于初学,请解释详细点!谢谢。

你用的是fmincon函数吧?
FMINCON函数虽然是可以解决非线性约束的问题的,但是它要求目标函数和约束函数都必须是连续的,梯度也是连续的,而且该函数是根据你给的初始值来进行梯度步长收敛的,只能收索到局部最优解。
如果你给的初始值是个不可行解就很难收敛到最优解,最终出现的情况就是函数根本就不管你的上下限而给出的一个值。
解决办法:利用while,利用随机搜索的方法,找到一个可行的初始解。当然这样就有一个问题。即使搜索到解,也是局限于随机搜索到的初值的解。因此当你搜索不到好的解时,建议放弃使用这个函数。
利用FGOALATTAIN函数
这个函数相对较好,但也存在和FMINCON类似的问题
采用遗传算法
这里就有必要提一下,利用他人写的工具箱始终不灵活。MATLAB自带的和设菲尔德大学的遗传算法工具箱,有时并不能满足自己的需要,相关问题我已发过帖子。这里就不说了。
试验证明,利用设菲尔德大学的工具箱再自行改进下,可以很好的处理问题。
希望可以解决你的问题。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-01
如只有这个提示,对结果没有什么影响。
这个提示的意思是:
Large-scale (trust region) 法,不能解决这种类型的问题,
换用medium-scale (line search)法。

matlab默认设置为Large-scale (trust region) method,
如不适合,则自动切换到medium-scale (line search)。