数模竞赛Paid answer

数模竞赛Paid answer

2023年辽宁省数学建模竞赛

A题 铁路车站的安全标线

原题再现:

  在火车站或地铁站台上,离站台边缘 1 米左右的地方都画有一条黄线(或白线),这是为什么呢?
  这条线称为安全线(业内称之为安全标线),人们在候车时必须站在安全线以外的区域。这是因为列车高速行驶时,会带动附近的空气也发生高速运动。根据伯努利效应的解释,人面向列车这边的空气流速很大,气压就会减小,而背后的空气流速小,气压就大。这样,站台边的人就会受到一个从背后高压区向身体前低压区推的作用力,有可能造成人贴近列车而引发事故。
  为此,《铁路技术管理规程》第 157 条明确规定,旅客列车停靠的高站台边缘距线路中心线的距离为 1750mm,安全标线距站台边缘 1000mm。非高站台安全标线与站台边缘距离为:列车通过速度不大于 120km/h 时,1000mm;列车通过速度 120 km/h 以上至 160 km/h 时,1500mm;列车通过速度 160 km/h 以上至200 km/h 时,2000mm。
  你的任务:
  (1) 根据相关机理,考虑人的体重、体积以及和人的距离等影响因素,建立数学模型确定高铁或动车全速经过时,对站在站台人的“吸力”或“推力”的大小;
  (2) 依据(1)的结果,建立数学模型,说明高铁、动车车站站台的安全标线的设置依据;
  (3) 分析不同因素对安全标线设置的影响,依此,向铁路部门提供你的有关保障铁路站台安全的建议。

问题分析

  在火车站或地铁站,离站台边缘一定距离的地方标有一条安全线, 人必须站在安全线以外的区域候车,这是因为当列车驶进站台时,会带动人和车之间的空气流动速度加快,此时人外侧的空气流动速度慢,根据流体压强与流速的关系可知:人外侧空气流速慢压强大,而内侧流速快压强小,会产生一个向内侧的压强差,将人推向火车,易出现危险。这题是典型的套用临界条件的伯努利原理题,之前说高铁,现在说铁路车站,你是拿过来题直接就出啊,选这题的基本都是不会做B和C的选手,简单的不能再说了,出过好多次了无语了。

from scipy.stats import norm
import matplotlib.pyplot as plt
import numpy as np
import sympy
from scipy.stats import binom
from scipy.stats import bernoulli

p_1=1.0/2#假设估计
fp=bernoulli(p_1)#产生伯努利随机变量

data=fp.rvs(500)#产生500个样本
#print data
x,p,z=sympy.symbols('x p z',positive=True)
phi=p**x*(1-p)**(1-x)#分布函数
#print phi
'''
np.prod()函数用来计算所有元素的乘积,
对于有多个维度的数组可以指定轴,
如axis=1指定计算每一行的乘积。
变量替换subs函数,用i替换x
'''
L=np.prod([phi.subs(x,i) for i in data])#构建似然函数

log1=sympy.expand_log(sympy.log(L))#去对数
#print L
#print log1
#print len(data)
'''
利用solve()函数解方程
利用diff()函数计算微分
diff(func,var,n):高阶微分
'''
sol,=sympy.solve(sympy.diff(log1,p),p)
#print sol
'''
以均值(均值为100*0.5=50)为中心对称的加总离散概率,
Python里面使用pmf函数计算
以均值为中心对称的加总概率
'''
b=binom(100,0.5)#100次,p=0.5的概率为正面
x=np.arange(0,100)
y=b.pmf(x)
#print array
#plt.bar(x,y,width=0.8)
plt.title("ZuiDaSiRanGuJi")
plt.xlabel("x")
plt.ylabel("P(X=x)")
plt.plot(y,c='g',linewidth=3)
plt.show()
11-06 14:46