MATLAB fmincon()不满足约束

MATLAB fmincon()不满足约束,matlab,optimization,Matlab,Optimization,我有一个要最小化的非线性函数,它满足线性不等式约束和非负性约束。我使用fmincon将下限设置为0 我得到的答案似乎不满足x>=0,尽管满足了线性不等式约束。我不确定我试图最小化的函数是否是凸函数(它可能有局部极小值),但我认为这不会影响任何事情 仅供参考,以下是我使用的语法: h = fmincon(@(x)constraint_test(x,s,Cov), A,b, [],[], 0,[]) constraint\u test是要最小化的函数,所有其他变量(s,Cov,A,b)都是已知的

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

我得到的答案似乎不满足
x>=0
,尽管满足了线性不等式约束。我不确定我试图最小化的函数是否是凸函数(它可能有局部极小值),但我认为这不会影响任何事情

仅供参考,以下是我使用的语法:

h = fmincon(@(x)constraint_test(x,s,Cov), A,b, [],[], 0,[])

constraint\u test
是要最小化的函数,所有其他变量(
s,Cov,A,b
)都是已知的

功能
fmincon
有一系列附加输出

[X,FVAL,EXITFLAG,OUTPUT,LAMBDA] = fmincon(...)
其中
EXITFLAG
OUTPUT
提供了有关优化终止方式的各种信息。此外,您还可以传入一个选项:

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

h = fmincon(..., options);
这将准确地显示
fmincon
在每次迭代中决定和执行的内容


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

好的,我修改了代码,这样非负性约束被吸收到线性不等式约束中。我现在得到了一个可行的答案,但我确信这不是正确的答案。此外,我很好奇为什么在什么是
constraint\u test
s
Cov
A
b
?没有这些信息,你很难回答你的问题。我之所以投反对票,是因为一个简单的
帮助fmincon
文档fmincon
将为您提供大量关于如何自己分析此问题的信息。