【问题标题】:MATLAB fmincon() not satisfying constraints [closed]MATLAB fmincon()不满足约束[关闭]
【发布时间】:2012-10-09 15:50:36
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 好的,我更改了代码,以便将非负性约束吸收到线性不等式约束中。我现在得到一个可行的答案,但我确信这不是正确的答案。另外,我很想知道为什么它以前不起作用
  • 什么是constraint_testsCovAb?如果没有这些信息,将很难回答您的问题。
  • -1:看我的回答。我不赞成,因为一个简单的help fmincondoc fmincon 会为您提供有关如何自己分析此问题的大量信息。

标签: matlab optimization


【解决方案1】:

函数fmincon 有一堆额外的输出

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

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

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

h = fmincon(..., options);

它将准确地向您展示fmincon 在每次迭代中的决定和执行情况。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多