从r中的固定点零计算速度

时间:2019-02-16 12:25:53

标签: r physics

我正在尝试使用第一个值固定为0的数据帧中的加速度来计算R中的速度。我想使用 v = u + at 从{ {1}},其中 t 是常数0.002。初始数据帧如下所示:

velocity[2:nrow(trial.data)]

我尝试使用第二行中的滞后,但这给出的值为零,第3行中的值正确,而后面的其他值也不正确。

trial.data <- data.table("acceleration" = sample(-5:5,5), "velocity" = c(0))

     acceleration velocity
 1         0        0
 2         5        0
 3        -1        0
 4         3        0
 5         4        0

1 个答案:

答案 0 :(得分:0)

速度是累积加速度,因此请使用cumsum

trial.data <- data.table("acceleration" = c(0,5,-1,3,4))
u <- 0 #starting velocity
velocity <- c(u,u+cumsum(trial.data$acceleration)*0.002)
trial.data$velocity <- velocity[-length(velocity)]

输出:

> trial.data
   acceleration velocity
1:            0    0.000
2:            5    0.000
3:           -1    0.010
4:            3    0.008
5:            4    0.014

请注意,速度矢量具有最后一个元素(恰好是0.022),在将其读入数据表时会被忽略,因为否则列的长度将不相等。上面的代码以u = 0开头,但是u可以更改为任何其他起始速度,并且该代码可以按预期工作。