Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Global Errors when solving the Equation of Motion

  1. Jun 4, 2012 #1
    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,
     
    Last edited: Jun 4, 2012
  2. jcsd
  3. Jun 4, 2012 #2

    AlephZero

    User Avatar
    Science Advisor
    Homework Helper

    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
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Similar Discussions: Global Errors when solving the Equation of Motion
Loading...