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
将为您提供大量关于如何自己分析此问题的信息。