文档视界 最新最全的文档下载
当前位置:文档视界 › 数学数模实验报告

数学数模实验报告

数学数模实验报告

————————————————————————————————作者:————————————————————————————————日期:

福建农林大学计算机与信息学院

(数学类课程)

实验报告

课程名称:数学模型

姓名:苏志东

系:数学

专业:数学与应用数学

年级:2014级

学号:

指导教师:姜永

职称:副教授

2016年6月12日

实验项目列表

序号实验项目名称成绩指导教师

1 数学规划模型建立及其软件求解姜永

2 数据插值与数据拟合应用姜永

3 统计回归模型及其软件求解姜永4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

福建农林大学计算机与信息学院数学类实验报告(一)

系: 数学 专业: 数学与应用数学 年级: 2014级 姓名: 学号: 3 实验课程: 数学模型 实验室号: 明南附203 实验设备号: 实验时间: 2016/6/6 指导教师签字: 成绩: 1.实验项目名称:数学规划模型建立及其软件求解 2.实验目的和要求:

了解数学规划的的基本理论和方法,并用于建立实际问题的数学规划模型;会用LINGO 软件解

数学规划问题并对结果加以分析应用。

3.实验使用的主要仪器设备和软件:联想启天M430E 电脑;LINGO12.0或以上版本。 4.实验的基本理论和方法:

一般地,数学规划模型可表述成如下形式:

)(in x f z M x

=

.,...,2,1,0)(s.t.m i x g i =≤

其中)(x f 表示目标函数,)

