5.13
所花时间:3小时
代码量:10
博客篇:1
MATLAB最优化工具箱的使用
(1)线性规划应用案例的求解
一、实验目的
通过一个农业生产计划优化安排的实例求解,培养学生解决实际线性规划问题的初步能力;熟悉线性规划的建模过程;掌握Matlab优化工具箱中线性规划函数的调用。
二、实验内容
某村计划在100公顷的土地上种植a、b、c三种农作物。可以提供的劳力、粪肥和化肥等资源的数量,种植每公顷农作物所需这三种资源的数量,以及能够获得的利润如表所示。
种植投入产出表
|
用 工 |
粪肥(吨) |
化肥(千克) |
利润(元) |
a |
450 |
35 |
350 |
1500 |
b |
600 |
25 |
400 |
1200 |
c |
900 |
30 |
300 |
1800 |
可提供资源 |
63000 |
3300 |
33000 |
|
其中一个劳动力干一天为1个工。现在要求为该村制定一个农作物的种植计划,确定每种农作物的种植面积,使得总利润最大。
三、算法步骤、代码、及结果
1. 算法步骤
设x1,x2,x3分别表示农作物A,B,C的种植面积
问题模型:
max z = 1500x1 + 1200x2 + 1800x3
s.t.
x1 + x2 + x3 = 100
450x1 + 600x2 + 900x3 <=63000
35x1 + 25x2 + 30x3 <=3300
350x1 + 400x2 + 300x3 <=33000
x1, x2, x3 >= 0
2. 代码
>> f=[1500 1200 1800]';
>> f=-f;
>> a=[450 600 900;35 25 30;350 400 300];
>> b=[63000 3300 33000]';
>> acq=[1 1 1];
>> aeq=[1 1 1];
>> beq=[100];
>> lb=zeros(3,1);
>>
>> [x,fval,exitflag,output,lamdba]=linprog(f,a,b,aeq,beq,lb)