1

我目前将线性函数拟合到距离与时间图,以便计算出粒子的速度......

velocity, intercept = numpy.polyfit(time, displacement, 1)

那么我怎样才能找到这个速度测量中的误差估计值呢?

4

2 回答 2

2

你试过scipy.stats.linregress吗?

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)
于 2013-02-24T23:25:26.333 回答
0

你的时间价值是等距放置的吗?如果是,您可以简单地通过以下方式插入速度

velocitiy_between = (displacement[1:]-displacement[:-1])/(time[1:]-time[:-1])

这些速度现在不是在您的数据点之间定义,而是在您的数据点之间定义。然后,您可以为每个数据点分配其左右近似值的平均值

velocity = (velocity_between[1:]+velocity_between[:-1])/2.0

通过这种方式,您可以获得所有内部数据点的速度数组,您可以将其与拟合结果进行比较。

如果您的时间值不是等距放置的,您仍然可以使用这种方法。但是您必须根据数据密度为您的错误分配额外的加权因子,以考虑到附近点之间的斜率可以更好地近似这一事实。邻居之间的平均也取决于到邻居的距离。

如果您需要有关第二种情况的更多详细信息,请发表评论。

于 2013-02-25T09:39:01.560 回答