我正在尝试以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
。但是这个没有严格遵守约束,有时会给出违反约束的结果。
任何建议将不胜感激。