5 优化模型实验
5.1 基础训练
1. 求函数极值
求一元函数
在区间[0, 9]内的最大值点、最大值,并绘制出函
数图形,编写 function 程序文件返回 2 个参数,依次返回最大值点、最大值。
提示:调用函数 fminbnd 计算。
参考函数如下:
function [x0,y0]=fun
fun=inline('-exp(x).*x.*sin(x)');
fplot(fun,[0,9]),hold on
[x0,y0]=fminbnd(fun,8,9);
plot(x0,y0,'o')
y0=-y0;
hold off
最大值点:x0 = 8.6937
最大值 y0 = 3.4625e+04
2. 求解下列线性规划模型
参考解答:将原模型改写为如下等价的模型:
xxexfxsin)(80209003010)(2501055.2100..1055.2),,(max321213321321321321xxxxxxxxxxxxtsxxxxxxf802090030101000)(2501055.2..1055.2),,(min321321321321321321xxxxxxxxxxxxtsxxxxxxf
参考程序:
c=-[2.5 5 10];
A=[-2.5 -5 -10;-2 -2 1]; b=[-50;0];
Aeq=[1 1 1]; beq=100;
lb=[10 0 20]; ub=[30 90 80];
[x,val,flag]=linprog(c,A,b,Aeq,beq,lb,ub)
运行结果:
x =
10.0000
23.3333
66.6667
val =
-808.3333
flag =
1
3. 某饲养场有 5 种饲料.已知各种饲料的单位价格和每百公斤饲料的蛋白质、
矿物质、维生素含量如表所示,又知该场每日至少需蛋白质 70 单位、矿物质
3 单位、维生素 10 单位.间如何混合调配这 5 种饲料.才能使总成本最低? 请
对本问题建立模型,并编程求解.
饲料种类
1
2
3
4
5
饲料的成分和单价
成分
蛋白质/单位 矿物质/单位 维生素/单位
0.30
2.20
1.00
0.60
1.80
0.10
0.05
0.02
0.20
0.05
0.05
0.10
0.02
0.20
0.08
饲料价格
2
7
4
3
5
解:设五种饲料的使用量分别为 x1,x2,x3,x4,x5。所用饲料的总成本为 f。
则该问题的线性规划模型为:
所编写的 M 文件为:
c=[2;7;4;3;5]
A=[-0.3 -2.2 -1.00 -0.06 -1.80;-0.10 -0.05 -0.02 -0.20 -0.05;-0.05 -0.10
-0.02 -0.20 -0.08]
12345123451234512345min274350.302.20.061.8700.10.050.020.200.0530.050.10.020.20.081001,2,3,4,5jfxxxxxxxxxxxxxxxxxxxxxj
b=[-70;-3;-10]
[x,feval,flag]=linprog(c,A,b,[],[],zeros(5,1),inf*ones(5,1))
解得的结果为:x1=0, x2=0, x3=0, x4=34.9, x5=37.7; min f=293.3599.
总上即知按如上使用才能使总成本最低为 293.4 元。
5.2 实验任务
一.实验任务
某工厂有三种原料 C1,C2,C3,其储量分别为 150 公斤,160 公斤和 180 公
斤。现在用来生产甲、乙两种产品。已知每生产 1 公斤产品甲需要原料 C1 3 公
斤,原料 C2 6 公斤,原料 C3 2 公斤。每生产 1 公斤产品乙需要原料 C1 5 公斤,
原料 C2 5 公斤,原料 C3 6 公斤。又已知生产 1 公斤产品甲利润为 17 元,生产 1
公斤产品乙利润为 15 元。请为该工厂制定生产计划,使得利润尽可能大。
二. 实验目的
认识线性规划模型。
熟悉 Matlab 求解线性规划模型的函数 linprog。
三. 实验过程
问在工厂现有资源条件下,应如何安排生产,才使工厂获得最大利润?
1.问题分析:
(1)条件数据:
设安排生产产品 A1 和 A2 分别为 公斤, 公斤。
根据问题实际情况,生产每种产品都需要 3 种原料( C1,C2,C3 ),而 3 种
原料都有限。
因此生产 A1 和 A2 要受到三种原料储量的限制。
(2)建模目标:
使工厂获得最大利润。
模型建立
可将该问题转化为如下的数学模型:
1x2x
求解程序:
c=-[17 15];
A=[3 5; 6 5; 2 6]; b=[150 160 180];
Aeq=[ ]; beq=[ ];
lb=[0;0]; ub=[inf;inf];
[x,val,flag]=linprog(c,A,b,Aeq,beq,lb,ub)
运行结果:
Optimization terminated.
x =
3.3333
28.0000
val =
-476.6667
flag =
1
四. 实验自评与改进方向
1. 线性规划模型不算太复杂,此次建模较为容易;
五. 实验体会,收获及建议
1. 认识到线性规划模型有广泛应用;
2. 线性规划建模过程需要把握优化问题的三个要素(目标,决策变量,约束条
件)。线性规划建模的另一个难点是如何用数学表达式描述三要素。
00180621605615053..1517),(max212121212121xxxxxxxxtsxxxxf