def calc_approx(time, altitude, div = 5, dt = 1.0, deg = 100, lim = 1):
time_list, altitude_list, velocity_y = [],[],[]
for i in range(div):
f = trendline.approx_func(
time[max(int((i - lim) * len(time) / div), 0):min(len(time), int((i + lim) * len(time) / div))],
altitude[max(int((i - lim) * len(time) / div), 0):min(len(time), int((i + lim) * len(time) / div))], deg)
der = np.polyder(f)
#print(time[int(i * len(time) / div)], min(time[-1], time[int((i + 1) * len(time) / div) - 1]))
for t in np.arange(time[int(i * len(time) / div)], min(time[-1], time[int((i + 1) * len(time) / div) - 1]), dt):
#for t in time:
# if t >= time[int(i * len(time) / div)] and t < min(time[-1], time[int((i + 1) * len(time) / div) - 1]):
time_list.append(t)
altitude_list.append(f(t))
velocity_y.append(der(t))
return time_list, velocity_y, altitude_list
评论列表
文章目录