,...,2,1(0)(m i x g i =≤为约束条件。

LINGO 用于解决二次规划、线性规划以及非线性规划问题,同时可以求解线性或非线性方程(组)。LINGO 的最大特色在于通过高运行速度解决优化模型中的决策变量的整数取值问题。

线性优化求解程序通常使用单纯性算法,可以使用LINGO 的内点算法解决大规模规划问题。非线性规划可通过迭代求解一系列线性规划求解。

5.实验内容与步骤:

问题一:某公司将3种不同含硫量的液体原料(分别记为甲、乙、丙)混合生产两种产品(分别记为A ,B ),按照生产工艺的要求,原料甲、乙必须首先倒入混合池中混合,混合后的液体再分别与原料丙混合生产A ,B .已知原料甲,乙,丙的含硫量分别是3%,1%,2%,进货价格分别为6千元/ t ,16千元/ t ,10千元/t ,产品A ,B 的含硫量分别不能超过2.5%,1.5%,售价分别为9千元/t ,15千元/t ,根据市场信息,原料甲、乙、丙的供应量都不能超过500t ;产品A ,B 的最大市场需求量分别为100t ,200t .

(1) 应如何安排生产?

(2) 如果产品A 的最大市场需求量增长为600t ,应如何安排生产?

(3) 如果乙的进货价格下降为12千元/t ,应如何安排生产?分别、对(1)、(2)两种情况进行讨论.

解答:

(1)问题分析

根据题目要求,不难想到,这个问题的目标是使公司获利最大,要做的决策就是生产计划,即生产多少产品A 和产品B ,限制条件有:原料供应、市场需求、不同含硫量生产不同的产品。根据这些条件,利用lingo 软件,求出最终决策。 基本模型

决策变量:设用

(i=甲,乙,丙;j=A,B )表示用第i 种原料用于生产产品j ,将i=甲,乙,丙转换

为i=1,2,3,j=A,B 转换为j=1,2.

目标函数:设公司获利为z 千元,则有:

∑∑∑∑∑=====---+=2

1

321

221

131

231

110166159j j

j j j j i i i i x x x x x z

约束条件

原料供应:原料i(i=1,2,3)均不超过500t,则

∑=≤2

1

500

j ij

x

(i=1,2,3)

市场需求:产品A 、B 的需求量分别为100t 、200t ,则有:

???????≤≤∑∑==3

1

23

1

1200100i i i i x x

含硫量:根据甲乙混合比例,有:22

122111::x x x x =, 由生产不同产品含硫量百分比,有:

???

????

≤++++<≤++++<%5.1x x x x %2x %13%x 1%%5.2x x x x %2x %13%x 1.5%322212322212312111312111

终上所述,有:∑∑∑∑∑=====---+=2

1

32

1

22

1

13

1

23

1

1

10166159

max j j j j j j i i i i x x x x x

z

∑=≤2

1

500

j ij

x

(i=1,2,3)

∑∑==≤≤3

1

2

3

1

1

200

100i i i i x

x

%

5.1x x x x %2x %13%x 1%%

5.2x x x x %2x %13%x 1.5%32

221232

221231

211131

2111≤++++<≤++++<

对上述式子进行调整,并利用lingo 软件,可求解出最优解。

Lingo 程序为:

max=9*(x11+x21+x31)+15*(x12+x22+x32)-6*(x11+x12)-16*(x21+x22)-10*(x31+x32); 0.5*x11-1.5*x21-0.5*x31<=0; 1.5*x11-0.5*x21+0.5*x31>0;

1.5*x12-0.5*x22+0.5*x32<=0; 2*x12+x32>0;

x11*x22-x21*x12=0; x11+x12<=500; x21+x22<=500; x31+x32<=500;

x11+x21+x31<=100; x12+x22+x32<=200;

程序运行结果如下:

Objective value: 400.0000

Variable Value X11 0.000000 X21 0.000000 X31 0.000000 X12 0.000000 X22 100.0000 X32 100.0000

结果分析:根据结果显示,最优解为用100t 的乙原料和100t 的丙原料混合,生成200t 产品B ,所以目标函数最优解为40万元(400千元)。 (2)本小题的解法与(1)基本一致,只需要将约束条件

改变为

,相

应的代码由x11+x21+x31<=100改为x11+x21+x31<=600,并代入程序计算,便可求解出结果。 程序运行结果如下:

Objective value: 600.0000

Variable Value X11 300.0000 X21 0.000000 X31 300.0000 X12 0.000000 X22 0.000000 X32 0.000000

结果分析:根据结果显示,最优解为用300t 的甲原料和300t 的丙原料混合,生成600t 产品A 所以目标函数最优解为60万元(600千元)。

(3)将乙的进货价格下降为12千元/t ,只需修改一下目标函数值和约束条件即可。 针对问题(1)来说,只需将目标函数3

3222

1

2123111

1

1

9

1561610i i j j j i i j j j z x

x x x x ======+---∑∑∑∑∑ 改为

3

3

2

2

2

121231

1

1

1

1

91561210i i j j j i i j j j z x x x x x ======+---∑∑∑∑∑,对应的程序修改一下,即可得到新的求解结果。

程序运行结果如下:

Objective value: 900.0000 Variable Value Reduced Cost

X11 0.000000 0.000000

X21 0.000000 0.000000 X31 0.000000 0.000000 X12 50.00000 0.000000 X22 150.0000 0.000000 X32 0.000000 1.000000

结果分析:根据结果显示,最优解为用50t 的甲原料和150t 的乙原料混合,生成200t 产品B ,所以目标函数最优解为90万元(900千元)。

问题二:某造船厂需要决定下四个季度的帆船生产量。下四个季度的帆船需求量分别是40条、60条、75条和25条,这些需求必须按时满足。每个季度正常的生产能力是40条帆船,每条船的生产费用为40万元。如果加班生产,每条船的生产费用为45万元。每个季度末,每条船的库存为2万元。假定生产提前期为0,初始库存为10条船。如何安排生产可使总费用最小?(LINGO 程序要求利用集合语言编写)

解答: 建立模型

设四个季度轮船的需求量分别为

4,3,2,1),(=I I DEM ;

四个季度正常生产的产量分别为

4,3,2,1),(=I I RP ;

四个季度加班生产的产量分别为

4,3,2,1),(=I I OP ;

四个季度轮船的总量分别为

4,3,2,1),(=I I ALL

根据题意和约束条件可以建立以下模型: 目标函数:

)))()((*2)(*45)(*40(4

1

∑=-++I I DEM I ALL I OP I RP

约束条件由题意依次为

1、每季度正常生产能力是40条船,即

4,3,2,1=I ,应有40)(<=I RP ;

2、需求量限制:

,应有)()(I DEM I ALL >=;

模型求解

利用题目所给数据,将所建立的目标函数以及限制条件输入LINGO:

模型代码如下: sets:

SIJI/1..4/:DEM,RP,OP,ALL; endsets

4,3,2,1=I

data:

DEM=40 60 75 25;

enddata

ALL(1)=10+RP(1)+OP(1);

ALL(2)=ALL(1)-DEM(1)+RP(2)+OP(2);

ALL(3)=ALL(2)-DEM(2)+RP(3)+OP(3);

ALL(4)=ALL(3)-DEM(3)+RP(4)+OP(4);

min=@sum(SIJI(I):40*RP(I)+45*OP(I)+2*(ALL(I)-DEM(I)));

@for(SIJI(I):RP(I)<=40);

@for(SIJI(I): ALL(I)>=DEM(I));

end

点击运行按钮得试验结果如下:

Global optimal solution found.

Objective value: 7845.000

Variable Value Reduced Cost

DEM( 1) 40.00000 0.000000

DEM( 2) 60.00000 0.000000

DEM( 3) 75.00000 0.000000

DEM( 4) 25.00000 0.000000

RP( 1) 40.00000 0.000000

RP( 2) 40.00000 0.000000

RP( 3) 40.00000 0.000000

RP( 4) 25.00000 0.000000

OP( 1) 0.000000 2.000000

OP( 2) 10.00000 0.000000

OP( 3) 35.00000 0.000000

OP( 4) 0.000000 5.000000

ALL( 1) 50.00000 0.000000

ALL( 2) 60.00000 0.000000

ALL( 3) 75.00000 0.000000

ALL( 4) 25.00000 0.000000

结果分析:

,

10

)2(

)3(

,0

,

35

)4(

=OP

OP

OP。

OP

RP;0

=

=

)1(=

)3(

,

40

RP

,

25

)4(

)2(

40

=RP

RP

=

=

40

)1(=

,

所以须这样安排生产:第一季度需生产40条,无需加班;第二季度需生产出50条,其中有10条是加班生产的;第三季度需生产出75条,其中35条是加班生产的;第四季度需生产出25条,无需加班;最小总费用为7845万元。

问题三:某人事部欲安排四个人到四个不同的岗位工作,每个岗位一个人,经考核四人在不同岗位的成绩如下表,应如何安排他们的工作才能使总成绩最好?(LINGO程序要求利用集合语言编写)

工作

A B C D

人员

甲85 91 70 90

乙95 88 78 93

丙82 84 79 90

丁86 89 81 88

解答:记甲乙丙丁分别为人员i=1,2,3,4;记工作A、B、C、D分别为j=1,2,3,4.记人员i的第j种工作的最好成绩为。

基本模型

min z =

约束条件:

,i=1,2,3,4

,j=1,2,3,4

对上述式子进行调整,并利用lingo软件,可求解出最优解。

Lingo程序为:

model:

sets:

person/1..4/;

position/1..4/;

link(person,position):c,x;

endsets

data:

c=85,91,70,90,

95,88,78,93,

82,84,79,90,

86,89,81,88;

enddata

max=@sum(link:c*x);

@for(person(i):@sum(position(j):x(i,j))<=1);

@for(position(i):@sum(person(j):x(j,i))=1);

@for(link:@bin(x));

end

程序运行结果如下:

Global optimal solution found.

Objective value: 357.0000

Objective bound: 357.0000

Infeasibilities: 0.000000

Extended solver steps: 0

Total solver iterations: 0

相关文档