建模论文公交线路的论文.docx

上传人:b****6 文档编号:5259363 上传时间:2022-12-14 格式:DOCX 页数:12 大小:108.03KB
下载 相关 举报
建模论文公交线路的论文.docx_第1页
第1页 / 共12页
建模论文公交线路的论文.docx_第2页
第2页 / 共12页
建模论文公交线路的论文.docx_第3页
第3页 / 共12页
建模论文公交线路的论文.docx_第4页
第4页 / 共12页
建模论文公交线路的论文.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

建模论文公交线路的论文.docx

《建模论文公交线路的论文.docx》由会员分享,可在线阅读,更多相关《建模论文公交线路的论文.docx(12页珍藏版)》请在冰豆网上搜索。

建模论文公交线路的论文.docx

建模论文公交线路的论文

 

兰州交通大学

2008年大学生数学建模竞赛论文

 

题目:

奥运期间临时新增

公交线路的最优站点选址问题

 

姓名李二通

学院数理学院

班级软件06班

 

参赛人1:

姓名刘文林

学院数理学院

班级信计06班

 

参赛人2:

姓名李建军

学院数理学院

班级软件06班

 

参赛人3:

 

学校统一编号,

个人不得填写

论文编号:

 

奥运期间临时新增

公交线路的最优站点选址问题

 

一、摘要

公交车站点的选址问题,对于这个问题的研究一直比较多。

本文采用离散模型中嵌套连续模型。

把整个路线以站点为界划分为n+1个区间,由于区间内的乘客要向最近站点走去,首先,通过提出合理的假设且基于限制条件:

所有站点间距之和最大程度接近路线总长;先对每一个区间长度进行计算;其次,要使所有乘客花费的总时间最少,只要每一个乘客所花费的时间最少即可,故又将整个路线划分为n+1个时间段,令同一个时间段内的每一个乘客所花费的时间相等,接着对每一个时间段的所有乘客所花费的时间ti(i=1,2…n+1).进行计算,即在区间内采用连续模型;最后,将所有乘客所花费的时间求和。

本文通过对问题合理的假设、严密的逻辑分析、精确的计算,基于条件:

(1)所有站点间距之和最大程度接近路线总长;

(2)乘客所花时间最少。

对于题目所给的参数,计算得到设置5个站点较为合理。

此时平均每个乘客花费时间0.67小时(大约42分钟)。

总的花费时间为76.8小时,相邻站点之间的距离从L1=0.5公里依次递增。

 

二、问题提出

2008年8月8日第29届奥林匹克运动会在北京开幕,这使得北京在奥运会期间成为全球最大的旅游城市.旅游人数的骤然增多无疑给城市的交通造成很大的压力,为了解决这一实际问题,交通管理部门决定临时增开一些直达(无需转车)奥运比赛场地的公交线路以缓解对交通造成的压力.

就某一条临时增开的公交线路而言,为了节约每一位乘客的乘车时间,加之每辆公交车的容量有限,公交车并非在线路的原来每一个站点都停车,这就要求对站点设置做合理的规划。

要求:

对所给数据(见下表)进行计算,使所有乘客花费的总时间达到最少,并计算此时每相邻两个站点之间的距离

 

参数名称

每公里乘客密度

线路的总

长度为

站点停

车时间

公交车行

驶时速

乘客的步

行时速

参数值

5人

23公里

2分钟

35公里

8公里

二、问题的分析

该问题的目的是寻找公交站点的最优选址,使得沿线所有乘客花费的乘车时间最少。

要使所有乘客花费的总时间最少,只要沿线每一个乘客花费的时间最少,则所有乘客所花费的总时间就能达到最少。

规定沿途均匀分布的乘客同时向最近站点走,总时间从所有的乘客向最近站点行进时计起。

如下图,当区间[0,

L1)内所有乘客都到达位置0时,第一班车出发。

假设所有乘客都能在其最近站点赶上第一班公交车,由于公交车的容量有限且不能超载,所以在乘客到达其最近站点时,有可能乘不上该班车,此时,站点的乘客就要花时间等下一班车。

处于区间[L1+L2+…+Ln+

Ln+1,L]内的乘客步行到终点,其花费的时间暂时不计入乘车的乘客所花费的总时间之内。

另外,每一班公交车无论是否乘客坐满,均按规定在每一个站点停车2分钟。

四、模型假设与符号说明

1、模型假设:

(1)公交车行驶速度和乘客的步行速度均匀速;

(2)每班公交车的时间间隔相等;

(3)每个站点的乘客同时上车;

(4)乘客步行到最近的站点去乘车;

(5)每班公交车容量固定且相同;

(6)沿线乘客均匀分布且在同一时刻向最近站点出发,乘客所花费的时间从此时开始计时;

2、符号说明:

参数名称

符号

单位

每公里乘客人数

P

人/公里

路线的总长度

L

公里

站点停车时间

T0

分钟

公交车行驶时速

V车

公里/小时

乘客的步行时速

V人

公里/小时

班次间隔时间

Tc

分钟

第i站与第i+1站间距

Li(i=1,2,…,n+1)

公里

所有乘客花费的总时间

