题目
某公司饲养实验用的动物以供出售。已知这些动物的生长对饲料中的三种营养成分:蛋白质、矿物质、维生素特别敏感,每个动物每天至少需要蛋白质70g,矿物质3g,维生素10g,该公司能买到5种不同的饲料,每种饲料1kg的成本如表1所示,每种饲料1kg所含营养成分如表2所示,。求既能满足动物生长需要又使总成本最低的饲料配方。表1 五种饲料单位质量(1kg)成本饲料A1A2A3A4A5成本(元)0.2 0.70.40.30.5表2 五种饲料单位质量(1kg)所含营养成分 饲 料蛋白质(g)矿物质(g)维生素(g)A10.300.100.05A22.000.050.10A31.000.020.02A40.600.200.20A51.800.050.08
某公司饲养实验用的动物以供出售。已知这些动物的生长对饲料中的三种营养成分:蛋白质、矿物质、维生素特别敏感,每个动物每天至少需要蛋白质70g,矿物质3g,维生素10g,该公司能买到5种不同的饲料,每种饲料1kg的成本如表1所示,每种饲料1kg所含营养成分如表2所示,。
求既能满足动物生长需要又使总成本最低的饲料配方。
表1 五种饲料单位质量(1kg)成本
饲料
A1
A2
A3
A4
A5
成本(元)
0.2
0.7
0.4
0.3
0.5
表2 五种饲料单位质量(1kg)所含营养成分
饲 料
蛋白质(g)
矿物质(g)
维生素(g)
A1
0.30
0.10
0.05
A2
2.00
0.05
0.10
A3
1.00
0.02
0.02
A4
0.60
0.20
0.20
A5
1.80
0.05
0.08
题目解答
答案
答案:设
表示混合饲料中所含的第
种饲料的数量:

c=[0.2 0.7 0.4 0.3 0.5];
a=[-0.3 -2 -1 -0.6 -1.8;-0.1 -0.05 -0.02 -0.02 -0.05;-0.05 -0.1 -0.02 -0.2 -0.08];
b=[-70;-3;-10];
Aeq=[];
vlb=zeros(5,1);
vub=[];
beq=[];
[x,fval]=linprog(c,a,b,Aeq,beq,vlb,vub)
x =
0.0000
0.0000
0.9490
39.8774
25.0692
fval =
24.8774
是否重点:重点
难易程度:中
知识点所在章节:第二章第二节
非线性规划
解析
步骤 1:定义变量
设$x_i$表示混合饲料中所含的第$i$种饲料的数量($i=1,2,3,4,5$)。
步骤 2:建立目标函数
目标是使总成本最低,因此目标函数为:
$$
\min f = 0.2x_1 + 0.7x_2 + 0.4x_3 + 0.3x_4 + 0.5x_5
$$
步骤 3:建立约束条件
根据题目要求,每种营养成分的总需求量必须满足以下条件:
- 蛋白质:$0.3x_1 + 2.00x_2 + 1.00x_3 + 0.60x_4 + 1.80x_5 \geq 70$
- 矿物质:$0.10x_1 + 0.05x_2 + 0.02x_3 + 0.20x_4 + 0.05x_5 \geq 3$
- 维生素:$0.05x_1 + 0.10x_2 + 0.02x_3 + 0.20x_4 + 0.08x_5 \geq 10$
步骤 4:求解线性规划问题
使用MATLAB的linprog函数求解线性规划问题,代码如下:
```matlab
c = [0.2, 0.7, 0.4, 0.3, 0.5];
a = [-0.3, -2, -1, -0.6, -1.8; -0.1, -0.05, -0.02, -0.2, -0.05; -0.05, -0.1, -0.02, -0.2, -0.08];
b = [-70; -3; -10];
Aeq = [];
vlb = zeros(5, 1);
vub = [];
beq = [];
[x, fval] = linprog(c, a, b, Aeq, beq, vlb, vub);
```
步骤 5:输出结果
运行上述代码,得到结果:
```matlab
x =
0.0000
0.0000
0.9490
39.8774
25.0692
fval =
24.8774
```
设$x_i$表示混合饲料中所含的第$i$种饲料的数量($i=1,2,3,4,5$)。
步骤 2:建立目标函数
目标是使总成本最低,因此目标函数为:
$$
\min f = 0.2x_1 + 0.7x_2 + 0.4x_3 + 0.3x_4 + 0.5x_5
$$
步骤 3:建立约束条件
根据题目要求,每种营养成分的总需求量必须满足以下条件:
- 蛋白质:$0.3x_1 + 2.00x_2 + 1.00x_3 + 0.60x_4 + 1.80x_5 \geq 70$
- 矿物质:$0.10x_1 + 0.05x_2 + 0.02x_3 + 0.20x_4 + 0.05x_5 \geq 3$
- 维生素:$0.05x_1 + 0.10x_2 + 0.02x_3 + 0.20x_4 + 0.08x_5 \geq 10$
步骤 4:求解线性规划问题
使用MATLAB的linprog函数求解线性规划问题,代码如下:
```matlab
c = [0.2, 0.7, 0.4, 0.3, 0.5];
a = [-0.3, -2, -1, -0.6, -1.8; -0.1, -0.05, -0.02, -0.2, -0.05; -0.05, -0.1, -0.02, -0.2, -0.08];
b = [-70; -3; -10];
Aeq = [];
vlb = zeros(5, 1);
vub = [];
beq = [];
[x, fval] = linprog(c, a, b, Aeq, beq, vlb, vub);
```
步骤 5:输出结果
运行上述代码,得到结果:
```matlab
x =
0.0000
0.0000
0.9490
39.8774
25.0692
fval =
24.8774
```