永发信息网

matlab linprog 输出结果与预期的不一致

答案:2  悬赏:40  手机版
解决时间 2021-02-13 18:12
  • 提问者网友:酱爆肉
  • 2021-02-13 04:49
matlab 中linprog函数计算的结果明显有错怎么修改
f = [0;0;1;0];
A=[5,10,0,0];
b=[60];
Aeq=[1,-2,1,-1];
beq=[0];
lb = zeros(4,1);
[x,fval] = linprog(f,A,b,Aeq,beq,lb)
结果的中x=8.2676
0.0959
0.0000
8.0758
这时 fval明显是0,可结果却是
fval =

3.7299e-014
为什么?怎么修改啊!
最佳答案
  • 五星知识达人网友:蓝房子
  • 2021-02-13 05:18
第三个0.0000并不是0,而是3.7299e-014 ,因为matlab默认精确到4位小数 所以显示不出来 就约等于0.0000了
全部回答
  • 1楼网友:西风乍起
  • 2021-02-13 05:26
出错的原因,c的行数(2行)不对。linprog()函数要求c的行数为1行。 根据你的问题,我分析可能不适合使用linprog()函数来求解。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