数学模型(插值、拟合和微分方程)python实现[Python基础]
问题1 车辆数量估计
题目描述
交通管理部门为了掌握一座桥梁的通行情况,在桥梁的一端每隔一段不等的时间,连续记录1min内通过桥梁的车辆数量,连续观测一天24h的通过车辆,车辆数据如下表所示。试建立模型分析估计这一天中总共有多少车辆通过这座桥梁。
python 实现(关键程序)
def get_line(xn, yn):def line(x):
index = -1
# 找出x所在的区间
for i in range(1, len(xn)):
if x <= xn[i]:
index = i - 1
break
else:
i += 1
if index == -1:
return -100
# 插值
result = (x - xn[index + 1]) * yn[index] / float((xn[index] - xn[index + 1])) + (x - xn[index]) * yn[
index + 1] / float((xn[index + 1] - xn[index]))
return result
return line
time = [0, 2, 4, 5, 6, 7, 8,
9, 10.5, 11.5, 12.5, 14, 16, 17,
18, 19, 20, 21, 22, 23, 24]
num = [2, 2, 0, 2, 5, 8, 25,
12, 5, 10, 12, 7, 9, 28,
22, 10, 9, 11, 8, 9, 3]
# 分段线性插值函数
lin = get_line(time, num)
# time_n = np.arange(0, 24, 1/60)
time_n = np.linspace(0, 24, 24*60+1)
num_n = [lin(i) for i in time_n]
sum_num = sum(num_n)
print("估计一天通过的车辆:%d" % sum_num)
以上是 数学模型(插值、拟合和微分方程)python实现[Python基础] 的全部内容, 来源链接: utcz.com/z/530644.html