数学建模第二次实验报告

发布 2023-05-18 06:52:28 阅读 9304

实验报告。

数学建模。李国中201130760118

学院名称理学院。

专业班级11信息与计算科学1提交日期2023年5月。

评阅人评阅分数。

实验:数学规划模型---lingo求解。

一、实验目的。

1.熟悉lingo的启动和运行。

2.熟悉lingo的基本建模语言和编程。3.掌握lingo求解数学规划模型的过程。

二、实验原理。

三、实验内容。

1.学习实验原理中的lingo使用,并上机操作学习下面的例子。

一奶制品加工厂用牛奶生产a1,a2两种奶制品,1桶牛奶可以在甲车间用12小时加工成3公斤a1,或者在乙车间用8小时加工成4公斤a2。根据市场需求,生产的a1,a2全部能售出,且每公斤a1获利24元,每公斤a2获利16元。现在加工厂每天能得到50桶牛奶的**,每天正式工人总的劳动时间480小时,并且甲车间每天至多能加工100公斤a1,乙车间的加工能力没有限制。

试为该厂制订一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题:

1)若用35元可以买到1桶牛奶,应否作这项投资?若投资,每天最多购买多少桶牛奶?

2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元?

3)由于市场需求变化,每公斤a1的获利增加到30元,应否改变生产计划?

模型**如下:

max=72*x1+64*x2;x1+x2<=50;

12*x1+8*x2<=480;3*x1<=100;

求解这个模型并做灵敏性分析,结果如下。

global optimal solution found at iteration0objective value3360.000

variablevalue reduced costx1 20.000000.000000x2 30.

000000.000000row slack or surplus dual price

ranges in which the basis is unchanged:

objective coefficient ranges

current allowable allowable

variable coefficient increase decrease

x172.00000 24.00000 8.000000x264.00000 8.000000 16.00000righthand side ranges

rowcurrent allowable allowablerhs increase decrease2 50.00000 10.00000 6.

6666673 480.0000 53.33333 80.

000004 100.0000 infinity 40.00000

结果告诉我们:这个线性规划的最优解为x1=20,x2=30,最优值为z=3360,即用20桶牛奶生产a1,30桶牛奶生产a2,可获最大利润3360元。输出中除了告诉我们问题的最优解和最优值以外,还有许多对分析结果有用的信息,下面结合题目中提出的3个附加问题给予说明。

3个约束条件的右端不妨看作3种“资源”:原料、劳动时间、车间甲的加工能力。输出中slack or surplus给出这3种资源在最优解下是否有剩余:

原料、劳动时间的剩余均为零,车间甲尚余40(公斤)加工能力。

目标函数可以看作“效益”,成为紧约束的“资源”一旦增加,“效益”必然跟着增长。输出中dualprices给出这3种资源在最优解下“资源”增加1个单位时“效益”的增量:原料增加1个单位(1桶牛奶)时利润增长48(元),劳动时间增加1个单位(1小时)时利润增长2(元),而增加非紧约束车间甲的能力显然不会使利润增长。

这里,“效益”的增量可以看作“资源”的潜在价值,经济学上称为影子**,即1桶牛奶的影子**为48元,1小时劳动的影子**为2元,车间甲的影子**为零。读者可以用直接求解的办法验证上面的结论,即将输入文件中原料约束milk)右端的50改为51,看看得到的最优值(利润)是否恰好增长48(元)。用影子**的概念很容易回答附加问题1):

用35元可以买到1桶牛奶,低于1桶牛奶的影子**48,当然应该作这项投资。回答附加问题2):聘用临时工人以增加劳动时间,付给的工资低于劳动时间的影子**才可以增加利润,所以工资最多是每小时2元。

目标函数的系数发生变化时(假定约束条件不变),最优解和最优值会改变吗?这个问题不能简单地回答。上面输出给出了最优基不变条件下目标函数系数的允许变化范围:

x1的系数为(72-8,72+24)=(64,96);x2的系数为(64-16,64+8)=(48,72)。注意:x1系数的允许范围需要x2系数64不变,反之亦然。

由于目标函数的费用系数变化并不影响约束条件,因此此时最优基不变可以保证最优解也不。

