2011-11-08 242 views
9

我期待計算方程的不定積分。R中的不定積分

我通過Visual C程序將加速度計的數據輸入到R中,並且從那裏可以很簡單地得到一個表示加速度曲線的公式。這一切都很好,但我也需要計算衝擊速度。根據我對高中時代的理解,加速曲線的不確定積分將產生速度方程。

我知道很容易與integrate()函數進行數值積分,是否有任何與不確定積分相當的東西?

+1

如果你的意思是一個*符號*不定積分,那麼沒有。 (但是有一些接口,例如Yacas [「又一個計算機代數系統」]可能會這樣做)另一方面,在我看來,所有的數值積分在某種意義上都是確定的(即得到一個答案你必須指定限制)。 –

回答

1

如果你提到的NA是指示沒有加速度輸入的信息,那麼它們應該被零代替。讓我們假設你有acc.vec的數據,並記錄在rec_per_sec速度的裝置:

acc.vec[is.na(ac.vec)] <- 0 
vel.vec <- cumsum(acc.vec)/recs_per_sec 

我不認爲構建一個最佳擬合曲線是要提高在這種情況下你的準確度。繪製速度與時間的關係:

plot(1:length(acc.vec)/recs_per_sec, vel.vec, 
     xlab="Seconds", ylab="Integrated Acceleration = Velocity") 
+0

感謝您的迴應!數據中沒有NA,來自加速度計的輸入始終是一個值,我從來沒有看到從我的緩衝區中出來的值爲0。感謝您的速度與時間提示!很棒!我幾乎已經放棄了,然後認爲身份證再回來一次。 – user1003131

9
library(Ryacas) 
x <- Sym("x") 
Integrate(sin(x), x) 

expression(-cos(x)) 

的另一種方法:

yacas("Integrate(x)Sin(x)") 

您可以找到函數參考here

+2

除了Ryacas,還有rSymPy包,它使用Python的SymPy作爲CAS。 – jthetzel

1

正如本說,嘗試Ryacas包計算的原函數一個函數。但是你可能應該問自己,你是否真的想要生成一個只能近似數據的連續函數(擬合誤差)。我會堅持數據整合你的實際數據。當然,請記住每個數據點的不確定性。

+0

當然,你可以適合一個平滑樣條(http://stackoverflow.com/questions/7953135/r-perfect-smoothing-curve)並將其整合... –

+0

謝謝大家的意見!我正在尋找不確定的積分,因爲我想繪製速度 - 時間圖(對於視覺目的...並不一定非常準確)。感謝Yacas的提示,但它似乎並不喜歡我傳遞給它的函數(NA由強制產生)。我想我可以整合我的加速功能,因爲一個點的速度等於從0到那個點的積分,但是爲了得到一個體面的曲線,它需要大量的迭代。 – user1003131