数学模型(插值、拟合和微分方程)python实现

数学模型(插值、拟合和微分方程)-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实现 的全部内容, 来源链接: utcz.com/z/537987.html

回到顶部