变,但最优值变化。用这个结果很容易回答附加问题3):若每公斤a1的获利增加到30元,则x1系数变为30×3=90,在允许范围内,所以不应改变生产计划,但最优值变为90×20+64×30=3720。

影子**的作用(即在最优解下“资源”增加1个单位时“效益”的增量)是有限制的。每增加1桶牛奶利润增长48元(影子**),但是,上面输出的currentrhs的allowable increase和allowable decrease给出了影子**有意义条件下约束右端的限制范围:milk)原料最多增加10(桶牛奶),time)劳动时间最多增加53(小时)。

现在可以回答附加问题1)的第2问:虽然应该批准用35元买1桶牛奶的投资,但每天最多购买10桶牛奶。顺便地说,可以用低于每小时2元的工资聘用临时工人以增加劳动时间,但最多增加53.

3333小时。

、编写lingo程序并求解第一题:

某班准备从5名游泳队员中选择4人组成接力队,参与学校的4*100m混合接力比赛。5名队员4种泳姿的百米成绩如表所示,应如何选拔队员组成接力队?

甲乙丙丁戊。

仰泳蛙泳自由泳。蝶泳。

z被选择的第j个人参加第i种泳姿时的百米成绩;tij候选人的百米成绩;xij派第j个人参加第i种泳姿;

问题的约束条件是:

minztijxiji1j1

xij1i1,2,3,4j14

xij0,1i1,2,3,4j1,2,3,4,5

i1j1本题运用0-1规划建立模型。目标函数其中包含120种组合情况。这。

其中包含一个人可以参加多种泳姿和一种泳姿有多人选择,为将其筛除,我们列出。

ztijxij

目标函数的约束条件。xj1

ij1i1,2,3,4

代表每一种泳姿只能有一人选择。

表示没一个人只能参加一种泳姿的选拔。最后将求出的所有。

可能情况取其最小值即为4100米混合泳接力队的最佳组合。源**:

model:sets: hang/1..4/; lie/1..5/;

links(hang,lie):x,t;endsetsdata: t=66.

857.278 70 67.4 75.

666 67.8 74.2 71 87 66.

4 84.6 69.6 83.

8 58.6 53 59.457.

2 62.4;enddatamin=@sum(links:t*x);@for(lie(j):

@sum(hang(i):x(i,j))<1;);for(hang(i):@sum(lie(j):

x(i,j))=1;);for(links:@bin(x));end结果为:i1x

ij1j1,2,3,4,5

泳姿队员蝶泳乙仰泳丙蛙泳丁自由泳甲。

第二题:某公司有6个建筑工地,位置坐标为(ai,bi)(单位:公里),水泥日用量di(单位:吨)iabd

1)现有2料场,位于a (5, 1), b (2, 7),记(xj, yj),j=1,2,日储量ej各有20吨,制定每天的**计划,即从a,b两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。

2)改建两个新料场,需要确定新料场位置(xj,yj)和运量cij,在其它条件不变下使总吨公里数最小。问题1参考模型:

mincij[(xjai)2(yjbi)2]1/2j1i1

s..tcijdi,i1,..6

j16cijej,j1,2i1

解:1)1)现有2料场,位于a (5, 1), b (2, 7),记(xj,yj),j=1,2,日储量ej各有20吨。

目标:制定每天的**计划,即从a, b两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。

建立模型:model:sets:

demand/1..6/:a,b,d;supply/1 2/:x,y,e;

link(demand,supply):c;endsetsdata:

需求点位置;

a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;!供需两;

d=3,5,4,7,6,11; e=20,20;x=5,2;y=1,7;enddata!目标函数;

min=@sum(link(i,j):c(i,j)*(x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2));需求约束;

for(demand(i):@sum(supply(j):c(i,j))=d(i));**约束;

