我试图以下列形式运行MATLAB优化工具箱的fmincon
函数:
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
不起作用!
除此之外,我收到了这个警告:
Matrix的工作精度是单数
当我运行fmincon
时。我认为这个矩阵是fmincon
函数中的矩阵。但我仍然认为问题与我的矩阵有关,因为上面的经验稀少。这是我的矩阵的一个例子:
A =0.3333 -0.3333 Aeq = 1 1
0.6667 0.3333
0.3333 0.6667
所以你知道问题是什么以及我如何解决它?
顺便说一下,我的线性问题只能通过{active}中的四个可能算法中的'active-set'算法来解决。fmincon
。但是这个并没有严格遵守约束条件,有时会给出约束违反的结果。
任何建议都将不胜感激。