您的当前位置:首页正文

用Mathematica解线性规划问题[1]

2020-03-14 来源:好走旅游网
研究问题:用Mathematica解线性规划问题

方法总结:用ConstrainedMax和ConstrainedMin这两个函数,具体

应用如下

例:现有农场1,2,和3块地,面积分别是200,400,600公顷,计划种植水稻,大豆和玉米三种作物,要求每种作物的最低收获量分别为3740kg,1300kg,7600kg,估计各块种植三种作物的单产如下所示

3种作物在不同耕地的单产量(单位:kg/hm2) 作物 水稻 大豆 玉米

那么应如何制定种植计划能使总产量最高?若作物的售价为水稻1.1元/kg,大豆1.95元/kg玉米0.95元/kg,那么应如何制定种植计划能使总收益最高?

解答:先来看第一问,总产量最高问题。不妨设最高时3块地种植水稻分别是x1,x2,x3,种植大豆分别y1,y2,y3 种植玉米分别是z1,z2,z3.

数学式

w=110.5*x1+96.5*x2+90*x3+60*y1+67.5*y2+52.5*y3+150*z1+135*z2+127.5*z3,

s.t.

1 110.5 60.0 150 2 96.5 67.5 135 3 90.0 52.5 127.5 x1 + y1+ z1 <= 200, x2 + y2 + z2 <= 400, x3 + y3 + z3 <= 600,

110.5*x1+96.5*x2+90*x3>=3740, 60*y1+67.5*y2+52.5*y3>=1300, 150*z1+135*z2+127.5*z3>=7600,

在Maximize的框中输入如下表达式:

ConstrainedMax[110.5*x1+96.5*x2+90*x3+60*y1+67.5*y2+ 52.5*y3+150*z1+135*z2+127.5*z3, {x1 + y1+ z1 <= 200, x2 + y2 + z2 <= 400, x3 + y3 + z3 <= 600,

110.5*x1+96.5*x2+90*x3>=3740, 60*y1+67.5*y2+52.5*y3>=1300, 150*z1+135*z2+127.5*z3>=7600, x1>=0,x2>=0,x3>=0, y1>=0,y2>=0,y3>=0, z1>=0,z2>=0,z3>=0}, {x1,x2,x3,y1,y2,y3,z1,z2,z3}] 输出为

{157863., {x1 -> 33.8462, x2 -> 0, x3 -> 0,

y1 -> 0, y2 -> 19.2593, y3 -> 0,

z1 -> 166.154, z2 -> 380.741, z3 -> 600.}}

于是当1地种植水稻33.8462,玉米166.154;2号地种植大豆19.2593,玉米380.741,;3地种植玉米600时,可达到最高产量,为157863kg.

再看第二问:在Maximize的框中输入如下表达式

ConstrainedMax[1.1*(110.5*x1+96.5*x2+90*x3)+1.95*(60*y1+67.5*y2+

52.5*y3)+0.95(150*z1+135*z2+127.5*z3), {x1 + y1+ z1 <= 200, x2 + y2 + z2 <= 400, x3 + y3 + z3 <= 600,

110.5*x1+96.5*x2+90*x3>=3740, 60*y1+67.5*y2+52.5*y3>=1300, 150*z1+135*z2+127.5*z3>=7600, x1>=0,x2>=0,x3>=0, y1>=0,y2>=0,y3>=0, z1>=0,z2>=0,z3>=0},

{x1,x2,x3,y1,y2,y3,z1,z2,z3}] 输出为:

{153116., {x1 -> 33.8462, x2 -> 0, x3 -> 0,

y1 -> 0, y2 -> 400., y3 -> 0,

z1 -> 166.154, z2 -> 0, z3 -> 600.}}

即当1地种植水稻33.8462,玉米166.154;2地种植大豆400,3地种植玉米600时有最大收益,为153116元。

问题总结:使我们摆脱了繁琐的人工计算,可以把更多的精力放在

问题的分析和模型的建立上。由此可见,使用成熟的数学软件Mathematica是我们解决工业,农业等行业遇到的各种线性规划问题的首选。

因篇幅问题不能全部显示,请点此查看更多更全内容