for(supply(j):@sum(demand(i):c(i,j))

模拟结果:global optimal solution found.

objective value136.2275infeasibilities0.000000total solver iterations1

variablevalue reduced costc( 1, 1) 3.0000000.000000c( 1, 2) 0.

0000003.852207c( 2, 1) 5.0000000.

000000c( 2, 2) 0.0000007.252685c( 3, 1) 0.

0000001.341700c( 3, 2) 4.0000000.

000000c( 4, 1) 7.0000000.000000c( 4, 2) 0.

0000001.992119c( 5, 1) 0.0000002.

922492c( 5, 2) 6.0000000.000000c( 6, 1) 1.

0000000.000000c( 6, 2) 10.000000.

000000

row slack or surplus dual price1 136.22751.0000002 0.

0000003.7583243 0.0000003.

7583244 0.0000004.5159875 0.

0000004.0697056 0.0000002.

9298587 0.0000007.1151258 4.

0000000.0000009 0.0000001.

811824

最优解为a运往1处3吨水泥,运往2处5吨水泥,运往3处0吨,运往4处7吨,运往5处0吨,运往6处1吨;b运往1处0吨,运往2处0吨,运往3处4吨,运往4处0吨,运往5处6吨,运往6处10吨;最优值吨公里数最小为136.2275tkm

2)改建两个新料场,需要确定新料场位置(xj,yj)和运量cij,在其它条件不变下使总吨公里数最小。

建立模型:model:sets:

demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsetsdata:

需求点位置;

a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;!供需两;

d=3,5,4,7,6,11; e=20,20;enddata!目标函数;

min=@sum(link(i,j):c(i,j)*(x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2));需求约束;

for(demand(i):@sum(supply(j):c(i,j))=d(i));**约束;

for(supply(j):@sum(demand(i):c(i,j))

模拟结果:local optimal solution found.

objective value85.26604infeasibilities0.000000total solver iterations68

variablevalue reduced costx( 13.2548830.000000

x( 27.2500000.1853513e-05y( 15.6523320.000000

y( 27.7500000.1114154e-05c( 1, 1) 3.

0000000.000000c( 1, 2) 0.0000004.

008540c( 2, 1) 0.0000000.2051358c( 2, 2) 5.

0000000.000000c( 3, 1) 4.0000000.

000000c( 3, 2) 0.0000004.487750c( 4, 1) 7.

0000000.000000c( 4, 2) 0.0000000.

5535090c( 5, 1) 6.0000000.000000c( 5, 2) 0.

0000003.544853c( 6, 1) 0.0000004.

512336c( 6, 2) 11.000000.000000

row slack or surplus dual price1 85.266041.0000002 0.

0000004.8373633 0.0000007.

1589114 0.0000002.8988935 0.

0000002.5789826 0.0000000.

8851584

最优解为c(x1,y1)=(3.254883,5.652332),d(x2,y2)=(7.

25,7.75)c运往1处3吨,运往2处0吨,运往3处4吨,运往4处7吨,运往5处6吨,运往6处0吨;d运往1处0吨,运完2处5吨,运往3处0吨,运往4处0吨,运往5处0吨,运往6处11吨;最优值总吨公里数最小为85.26604tkm。

三、实验心得与体会。

lingo说简单也简单,说难也难。由于之前参加过数学建模比赛,已经接触过lingo,所以这次的实验就是对以前的知识复习。这次实验两道题都是0—1规划问题,采用的线性规划,弄清楚约束条件和最优解方程基本就能直接用lingo求出问题解。

在本次实验中,主要学会了lingo的基本操作和界面知识。

数学建模第二次实验

数学建模课程实验报告。学院 专业 班级 姓名 学号 序号 数学建模课程实验成绩鉴定表。1 实验题目。新止痛剂疗效 模型。二 实验目的。通过使用matlab求解统计回归模型,掌握求解统计回归模型的方法,并拥有学会运用matlab处理建模问题的思维。2 实验内容。问题 一个医药公司的新药研究部门为了掌握...

数学建模第二次作业

数学建模实验。姓名 于宸伟学号 20131060170专业 电子信息科学与技术。1 对于一根钢原材料,不同的切割方法可以得到不同的结果。根据题目的要求,可以得到如下切割方案 材料 m切割方案12345 说明 x1 用方案1切割所用去的原钢材料根数 x2 用方案2切割所用去的原钢材料根数 x3 用方案...

数学建模第二次作业

1数据链接。1.1数据简介。数据集包含31个省市自治区的数据,包含省市名称,投入人年数,投入高级职称的人年数,投入科研事业费 百元 课题总数,专著数,数,获奖数,8个变量。2回归分析。以 数为响应变量,以投入人年数,投入高级职称的人年数,投入科研事业费 百元 课题总数为解释变量,进行回归分析。采用逐...