Java中的数值微分与积分

Java中的数值微分与积分,java,math,Java,Math,这有点长。 假设我以固定速率(比如每秒一次)对信号进行采样。 是否有数学Java库可用于从采样数据计算/提取以下指标? 1) 信号的变化率 2) 信号值在X秒/分钟时间内的外推/预测 谢谢变化率只是最后两个点的斜率,你不需要图书馆 你要求的“预测”没有严格定义,所以我只能猜测你想要什么。有许多非常有效的方法可以做到这一点,从简单的线性外推法(即,使用最后两点的斜率画一条线,不管你想预测多长),到一个简单的线性外推法 OpenCV有应用卡尔曼滤波器的例程,尽管它是用C编写的。在处理过程中使用它会引

这有点长。
假设我以固定速率(比如每秒一次)对信号进行采样。
是否有数学Java库可用于从采样数据计算/提取以下指标?
1) 信号的变化率
2) 信号值在X秒/分钟时间内的外推/预测

谢谢

变化率只是最后两个点的斜率,你不需要图书馆

你要求的“预测”没有严格定义,所以我只能猜测你想要什么。有许多非常有效的方法可以做到这一点,从简单的线性外推法(即,使用最后两点的斜率画一条线,不管你想预测多长),到一个简单的线性外推法

OpenCV有应用卡尔曼滤波器的例程,尽管它是用C编写的。在处理过程中使用它会引起一些兴趣,因此您可能会幸运地遵循以下指南:


我并不是说要打败一匹死马,但就像许多问题一样,如果你能提供更多关于你试图做什么的细节,以获得更好的答案,这可能会有所帮助。希望这有帮助

变化率只是最后两个点的斜率,不需要库

你要求的“预测”没有严格定义,所以我只能猜测你想要什么。有许多非常有效的方法可以做到这一点,从简单的线性外推法(即,使用最后两点的斜率画一条线,不管你想预测多长),到一个简单的线性外推法

OpenCV有应用卡尔曼滤波器的例程,尽管它是用C编写的。在处理过程中使用它会引起一些兴趣,因此您可能会幸运地遵循以下指南:

我并不是说要打败一匹死马,但就像许多问题一样,如果你能提供更多关于你试图做什么的细节,以获得更好的答案,这可能会有所帮助。希望这有帮助

1) 信号的变化率

通过差分或多项式拟合和微分,可以轻松计算信号随时间的变化率。您可能还想考虑某种时间平均,因为微分往往会使函数“跳跃”,因为连续性比计算它的函数少一个阶

2) 信号值在X秒/分钟时间内的外推/预测

一旦你对第一部分有了答案,就很容易推断了。只要小心——外推总是一件危险的事情,特别是当导数在时间上快速变化时。某种平滑、平均或过滤是你的朋友

另一种方法可能是进行FFT并对结果进行逐项微分

1) 信号的变化率

通过差分或多项式拟合和微分,可以轻松计算信号随时间的变化率。您可能还想考虑某种时间平均,因为微分往往会使函数“跳跃”,因为连续性比计算它的函数少一个阶

2) 信号值在X秒/分钟时间内的外推/预测

一旦你对第一部分有了答案,就很容易推断了。只要小心——外推总是一件危险的事情,特别是当导数在时间上快速变化时。某种平滑、平均或过滤是你的朋友


另一种方法可能是进行FFT并对结果进行逐项微分。

如果需要一些方程,可以查看

数值方法的面向对象实现 迪迪埃·贝塞特。

这主要是针对你的第二部分,因为,根据你想要预测的方式,你可能需要各种方程来获得更好的想法,如果你试图做一个最佳拟合,那么扩展


对于第一部分,我认为已经足够处理了,确定斜率。

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

数值方法的面向对象实现 迪迪埃·贝塞特。

这主要是针对你的第二部分,因为,根据你想要预测的方式,你可能需要各种方程来获得更好的想法,如果你试图做一个最佳拟合,那么扩展

对于第一部分,我认为已经足够处理了,确定斜率