T

小时

五、模型的建立

使相同时间段的乘客花费时间最短,则满足条件:

 

同一时间段乘客所花费的时间模型依次为:

 

故总花费时间为:

 

六、模型的简化与求解

对于上述条件的化简可得差分方程:

其中

对于差分方程的求解需要给出初值L1(搜集数据表明0.5≤L1≤0.8),依次求得:

Li(i=2,3,….,n+1)并且满足条件:

完整程序(采用C++语言编程计算,并且在visualC++6.0环境下调试成功)和结果参见附录。

求解部分结果及解释(单位是:

公里)

当L1=0.5时L2=1.2619L3=2.37211L4=3.98983L5=6.34709L6=9.78195

对应站点数为5;

所有乘客花费的时间为76.8035小时;

平均每个人花费的时间为0.667856小时;

七、结果分析与检验

由于L1的取值范围是0.5≤L1≤0.7,所以对L1的不同取值,Li有不同的结果:

L1

L2

L3

L4

L5

L6

0.5

1.2619

2.37211

3.98983

6.34709

9.78195

0.55

1.33476

2.47827

4.14453

6.57251

10.1104

0.6

1.40762

2.58444

4.29922

6.79792

10.4389

0.65

1.48048

2.6906

4.45392

7.02333

10.7673

0.7

1.55333

2.79676

4.60861

7.24874

11.0958

当L1=0.5时,

当L1=0.55时

当L1=0.60时

当L1=0.65时

当L1=0.7时

(单位:

公里)

 

根据题目所给数据,路线的总长度L=23公里,可知当L1=0.5公里,所设站点数为5时,最为合理。

八、模型的优缺点和改进方向

对于公交车站点的最优选址的问题,本文采用离散模型,嵌套连续模型,在求解相邻站点之间的距离时,运用求解差分方程的知识;在求解总时间时,运用数学分析里的级数求和方法。

模型的优点:

(1)本模型假设合理,接近现实生活。

(2)用差分方程表示出相邻间距的关系,再利用递推求解,整个模型的建立都没用到很复杂的算法,通俗易懂。

(4)在差分方程求解中,采用C++语言编程,在VisualC++6.0环境下调试运行,计算结果较为准确。

(5).问题分析透彻,使得建立的模型容易理解。

建立的模型简洁、明了。

模型存在的不足:

(1)避免了一些实际问题,比如公交车行驶速度和乘客的步行速度均匀速。

(2)考虑到时间最少,致使最后站点之间的距离比较大,较不符合实际。

(3)本模型采用间接的方法,没有直接找出总时间T与站点n的关系.

改进方向:

基于模型的上述不足,在计算公交车和乘客所花费的时间时,应当运用运动学的方程进行计算,这样将使模型的更加复杂化,本文为了简化模型,提出了匀速的假设。

其次,在寻找最小站点n时,应建立总的时间T与n的函数关系,进而找到使T最小的n,但本文并没有这么做,而是采用间接的计算方法找到n的值。

最后,可根据实际情况,通过对相邻站点之间距离和站点的数量的进行适当调整,使得相邻站点之间的距离不至过大。

九、参考文献

[1]

[2]谢兆鸿,范正森,王艮远数学建模技术北京中国水利水电出版社2003

[3]蔡锁章,数学建模原理与方法海洋出版社2000版

 

十、附录

程序1:

计算Li(i=1,2,…,n+1)的值

#include

usingnamespacestd;

intmain()

{

intp=5,c=45;

doubleL[47],len[47],t[47],T[47];

//L[47]是46个站点;且L[1]不用。

len[k]是前k个站的长度

L[0]=0;len[0]=0;

t[0]=0;T[0]=0;

doublevr=8,vc=35,Length=23;//

doubleTc=10.0/60,T0=2.0/60;

cout<<"inputL[1]"<

cin>>L[1];len[1]=L[1];

doubleA=(2*vr/vc)+1,B=2*vr*T0;

for(intn=2;n<47;n++)

{

L[n]=A*L[n-1]+B;

len[n]=len[n-1]+L[n];

cout<

}

for(inti=0;i<47;i++)

{

t[i]=L[i+1]/(2*vr)+(Length-len[i])/vc+(n-i)*T0+((int)(((len[i]-L[i]*0.5)*p/c)))*Tc;

T[i]=t[i]*(0.5*(L[i]+L[i+1]));

}

doubleresult=0;

for(intj=0;j<7;j++)

result=result+T[j];

result=result/115.0;

cout<<"&&&&&&&&&&&&&&&"<

cout<

return0;

}

程序2:

测试数据

#include

usingnamespacestd;

intmain()

{

doubleL[11];

doublevr=8,vc=35;

doubleT0=2.0/60;

L[0]=0;

doubleA=(2*vr/vc)+1,B=2*vr*T0;

for(L[1]=0.5;L[1]<0.85;L[1]=L[1]+0.05)

{

cout<<"\n***************************\n";

cout<

for(intn=2;n<11;n++)//n<6,7,8…..11分别测试

{

L[n]=A*L[n-1]+B;

cout<

}

}

cout<

return0;

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1