I am doing a lab experiment that works as follows.

An object moves along the $x$ axis with an initial acceleration and then moves with a pretty constant velocity that may slightly vary within $20\%$ (it is a biological object). The lab computer measures time and positions of the object on the $x$ axis every $10\; ms$ or so. As a result, I am getting a table of values time/position. I need to find the average acceleration of the object.

What is the most accurate way to do this?

As the instant speed values of the object vary I am afraid to an incorrect result if I simply calculate the average acceleration as $\large{\frac{\Delta v}{\Delta t}}$.

Should I use some techniques to smooth/average results before calculations?

  • $\begingroup$ Increase the number of trials. I mean increase the no. of intervals upon which you divide the time interval $\endgroup$
    – UKH
    May 16, 2016 at 4:25
  • $\begingroup$ Does the object start from rest? How are calculating the final instantaneous velocity (I assume you're trying to get the slope of the tangent of the x vs t curve at the final time?) $\endgroup$ May 16, 2016 at 4:33
  • $\begingroup$ The best mechanism I can think of is to convert your data to a velocity/time, by taking ($v_i = \frac{x_{i+1} - x_i}{t_{i+1} -t_i}, t_i$) and then take a linear fit for your data. The slope is the average acceleration. This assumes a relatively uniform accelerated motion $\endgroup$
    – Joafigue
    May 16, 2016 at 5:44
  • 1
    $\begingroup$ I use cubic splines for the derivatives of discrete values. $\endgroup$ May 16, 2016 at 17:32
  • $\begingroup$ What programming environment do you have to process the data? $\endgroup$ May 16, 2016 at 17:39

2 Answers 2


During the acceleration phase the object's movement can be modeled with the quadratic curve $$x=x_0 + v_0t+\frac{1}{2}at^2 \qquad\text{where } x_0 \text{ is the initial position, and }v_0 \text{ is the initial velocity}$$ During the constant velocity phase, the object's movement can be modeled with the linear equation $$x=x_1 + v_1(t-t_1)$$ where $x_1$, $v_1$, and $t_1$ are the position, velocity, and time at the end of the acceleration phase.

The graph of position versus time will be similar to the image below. The red portion of the curve is the acceleration phase and the blue is the constant velocity phase.

enter image description here

So now you just need to fit your data to the curve. The parameters you can vary are

  • $x_0$ the initial position
  • $v_0$ the initial velocity
  • $a$ the acceleration
  • $t_1$ the time at the end of the acceleration phase

Derived quantities are

  • $x_1$ this is the value of $x$ at time $t_1$, computed using the first equation
  • $v_1$ this is $v_0 + a t_1$

To find the best fit, you need to write a computer program that tries all reasonable values for $x_0$, $v_0$, $a$, and $t_1$. For each set of parameters, compute the squared-error. Find the parameters that yield the least squared-error, and the value of $a$ in those parameters is the acceleration that you seek.

Pseudo-code for computing the squared-error for a single set of parameters:

total = 0
for ( each t )
    if ( t < t1 )
        x = x0 + v0*t + 0.5*a*t*t
        x = x1 + v1*(t-t1)

    error = actual_measured_x(t) - x

    total += error * error

The average value of acceleration should just depend on the initial and final velocity and the time interval between them. Since the average value of a function over the interval a to b is the integral of the function from a to b divided by (b-a), and since the integral of acceleration gives you velocity then if the limits are $t_1$ and $t_2$ the average velocity would reduce to simply: $$a_{avg}=\frac{v(t_2)-v(t_1)}{t_2-t_1}$$

So, if you can only measure position and time then perhaps your best bet would be to measure 2 points very close to each other at the beginning and approximate the initial velocity which would be your $v(t_1)$, and then 2 more points close together at the very end to approximate final velocity $v(t_2)$.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.