我有一个非线性函数来最小化,它满足线性不等式约束和非负性约束。我使用fmincon
将0
的下限设置为x >= 0
。
虽然线性不等式约束得到满足,但我得到的答案似乎并不满足h = fmincon(@(x)constraint_test(x,s,Cov), A,b, [],[], 0,[])
。我不确定我想要最小化的函数是否是凸的(它可能有局部最小值),但我不认为这会影响任何东西。
这里是我正在使用的语法:
constraint_test
s,Cov,A,b
是要最小化的函数,所有其他变量({{1}})都是已知的。
答案 0 :(得分:0)
函数fmincon
有一堆额外的输出
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA] = fmincon(...)
其中EXITFLAG
和OUTPUT
提供有关优化如何终止的各种信息。此外,您可以传递一个选项:
options = optimset('display', 'iter-detailed');
h = fmincon(..., options);
将准确显示fmincon
在每次迭代时决定和执行的操作。
听起来它只是无法找到任何可行的解决方案,这在分析这些输出时肯定会出现。