数学建模练习:计算机模拟公共汽车的运行情况.doc
- 文档编号:4138
- 上传时间:2023-04-28
- 格式:DOC
- 页数:13
- 大小:370.04KB
数学建模练习:计算机模拟公共汽车的运行情况.doc
《数学建模练习:计算机模拟公共汽车的运行情况.doc》由会员分享,可在线阅读,更多相关《数学建模练习:计算机模拟公共汽车的运行情况.doc(13页珍藏版)》请在冰点文库上搜索。
计算机模拟公共汽车的运行情况
某公共汽车站每隔30分钟到达一辆汽车,但可能有[0,3]分钟误差,此误差大小与前一辆汽车的运行无关。
汽车最多容纳50名旅客,到达该汽车站时车内旅客人数服从[20,50]的均匀分布,到站下车的旅客人数服从[3,7]的均匀分布,每名旅客下车的时间服从[1,7]秒的均匀分布。
旅客按照每30分钟到达12个人的泊松分布到达汽车站,单队排列等车,先到先上,如果某位旅客未能上车,他不再等候。
旅客上车时间服从[4,12]秒的均匀分布。
上下车的规则是:
先下后上,逐个上车,逐个下车。
假设每天共发车25辆,现在要求模拟30天汽车的运行情况,了解平均一天中在站内等候汽车的总人数、能上车及不能上车的人数、旅客排队时间分布情况、不能上车人数的分布情况。
参考解答思路:
摘要
计算机模拟式一般是一种能用来帮助企业经理在不确定条件下进行决策的方法。
对于复杂的随机事件系统,无法用数学计算直接进行求解,为此我们可以在计算机上进行模拟仿真,一般以时间作为变量,其他作为因变量。
本题是属于离散型的模拟,该模拟中的时间表示为整数序列,只考虑系统在这些时刻上的状态变化。
该问题是关于排队等汽车的问题,属于排队服务问题,可以采用下次事件法(也就是下次时间作为时间的起始时刻),使用计算机进行模拟。
为了使模型简单,我们假设所有等车的旅客都是同一时刻到达车站等车,则等车总时间为旅客到达时刻与上一辆汽车离开时刻的时间差,再加上旅客上车和下车的总时间。
在模型的建立过程中,先用MATLAB软件创建数据。
这里由于题目中的数据都给了,所以对于均匀分布和泊松分布,我们可以直接调用MATLAB软件中的unifrnd函数和poissrnd函数进行模拟。
在模型的求解部分,先用建立的模型模拟一天中等车总人数、能上车人数、未上车人数、平均等待时间的情况,然后用类似的方法对三十天的数据进行模拟求解,得出结论。
关键词:
下次法、离散、MATLAB
问题重述(略)
问题分析
该问题是关于排队等汽车的问题,属于排队服务问题,可以采用下次事件法,使用计算机进行模拟。
公共汽车到站时有时间误差,但是每辆汽车到达时间与其他汽车无关,该时间可以使用MATLAB产生的随机数来表示。
又汽车到站时车内人数、到站时下车人数、每名旅客下车的时间以及每名旅客上车时间都服从均匀分布。
也可以使用MATLAB将这些量模拟出来,非常方便。
另外,旅客按照每30分钟到达12个人的泊松分布。
到达车站即开始等车,但只有当汽车到站后车上的空位不少于排队人数,所有人才可以上车;否则就有人由于上不了车而离开。
为了使模型简单,我们假设所有等车的旅客都是同一时刻到达车站等车,则等车总时间为旅客到达时刻与上一辆汽车离开时刻的时间差,再加上旅客上车和下车的总时间。
模型假设
1.假设每辆公共汽车的到站时刻都是独立的,看成是独立时间,而与前一辆或后一辆汽车的到达时刻没有关系。
2.假设所有的乘客在30分钟内都是同时到达车站等车,每个人等待的时间相同,而不计排队上车时前面旅客的上车时间。
所有乘客到达时刻与汽车到达时刻时间差服从上的均匀分布。
3.假设旅客下完车后等待的旅客马上上车,上下车过程是连续的,中间没有时间误差,上完车后汽车马上离开。
4.每辆车的容量最大为50人,只有车上的空位足够时等待的旅客才能全部上车,没有上车的旅客不再等待。
5.计算旅客等待时间时,以最后上车的旅客为准,除了乘客下车时间,还要加上每个人上车的时间。
6.已知30分钟内到站旅客数服从泊松分布,参数为12,车到站后等待的旅客数固定,排队人数不再增加。
7.假设汽车到站时间误差服从上的均匀分布。
模型建立
1.符号说明:
i
汽车到站车次()
第i辆汽车到站时间误差
第i辆汽车到站时车上已有乘客人数
第i辆汽车到站时下车乘客人数
第i辆汽车到站时上车乘客人数
每位乘客下车时间
每位乘客上车时间
所有乘客到达时刻与汽车到达时刻时间差
车上空位数
第i辆汽车到站时排队等车人数
排队时间
不能上车的人数
2.利用MATLAB软件创建数据
问题中已经告诉我们汽车到站时车内人数、到站时下车人数、每名旅客下车的时间、每名旅客上车时间、所有乘客到达时刻与汽车到达时刻时间差以及汽车到站时间误差都服从均匀分布,可以非常方便的使用MATLAB中的unifrnd函数实现。
同样,由于30分钟内到达车站等车人数服从泊松分布,可以使用MATLAB中的poissrnd函数实现。
各个变量的MATLAB函数实现如下:
(1)汽车到达时间误差
;
(2)到达该汽车站时车内旅客人数
;
(3)到站下车的旅客人数
;
(4)每名旅客下车的时间
;
(5)每名旅客上车时间
;
(6)所有乘客到达时刻与汽车到达时刻时间差
;
(7)30分钟内到达车站等车人数
;
(8)排队时间为所有乘客到达时刻与汽车到达时刻时间差,
旅客下车的时间以及旅客上车时间的和,公式如下:
;
(9)当排队人数大于车上空位数时,上车人数为车上空位数,有人不能上车;而当排队人数小于车上空位数时,上车人数为排队人数,公式如下:
;
(10)只有当排队人数大于车上空位时才又乘客不能上车,公式如下:
;
模型求解
先模拟一天的情况:
1.设第一辆汽车的理论到达时间为6:
00,利用MATLAB产生的随机数如下:
(1)到达时间误差
1
2
3
4
5
1.4588
-0.6466
0.9329
-1.9729
1.2363
6
7
8
9
10
-2.8090
-1.3385
-2.7230
-2.4172
1.9407
11
12
13
14
15
1.1690
-1.0974
2.7013
-2.7933
-0.3675
16
17
18
19
20
-0.7106
1.5931
1.7712
-1.8788
-0.0614
21
22
23
24
25
-0.3265
0.8779
1.2562
1.5281
-1.3438
(2)到达该汽车站时车内旅客人数
1
2
3
4
5
40
39
24
23
34
6
7
8
9
10
48
30
37
26
42
11
12
13
14
15
27
35
40
46
48
16
17
18
19
20
36
24
24
27
45
21
22
23
24
25
27
44
27
47
30
(3)到站下车的旅客人数
1
2
3
4
5
3
4
5
4
4
6
7
8
9
10
6
5
5
6
4
11
12
13
14
15
6
6
4
5
3
16
17
18
19
20
3
5
6
6
3
21
22
23
24
25
5
4
3
4
3
(4)每名旅客下车的时间
1
2
3
4
5
5.7657
2.8673
4.1712
1.9939
4.6119
6
7
8
9
10
2.5778
4.9245
5.1353
5.4889
3.7032
11
12
13
14
15
1.5029
2.3739
6.4800
1.9143
5.9549
16
17
18
19
20
4.2301
4.2301
6.9768
1.4691
3.6561
1.6399
21
22
23
24
25
6.7714
1.0278
5.6495
5.9038
6.2122
(5)每名旅客上车时间
1
2
3
4
5
4.6755
7.1983
6.0790
10.4005
7.4513
6
7
8
9
10
11.2852
5.4548
6.1104
5.1643
5.0885
11
12
13
14
15
10.9543
8.6376
8.3989
5.1596
10.8242
16
17
18
19
20
8.97644.2301
6.8076
8.1060
7.2145
4.6077
21
22
23
24
25
5.9193
4.9866
5.4713
5.9196
7.3381
(6)所有乘客到达时刻与汽车到达时刻时间差
1
2
3
4
5
1.4896
27.0815
28.3436
14.7259
14.6776
6
7
8
9
10
10.1316
27.0016
11.0774
3.3361
23.4076
11
12
13
14
15
11.6922
7.2507
12.1174
2.8936
3.9592
16
17
18
19
20
28.26154.2301
28.6840
17.2563
1.7934
7.0434
21
22
23
24
25
10.5948
24.6358
0.4621
1.2907
5.0697
(7)30分钟内到达车站等车人数
1
2
3
4
5
12
13
16
9
13
6
7
8
9
10
11
15
11
11
14
11
12
13
14
15
14
17
13
16
8
16
17
18
19
20
12
21
12
10
16
21
22
23
24
25
9
16
7
16
8
2.每一天内能上车及不能上车情况如下:
车次
车内人数
下车人数
车上空位数
排队人数
上车人数
未上车人数
1
40
3
13
12
12
0
2
39
4
15
13
13
0
3
24
5
31
16
16
0
4
23
4
31
9
9
0
5
34
4
20
13
13
0
6
48
6
8
11
8
3
7
30
5
25
15
15
0
8
37
5
18
11
11
0
9
26
6
30
11
11
0
10
42
4
12
14
12
2
11
27
6
29
14
14
0
12
35
6
21
17
17
0
13
40
4
14
13
13
0
14
46
5
9
16
9
7
15
48
3
5
8
5
3
16
36
3
17
12
12
0
17
24
5
31
21
21
0
18
24
6
32
12
12
0
19
27
6
29
10
10
0
20
45
3
8
16
8
8
21
27
5
28
9
9
0
22
44
4
10
16
10
6
23
27
3
26
7
7
0
24
47
4
7
16
7
9
25
30
3
23
8
8
0
3.一天内各时间情况如下:
车次
到站时间
到站时间误差(分)
乘客汽车时差
(分)
下车人数
下车时间
(秒)
上车人数
上车时间
(秒)
等待时间
(分)
1
6:
00
1.4588
1.4896
3
17.2971
12
56.106
2.713
2
6:
30
-0.6466
27.0815
4
11.4692
13
93.5779
28.832
3
7:
00
0.9329
28.3436
5
7.9756
16
97.264
30.097
4
7:
30
-1.9729
14.7259
4
7.9756
9
93.6045
16.418
5
8:
00
1.2363
14.6776
4
18.4476
13
96.8669
16.599
6
8:
30
-2.8090
10.1316
6
15.4668
8
90.2816
11.893
7
9:
00
-1.3385
27.0016
5
24.6225
15
81.822
28.775
8
9:
30
-2.7230
11.0774
5
25.6765
11
67.2144
12.625
9
10:
00
-2.4172
3.3361
6
32.9334
11
56.8073
4.832
10
10:
30
1.9407
23.4076
4
14.8128
12
61.062
23.407
11
11:
00
1.1690
11.6922
6
9.0174
14
153.3602
14.398
12
11:
30
-1.0974
7.2507
6
14.2434
17
146.8392
9.935
13
12:
00
2.7013
12.1174
4
25.92
13
109.1857
14.369
14
12:
30
-2.7933
2.8936
5
9.5715
9
46.4364
3.827
15
13:
00
-0.3675
3.9592
3
17.8647
5
54.121
5.159
16
13:
30
-0.7106
28.26154.2301
3
12.6903
12
107.7168
30.268
17
14:
00
1.5931
28.6840
5
34.884
21
142.9596
31.648
18
14:
30
1.7712
17.2563
6
8.8146
12
97.272
19.024
19
15:
00
-1.8788
1.7934
6
21.9366
10
72.145
3.361
20
15:
30
-0.0614
7.0434
3
4.9197
8
36.8616
7.740
21
16:
00
-0.3265
10.5948
5
33.857
9
53.2737
12.046
22
16:
30
0.8779
24.6358
4
4.1112
10
49.866
25.535
23
17:
00
1.2562
0.4621
3
16.9485
7
38.2991
1.383
24
17:
30
1.5281
1.2907
4
23.6152
7
41.4372
2.375
25
18:
00
-1.3438
5.0697
3
18.6366
8
58.7048
6.359
4.一天内该车站的情况如下:
等车总人数:
320人
能上车人数:
282人
未上车人数:
38人
平均等待时间:
14.5分
模拟30天的情况(模拟方法和前面类似):
车内人数
下车人数
等车人数
天数
等车人数
能够上车人数
未上车人数
等待时间(分)
1
303
251
52
9.668
2
280
264
16
9.186
3
310
288
22
19.677
4
307
255
52
25.141
5
315
294
21
28.548
6
299
264
35
10.857
7
285
272
13
20.514
8
286
268
18
18.326
9
283
264
19
8.261
10
315
263
52
15.416
11
305
282
23
11.568
12
289
279
10
25.474
13
278
267
11
14.846
14
305
262
43
19.627
15
307
273
34
11.644
16
283
268
15
21.243
17
294
281
13
13.785
18
286
271
15
22.389
19
294
276
18
23.162
20
286
263
23
24.459
21
285
276
9
17.911
22
299
287
12
9.844
23
310
262
48
13.037
24
269
258
11
28.093
25
300
272
28
11.352
26
310
286
24
26.168
27
288
261
27
19.843
28
304
277
27
29.915
29
295
280
15
17.738
30
254
251
3
9.719
30天内平均每天情况如下:
平均每天等车总人数:
294人
平均每天能上车人数:
270人
平均每天未上车人数:
24人
平均等待时间:
17.9分
模型评价
本模型考虑得比较简单,简化的地方有以下几点:
我们认为所有的乘客都是同时到达车站等车,并且排队人数不再增加,计算等车时间时以最后一名上车乘客等待时间为准。
另外假设乘客上下车是连续的,中间没有时间误差。
这样模拟出来的结果与实际情况有一定的差距,如果可以将等车时间考虑得更仔细一点,模拟出来的效果会个更好。
参考文献
《计算机模拟在数学建模中应用》欧宜贵2004年海南大学学报
《数学建模》姜启源谢金星叶俊高等教育出版社
《Matlab6.0与科学计算》王沫然电子工业出版社
《数学建模与数学实验》赵静但琦严尚安高等教育出版社
《数学模型与数学建模》刘来福曾文艺北京师范大学出版社
《matlab教程》张志涌杨祖樱北京航空航天大学出版社
13
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 练习 计算机 模拟 公共汽车 运行 情况