MATLAB fmincon()不满足约束条件

时间:2012-10-09 05:26:04

标签: matlab optimization

我有一个非线性函数来最小化,它满足线性不等式约束和非负性约束。我使用fmincon0的下限设置为x >= 0

虽然线性不等式约束得到满足,但我得到的答案似乎并不满足h = fmincon(@(x)constraint_test(x,s,Cov), A,b, [],[], 0,[]) 。我不确定我想要最小化的函数是否是凸的(它可能有局部最小值),但我不认为这会影响任何东西。

这里是我正在使用的语法:

constraint_test

s,Cov,A,b是要最小化的函数,所有其他变量({{1}})都是已知的。

1 个答案:

答案 0 :(得分:0)

函数fmincon有一堆额外的输出

[X,FVAL,EXITFLAG,OUTPUT,LAMBDA] = fmincon(...)

其中EXITFLAGOUTPUT提供有关优化如何终止的各种信息。此外,您可以传递一个选项:

options = optimset('display', 'iter-detailed');

h = fmincon(..., options);

将准确显示fmincon在每次迭代时决定和执行的操作。

听起来它只是无法找到任何可行的解决方案,这在分析这些输出时肯定会出现。