本文主要是介绍川川数模训练营第一天打卡-线性规划,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题:求解该线性规划对应的最大值z以及x1,x2,x3.
一.代码过程
clc
clear all
c=[2,3,-5];%目标函数的系数确定
a=[-2,5,-1;1,3,1];%约束条件左边约束
b=[-10;12];%约束条件右边约束
aeq=[1,1,1];%等式左边约束(即等式左边的系数)
beq=7;%等式右边约束(即等式右边的数)
Ib=[0;0;0];%下限为0
ub=[inf;inf;inf];%没有上限,因为只限定三个x>=0
[x,fval]=linprog(-c,a,b,aeq,beq,Ib,ub);%(这里就是求最大值时给c带负号)
%注意:求解max=cx在matlab中就是min=-cx(记住有一个负号!)
x%获取对应的x1,x2,x3
best=c*x%计算最优值
执行结果如图
二.注意事项总结
1.linprog函数求得本身为最小值,输入c的时候还是正常输入,求最小值时正常用,求最大值时要在后面带负号
2.若约束条件中为>=则全部取相反数,<=不变
这篇关于川川数模训练营第一天打卡-线性规划的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!