我希望计算方程的不定积分。
我通过可视化C程序将来自加速度计的数据输入到R中,并且从那里可以很容易地得出表示加速度曲线的等式。这一切都很好,但我也需要计算冲击速度。根据我对良好的高中时代的理解,我的加速曲线的不确定积分将得出速度的等式。
我知道用integrate()
函数进行数值积分很容易,有没有可以与无限积分相比的东西?
答案 0 :(得分:9)
library(Ryacas)
x <- Sym("x")
Integrate(sin(x), x)
给出
expression(-cos(x))
另一种方式:
yacas("Integrate(x)Sin(x)")
您可以找到函数参考here
答案 1 :(得分:1)
正如Ben所说,尝试使用Ryacas软件包来计算函数的反导数。但是你可能应该问自己,你是否真的想要生成一个连续函数,它只能在一开始就近似你的数据(拟合错误)。我坚持实际数据的数值整合。当然,请记住每个数据点的不确定性。
答案 2 :(得分: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")