0

我正在尝试以fmincon以下形式运行 MATLAB 优化工具箱的功能:

   fmincon(@fun,A,b,Aeq,beq,lb,ub)

我找不到解决方案,得到

没有找到可行的解决方案。

我通过使用以下代码测试边界来进行故障排除:

   f = zeros(size(x0));
   xnew = linprog(f,A,b,Aeq,beq,lb,ub)

这没有用,但是当我Aeq=sparse(Aeq);A=sparse(A);神奇地做到了!但稀疏不适用fmincon

除此之外,我收到此警告:

矩阵对于工作精度来说是奇异的

当我跑步时fmincon。我认为这个矩阵是fmincon函数中的矩阵。但我仍然认为问题出在我的矩阵上,因为上面的经验很少。这是我的矩阵的一个例子:

   A =0.3333   -0.3333     Aeq = 1     1
      0.6667    0.3333
      0.3333    0.6667

那么您知道问题是什么以及我该如何解决吗?

顺便说一句,我的线性问题只能用 'active-set' 算法在四种可能的算法中解决fmincon。但是这个没有严格遵守约束,有时会给出违反约束的结果。

任何建议将不胜感激。

4

0 回答 0