# Global Errors when solving the Equation of Motion

1. Jun 4, 2012

### RH10

Hi All,
I’m implementing a code to solve the equation of motion using the 4-step Adams-Bashforth method.
Here’s my section of code that does this:

a=F/m;

upnew= up + delta *( (55/24)*a - (59/24)*am1 +(37/24)*am2 - (3/8)*am3 );
xnew=x + delta *( (55/24)*up - (59/24)*upm1 +(37/24)*upm2 - (3/8)*upm3);

am1=a;
am2=am1;
am3=am2;
upm1=up;
upm2=upm1;
upm3=upm2;

up=upnew;
x=xnew;

It seems to work; at least it produces sensible results which agree with the Euler forwards method. However, I read that the global error should be proportional to delta^4, but this code produces results that have errors proportional to delta. Why is this? Is there some quirk of using the method as a double integral reduces the accuracy? Or am I getting something wrong?

Last edited: Jun 4, 2012
2. Jun 4, 2012

### AlephZero

Assuming your programming language executes statements sequentially. that sets am1 = a, then am2 = a, then am3 = a. You are getting similar results to the Euler forwards method because your code is just a complicated way of doing the Euler forwards method!

The fix is to update things in the right order.
am3=am2;
am2=am1;
am1=a;
and similarly for the u's