我目前将线性函数拟合到距离与时间图,以便计算出粒子的速度......
velocity, intercept = numpy.polyfit(time, displacement, 1)
那么我怎样才能找到这个速度测量中的误差估计值呢?
我目前将线性函数拟合到距离与时间图,以便计算出粒子的速度......
velocity, intercept = numpy.polyfit(time, displacement, 1)
那么我怎样才能找到这个速度测量中的误差估计值呢?
from scipy import stats
import numpy as np
coefficients = numpy.polyfit(time, displacement, 1)
fitted_data = np.poly1d(coefficients)
slope, intercept, r_value, p_value, std_err = stats.linregress(fitted_data, displacement)
你的时间价值是等距放置的吗?如果是,您可以简单地通过以下方式插入速度
velocitiy_between = (displacement[1:]-displacement[:-1])/(time[1:]-time[:-1])
这些速度现在不是在您的数据点之间定义,而是在您的数据点之间定义。然后,您可以为每个数据点分配其左右近似值的平均值
velocity = (velocity_between[1:]+velocity_between[:-1])/2.0
通过这种方式,您可以获得所有内部数据点的速度数组,您可以将其与拟合结果进行比较。
如果您的时间值不是等距放置的,您仍然可以使用这种方法。但是您必须根据数据密度为您的错误分配额外的加权因子,以考虑到附近点之间的斜率可以更好地近似这一事实。邻居之间的平均也取决于到邻居的距离。
如果您需要有关第二种情况的更多详细信息,请发表评论。