数学建模1

更新时间:2023-03-17 19:38:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

食 谱 问 题 一、

某公司饲养实验用的动物以供出售。已知这些动物的生长对饲料中的三种营养成分:蛋白质、矿物质、维生素特别敏感,每个动物每天至少需要蛋白质70g,矿物质3g,维生素100mg,该公司能买到5种不同的饲料,每种饲料1kg的成本如表1所示,每种饲料1kg所含营养成分如表2所示,求既能满足动物生长需要又使总成本最低的饲料配方。

表1 五种饲料单位质量(1kg)成本 饲料 A1 A2 A3 A4 A5 成本(元) 0.2 0.7 0.4 0.3 0.5

表2 五种饲料单位质量(1kg)所含营养成分 饲 料 A1 A2 A3 A4 A5

蛋白质(g) 0.30 2.00 1.00 0.60 1.80 矿物质(g) 0.10 0.05 0.02 0.20 0.05 维生素(g) 0.05 0.10 0.02 0.20 0.08 设有n种食物,每种食物中含有m种营养成分.用aij表示一个单位的第j种食物中含有第i种营养的数量,用bi表示每人每天对第i种营养的最低需求量,cj表示第j种食品的单价,xj表示所用的第j种食品的数量,一方面满足m种营养成分的需要同时使事物的总成本最低. 一般的食谱问题的线性规划模型为 n min f ? c j x j

j ? 1

n?

??aijxj?bi,i?1,2,?,m s.t.?j?1 ?x?0,j?1,2,?,n?j

?

设xj (j=1.,2,3,4,5)表示混合饲料中所含的第种饲料的数量.由于提供的蛋白质总数必须满足每天的最低需求量70g,故应有

0.30x1?2.00x2?1.00x3?0.60x4?1.80x5?70

同理,考虑矿物质和维生素的需要,应有

0.05x1?0.10x2?0.02x3?0.20x4?0.08x5?100.10x1?0.05x2?0.02x3?0.20x4?0.05x5?3

混合饲料成本的目标函数f为

f?0.2x1?0.7x2?0.4x3?0.3x4?0.5x5

决策变量xj非负.

由于希望调配出来的混合饲料成本最低,所以该饲料配比问题是一个线性规划模型:

minf?0.2x1?0.7x2?0.4x3?0.3x4?0.5x5

0 . 30 x 2 . 00 x 1 . 00 x 0 . 60 x 1 . 80 x 70 ? 1 ? 2 ? 3 ? 4 ? 5 ? ? 0 . 10 x 0 . 05 x 2 ? 0 . 02 x 3 ? 0 . 20 x 4 ? 0 . 05 x 5 ? 3

1 ? s .t . ?

? 0 . 05 x 0 . 10 x 0 . 02 x 0 . 20 x 0 . 08 x 10

1 ? 2 ? 3 ? 4 ? 5 ?

?

, j 1, 2 , 5

? x j ? 0 ? ? ?

程序如下:

In[1]:=c={0.2,0.7,0.4,0.3,0.5} A={{0.30,2.00,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}}; b={70,3,10};

result=LinearProgramming[c,A,b] f=c.result

Out[4]:={0,0,0,39.7436,25.641} Out[5]:=24.7436

可以看出,该公司可分别购买第四种饲料39.74(kg)和第五种饲料25.64(kg)配成混合饲料;所耗成本24.74(元)为满足营养条件下的最低成本.

二、

某工厂生产四种不同型号的产品,而每件产品的生产要经过三个车间的加工,根据该厂现有设备和劳动力等生产条件,可以确定各车间每日的生产能力(我们把它们折合成有效工时数来表示)。各车间每日可利用的有效工时数、每个产品在各车间加工时所花费的工时数以及每件产品可获得的利润见下表。问每种产品每季度各应该生产多少,才能使这个工厂每季度生产总值最大?

车间 I II III 利润(元/件) 每件产品所需的加工工时 1# 2# 3# 4# 0.8 0.6 0.4 6 0.8 0.8 0.5 8 1.1 0.7 0.7 9 1.2 0.8 0.7 10 有效工时 (h/d) 160 120 100 以X1~ X4分别表示每季度生产1#2#3#4#四种种产品的单位数,于是它们需满足 : s.t.

X1~ X4.>0

目标函数为 Max f=6 X1+8 X2+9 X3+10 X4 程序如下:

%首先输入下列系数: f = [-6 -8 -9 -10]; A = [0.8 0.8 1.1 1.2 0.6 0.8 0.7 0.8 0.4 0.5 0.7 0.7]; b = [160;120;100]; Aeq=[]; beq=[];

vlb = zeros(4,1); vub=[];

%然后调用linprog函数:

[x,fval] = linprog(f,A,b,Aeq,beq,vlb,vub)

本文来源:https://www.bwwdw.com/article/ld8f.html

Top