用matlab解线性规划问题

某汽车公司现有资金60万元,打算用来购买A,B,C三种汽车。已知汽车A每辆为1万元,汽车B每辆为2万元,汽车C每辆为2.3万元。汽车A每辆每班需要一名司机,可完成2100吨-公里;汽车B每班需要两名司机,可完成3600吨-公里;汽车C每辆每班需要两名司机,可完成3780吨-公里。每辆汽车每天最多安排3班,每个司机每天最多安排一班。限制购买汽车不超过30辆,司机不超过145人。问:每种汽车应购买多少辆,可使每天的吨-公里最大?
要求列数学公式,再编写代码

设A,B,C三种汽车分别买x,y,z(正整数)辆,则:
汽车总数辆:x+y+z<=30,
总价格: x*1+y*2+z*2.3<=60,
司机人数: 1*x+2*y+2*z<=145
每天的吨-公里 3*(2100*x+3600*y+3780*z)
用matlab优化求解:
F=@(x)-3*(2100*x(1)+3600*x(2)+3780*x(3))
X0=[2;3;4];
A=[1 1 1;1 2 2.3;1 2 2];b=[30 60 145];lb=zeros(3,1);
[X,fval]=fmincon(F,X0,A,b,[],[],lb,[])
运行结果:
X =
0
30.0000
0.0000
fval = -3.2400e+05
则当全部资金60万元购买30辆B汽车,可实现每天最大吨-公里3.2400e+05=324000的目标。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-17
min z=cX
s.t. AX<b
用命令格式:
X = linprog(c,A,b)
%注意要用英文字符
manual linprog() 命令可以查看LP工具箱的相关组件
相似回答