题目
1.题目思路
matlab求解线性规划标准形式:
2.实验说明及源代码
>> c=[2,3,-5];
>> aeq=[1,1,1];beq=7;
>> a=[-2,5,-1;1,3,1];b=[-10;12];
>> lb=[0;0;0];ub=[inf;inf;inf];
>> [x,fval]=linprog(-c,a,b,aeq,beq,lb,ub);
%-c是因为要求最大值,而matlab标准形式求解是最小值,需先求目标函数相反数的最小值,再fval=-fval解出。
3.实验结果
Optimal solution found.
>> fval=-fval
fval =
14.5714
>> x
x =
6.4286
0.5714
0
其他
exitflag:表示的就是什么时候退出,因为matlab很多时候是迭代求解,迭代过程中会出现各种各样的情况,比如迭代成功后退出就是exitflag=1。
[x,fval,exitflag,output,lambda]=linprog(-c,a,b,aeq,beq,lb,ub);
Optimal solution found.
x
x =
6.4286
0.5714
0
-fval
ans =
14.5714
exitflag
exitflag =
1
output
output =
包含以下字段的 struct:
iterations: 2
constrviolation: 8.8818e-16
message: 'Optimal solution found.'
algorithm: 'dual-simplex'
firstorderopt: 8.8818e-16
lambda
lambda =
包含以下字段的 struct:
lower: [3×1 double]
upper: [3×1 double]
eqlin: 2.2857
ineqlin: [2×1 double]