我目前適合的線性函數,以便制定出一個粒子的速度拉開距離時間圖...將線性函數擬合到一組數據後,如何才能找到函數梯度上的誤差?
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
分配給它的平均剩下的每個數據點和右逼近這一點,你獲得速度的數組,你可以比較你適合的成果在內的所有數據點。
如果您的時間值沒有等距離放置,您仍然可以使用此方法。但是,您必須根據數據密度爲錯誤分配額外的權重因子,以考慮附近點之間的斜率更接近的事實。此外,鄰居之間的平均值取決於到鄰居的距離。
如果您需要關於第二種情況的更多詳細信息,請留下評論。
這看起來像它會工作。在文檔中它說'估算的標準誤差'。這是否意味着梯度或截距的標準誤差? – user1696811 2013-02-24 23:34:46
對不起,亂碼我的結局。這是整個擬合的標準誤差,所以兩者的誤差('位移=梯度*時間+截距')作爲位移是兩者的函數。 – danodonovan 2013-02-24 23:48:12