# Global Errors when solving the Equation of Motion

by RH10
Tags: equation, errors, global, motion, solving
 P: 6 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? Thanks in advance,
Engineering
Thanks
P: 6,073
 Quote by RH10 am1=a; am2=am1; am3=am2;
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

 Related Discussions Introductory Physics Homework 1 Special & General Relativity 23 Introductory Physics Homework 3 Quantum Physics 7 General Physics 3