簡體   English   中英

Java中的數值微分和積分

[英]numerical differentiation and integration in Java

這有點過分了。
假設我以固定的速率(比如每秒一次)對信號進行采樣。
是否有數學Java庫我可以用來從采樣數據中計算/提取以下指標?
1)信號的變化率
2)在X秒/分鍾時間內對信號值進行外推/預測
謝謝

變化率只是最后兩點的斜率,你不需要一個庫。

你要求的'預測'沒有嚴格定義,所以我只能猜測你所追求的是什么。 有許多完美有效的方法可以做到這一點,從簡單的線性外推(即使用最后兩點的斜率繪制一條線,無論你想要多長時間),再到卡爾曼濾波器

OpenCV具有應用卡爾曼濾波器的例程,雖然它是用C語言編寫的。有一些興趣將它與Processing一起使用,所以你可能會按照本指南運氣:

http://ubaa.net/shared/processing/opencv/

我並不是要打敗死馬,但是如此多的問題,如果你提供更多關於你想要做什么的細節以獲得更好的答案可能會有所幫助。 希望這可以幫助!

1)信號的變化率

您可以通過差分或進行多項式擬合和微分來輕松計算信號相對於時間的變化率。 您可能還想考慮某種時間平均,因為差異往往使函數“更加跳躍”,因為連續性比計算它的函數小一個數量級。

2)在X秒/分鍾時間內對信號值進行外推/預測

一旦你得到第一部分的答案,推斷是一件容易的事。 請注意 - 外推總是一件危險的事情,特別是如果衍生品在時間上迅速變化的話。 某種平滑,平均或過濾是你的朋友。

另一種方法可能是采用FFT並對結果進行逐項區分。

如果你需要一些方程式,你可以看一下

面向對象的Didier Besset數值方法實現。 http://www.amazon.com/Object-Oriented-Implementation-Numerical-Methods-Introduction/dp/1558606793/ref=sr_1_1?ie=UTF8&s=books&qid=1257821447&sr=8-1

這主要是針對你的第二部分,因為根據你想要預測的方式,你可能需要各種方程來獲得更好的想法,如果你想要做到最合適,那么擴展。

對於第一部分,我認為已經充分處理,確定斜率。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM