使用InterpolatedUnivariateSpline预测加速度

时间:2019-06-11 01:15:53

标签: python numeric numerical-methods differential-equations differentiation

我想计算在键盘上(即在按下的键上)打字的加速度。我正在使用以下方法计算加速度:

def acceleration(x, y, timestamps):
    touch_length = (x.diff() ** 2).add(y.diff() ** 2) ** (0.5)
    touch_length = list(accumulate(touch_length.iloc[1:]))
    time_diff = timestamps.iloc[1:].reset_index(drop=True)
    spl = InterpolatedUnivariateSpline(time_diff, touch_length, k=3).derivative(n=2) # Second derivative
    pred = np.abs(spl(time_diff))
    pred = pred[::-1]
    return pred

该方法的输入是(x,y)位置以及作为熊猫系列的被按下键的时间戳。

我现在看到的是,当我添加更多值InterpolatedUnivariateSpline时会返回不同的结果,这意味着我要应用多少个值InterpolatedUnivariateSpline似乎很重要。真的吗?如果是,那么输入应该多大?

例如,当我对5个值(即x,y和长度均为5的时间戳)应用InterpolatedUnivariateSpline时,与对10个值应用InterpolatedUnivariateSpline时相比,前三个值的预测加速度有所不同。 / p>

第二,当我在timestamps数组中有很大的差距(归因于打字中的长时间停顿)时,这会影响InterpolatedUnivariateSpline中的所有预测加速度还是仅影响此长时间停顿期间预测的加速度?

0 个答案:

没有答案