TrajAcceleration | R Documentation |
Returns an approximation of the acceleration of a trajectory at each point using the second-order central finite differences.
TrajAcceleration(trj)
trj |
Trajectory whose acceleration is to be calculated. |
'trajr' trajectories, which consist of straight line displacements between sampled locations, do not contain enough information to correctly derive velocity or acceleration. Since we have to assume a constant velocity at each step, the first derivative is discontinuous. Acceleration, therefore, is zero during each step and infinite at each change of velocity. The approximation implemented by this function assumes that acceleration occurs over a period of time: half the duration of the previous step plus half the duration of the next step.
Vector of complex numbers. The modulus (Mod(a)
) is the
magnitude of the acceleration at each point, and the argument
(Arg(a)
) is the direction of the acceleration. The vector has an
attribute, trj
, with the trajectory as its value. The first and last
values will always be NA
, since acceleration cannot be estimated for
those points.
TrajVelocity
for calculating velocity,
TrajResampleTime
and TrajRediscretize
to
resample a trajectory to fixed time or length steps.
# A function to plot acceleration as arrows (scaled in length)
AccArrows <- function(acc, scale = .001, trj = attr(acc, "trj"), ...) {
graphics::arrows(trj$x, trj$y, trj$x + Re(acc) * scale, trj$y + Im(acc) * scale, ...)
}
# Generate and plot a random trajectory
set.seed(101)
trj <- TrajGenerate(30)
plot(trj)
# Calculate acceleration
acc <- TrajAcceleration(trj)
# Plot acceleration as red arrows at each point. They need to be scaled down to
# fit in the plot, and the arrowhead lengths need to be shortened to look good
AccArrows(acc, scale = .001, col = "red", length = .1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.