1数学数模实验报告.docx
- 文档编号:14265678
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:36
- 大小:229.63KB
1数学数模实验报告.docx
《1数学数模实验报告.docx》由会员分享,可在线阅读,更多相关《1数学数模实验报告.docx(36页珍藏版)》请在冰点文库上搜索。
1数学数模实验报告
1数学数模实验报告
福建农林大学计算机与信息学院
(数学类课程)
实验报告
课程名称:
数学模型
姓名:
苏志东
系:
数学
专业:
数学与应用数学
年级:
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.实验目的和要求:
了解数学规划的的基本理论和方法,并用于建立实际问题的数学规划模型;会用
软件解数学规划问题并对结果加以分析应用。
3.实验使用的主要仪器设备和软件:
联想启天M430E电脑;LINGO12.0或以上版本。
4.实验的基本理论和方法:
一般地,数学规划模型可表述成如下形式:
其中
表示目标函数,
为约束条件。
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千元,则有:
约束条件
原料供应:
原料i(i=1,2,3)均不超过500t,则
(i=1,2,3)
市场需求:
产品A、B的需求量分别为100t、200t,则有:
含硫量:
根据甲乙混合比例,有:
,由生产不同产品含硫量百分比,有:
终上所述,有:
(i=1,2,3)
对上述式子进行调整,并利用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;
程序运行结果如下:
Objectivevalue:
400.0000
VariableValue
X110.000000
X210.000000
X310.000000
X120.000000
X22100.0000
X32100.0000
结果分析:
根据结果显示,最优解为用100t的乙原料和100t的丙原料混合,生成200t产品B,所以目标函数最优解为40万元(400千元)。
(2)本小题的解法与
(1)基本一致,只需要将约束条件
改变为
,相应的代码由x11+x21+x31<=100改为x11+x21+x31<=600,并代入程序计算,便可求解出结果。
程序运行结果如下:
Objectivevalue:
600.0000
VariableValue
X11300.0000
X210.000000
X31300.0000
X120.000000
X220.000000
X320.000000
结果分析:
根据结果显示,最优解为用300t的甲原料和300t的丙原料混合,生成600t产品A所以目标函数最优解为60万元(600千元)。
(3)将乙的进货价格下降为12千元/t,只需修改一下目标函数值和约束条件即可。
针对问题
(1)来说,只需将目标函数
改为
,对应的程序修改一下,即可得到新的求解结果。
程序运行结果如下:
Objectivevalue:
900.0000
VariableValueReducedCost
X110.0000000.000000
X210.0000000.000000
X310.0000000.000000
X1250.000000.000000
X22150.00000.000000
X320.0000001.000000
结果分析:
根据结果显示,最优解为用50t的甲原料和150t的乙原料混合,生成200t产品B,所以目标函数最优解为90万元(900千元)。
问题二:
某造船厂需要决定下四个季度的帆船生产量。
下四个季度的帆船需求量分别是40条、60条、75条和25条,这些需求必须按时满足。
每个季度正常的生产能力是40条帆船,每条船的生产费用为40万元。
如果加班生产,每条船的生产费用为45万元。
每个季度末,每条船的库存为2万元。
假定生产提前期为0,初始库存为10条船。
如何安排生产可使总费用最小?
(LINGO程序要求利用集合语言编写)
解答:
建立模型
设四个季度轮船的需求量分别为
;
四个季度正常生产的产量分别为
;
四个季度加班生产的产量分别为
;
四个季度轮船的总量分别为
根据题意和约束条件可以建立以下模型:
目标函数:
约束条件由题意依次为
1、每季度正常生产能力是40条船,即
应有
;
2、需求量限制:
应有
;
模型求解
利用题目所给数据,将所建立的目标函数以及限制条件输入LINGO:
模型代码如下:
sets:
SIJI/1..4/:
DEM,RP,OP,ALL;
endsets
data:
DEM=40607525;
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
点击运行按钮得试验结果如下:
Globaloptimalsolutionfound.
Objectivevalue:
7845.000
VariableValueReducedCost
DEM
(1)40.000000.000000
DEM
(2)60.000000.000000
DEM(3)75.000000.000000
DEM(4)25.000000.000000
RP
(1)40.000000.000000
RP
(2)40.000000.000000
RP(3)40.000000.000000
RP(4)25.000000.000000
OP
(1)0.0000002.000000
OP
(2)10.000000.000000
OP(3)35.000000.000000
OP(4)0.0000005.000000
ALL
(1)50.000000.000000
ALL
(2)60.000000.000000
ALL(3)75.000000.000000
ALL(4)25.000000.000000
结果分析:
;
。
所以须这样安排生产:
第一季度需生产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种工作的最好成绩为
。
基本模型
minz=
约束条件:
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
程序运行结果如下:
Globaloptimalsolutionfound.
Objectivevalue:
357.0000
Objectivebound:
357.0000
Infeasibilities:
0.000000
Extendedsolversteps:
0
Totalsolveriterations:
0
ModelClass:
PILP
Totalvariables:
16
Nonlinearvariables:
0
Integervariables:
16
Totalconstraints:
9
Nonlinearconstraints:
0
Totalnonzeros:
48
Nonlinearnonzeros:
0
VariableValueReducedCost
C(1,1)85.000000.000000
C(1,2)91.000000.000000
C(1,3)70.000000.000000
C(1,4)90.000000.000000
C(2,1)95.000000.000000
C(2,2)88.000000.000000
C(2,3)78.000000.000000
C(2,4)93.000000.000000
C(3,1)82.000000.000000
C(3,2)84.000000.000000
C(3,3)79.000000.000000
C(3,4)90.000000.000000
C(4,1)86.000000.000000
C(4,2)89.000000.000000
C(4,3)81.000000.000000
C(4,4)88.000000.000000
X(1,1)0.000000-85.00000
X(1,2)1.000000-91.00000
X(1,3)0.000000-70.00000
X(1,4)0.000000-90.00000
X(2,1)1.000000-95.00000
X(2,2)0.000000-88.00000
X(2,3)0.000000-78.00000
X(2,4)0.000000-93.00000
X(3,1)0.000000-82.00000
X(3,2)0.000000-84.00000
X(3,3)0.000000-79.00000
X(3,4)1.000000-90.00000
X(4,1)0.000000-86.00000
X(4,2)0.000000-89.00000
X(4,3)1.000000-81.00000
X(4,4)0.000000-88.00000
RowSlackorSurplusDualPrice
1357.00001.000000
20.0000000.000000
30.0000000.000000
40.0000000.000000
50.0000000.000000
60.0000000.000000
70.0000000.000000
80.0000000.000000
90.0000000.000000
结果分析:
让甲到B岗位工作,乙到A岗位工作,丙到D岗位工作,丁到C岗位工作可以使总成绩最好,为357。
6.实验心得(质疑、建议):
福建农林大学计算机与信息学院数学类实验报告
(二)
系:
数学专业:
数学与应用数学年级:
2014级
姓名:
学号:
3实验课程:
数学模型
实验室号:
明南附203实验设备号:
实验时间:
2016/6/6
指导教师签字:
成绩:
1.实验项目名称:
数据插值与数据拟合应用
2.实验目的和要求:
理解数据插值与数据拟合的理论和方法,会使用
进行数据插值与数据拟合,能够使用
解决一些关于数据插值与数据拟合的应用问题。
3.实验使用的主要仪器设备和软件:
联想启天M430E电脑;MATLAB2010或以上版本。
4.实验的基本理论和方法:
4.1插值与拟合
在实际工程应用和科学实际和科学实践中,经常需要寻求两个(或多个)变量间的关系,而实际却只能通过观测得到一些离散的数据点。
针对分散的数据点,运用某种数学方法确定两个(或多个)变量间的函数关系,这个过程称为数据插值或数据拟合。
假设x为自变量,y为因变量,函数关系为
(待定)。
现给定一组点
,然后构造一个简单函数
作为函数
的近似表达式,即
(1)
对式
(1),若满足
(2)
这类问题称为插值问题。
式
(2)要求所求的函数曲线通过已知的数据点,若不要求
通过所有数据点
,而是要求曲线在某种准则下整体与所给的数据点尽量接近,如按最小二乘法要求
达到最小,而得到
,此类问题称为拟合问题。
4.2最小二乘法
给定平面上一组点(x
y
)(i=1,2,3,...,n),作曲线拟合有多种方法,其中最小二乘法是常用的一种。
最小二乘法的原理是:
求f(x),使
达到最小。
拟合时选取一定的拟合函数形式。
5.实验内容与步骤:
问题一(插插值问题):
有一组数据如下,试用不同的插值方法分别计算
,
所对应的近似值。
x
1
2
3
4
5
6
y
1.0000
1.2599
1.4422
1.5874
1.7100
1.8171
解答:
(1)线性插值
x=1:
6;
y=[1.00001.25991.44221.58741.71001.8171];
xi=1:
0.1:
6;
yi=interp1(x,y,xi,'linear');
plot(xi,yi,'k',x,y,'o')
axistight
x0=1.56;
y0=interp1(x,y,x0,'linear')
y0=
1.1455
x0=6.23;
y0=interp1(x,y,x0,'linear')
y0=
NaN
(2)最近邻点插值
x=1:
6;
y=[1.00001.25991.44221.58741.71001.8171];
xi=1:
0.1:
6;
yi=interp1(x,y,xi,'nearest');
plot(xi,yi,'k',x,y,'o')
axistight
x0=1.56;
y0=interp1(x,y,x0,'nearest')
y0=
1.2599
x0=6.23;
y0=interp1(x,y,x0,'nearest')
y0=
NaN
(3)三次样条函数插值
x=1:
6;
y=[1.00001.25991.44221.58741.71001.8171];
xi=1:
0.1:
6;
yi=interp1(x,y,xi,'spline');
plot(xi,yi,'k',x,y,'o')
axistight
x0=1.56;
y0=interp1(x,y,x0,'spline')
y0=
1.1579
x0=6.23;
y0=interp1(x,y,x0,'spline')
y0=
1.8403
(4)三次函数插值
x=1:
6;
y=[1.00001.25991.44221.58741.71001.8171];
xi=1:
0.1:
6;
yi=interp1(x,y,xi,'cubic');
plot(xi,yi,'k',x,y,'o')
axistight
x0=1.56;
y0=interp1(x,y,x0,'cubic')
y0=
1.1560
x0=6.23;
y0=interp1(x,y,x0,'cubic')
y0=
1.8395
问题二(给药问题):
一种新药用于临床之前,必须设计给药方案,即每次注射计量多大,间隔时间多长。
药物进入机体后随血液输送到全身,在这个过程中不断被吸收、分布、代谢、最终排除体外。
药物在血液中的浓度,即单位体积血液中的药物含量,称为血药浓度。
在最简单的一室模型中,将整个机体看作一个房室,称为中心室,室内的血药浓度是均匀的。
快速静脉注射后,浓度立即上升,然后逐渐下降。
当浓度太低时,达不到预期的治疗效果;当浓度太高时,又可能导致药物中毒或副作用太强。
根据临床经验要求:
每种药物有一个最小有效浓度
和一个最大浓度
。
设计给药方案时,要使血药浓度保持在
之间,本问题设
,而且本问题可视为一室模型。
设对某人用快速静脉注射方式—次注入某药物300mg后,在一定时刻
采取血药,测得血药浓度
如下表:
t
0.25
0.5
1
1.5
2
3
4
6
8
c
19.21
18.15
15.36
14.10
12.89
9.32
7.45
5.24
3.01
请根据上述数据,利用房室模型和数据拟合方法确定给药方案。
解答:
(1)根据题目提供的数据及提示,为了更好地解决问题。
我们可以假设:
整个过程中血液容积不变,建立如下模型:
依题意可知:
初值
,
从而我们可以知道
。
根据测得的浓度可知,在
时刻,
,由模型可得以下式子:
解得:
根据以上计算,我们可以得到模型的初值:
(2)根据初值,通过MATLAB编程,具体如下:
首先建立M-文件,该文件命令为:
curvefun1.m
functionf=curvefun1(x,tdata)
f=x
(1)/x
(2)*exp(-x(3)*tdata);
然后在commandwindows(命令窗口)输入以下程序:
tdata=[0.250.511.523468];
cdata=[19.2118.1515.3614.1012.899.327.455.243.01];
x0=[300150.24];
x=lsqcurvefit('curvefun1',x0,tdata,cdata)
根据程序得出以下结果:
(3)由已知可得:
并根据题意可得:
首次注射量
每次注射量
间隔时间
6.实验心得(质疑、建议):
福建农林大学计算机与信息学院数学类实验报告(三)
系:
数学专业:
数学与应用数学年级:
2014级
姓名:
学号:
3实验课程:
数学模型
实验室号:
明南附203实验设备号:
实验时间:
2016/6/6
指导教师签字:
成绩:
1.实验项目名称:
统计回归模型及其软件求解
2.实验目的和要求:
了解回归分析的基本原理,掌握MATLAB实现的方法;学习应用回归模型解决实际问题。
3.实验使用的主要仪器设备和软件:
联想启天M430E电脑;MATLAB2010或以上版本。
4.实验的基本理论和方法:
当人们对研究对象的内在特性和各因素间的关系有比较充分的认
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 数模 实验 报告