Global Errors when solving the Equation of Motion

RH10
Messages
6
Reaction score
0
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:
Physics news on Phys.org
RH10 said:
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
 
Thread 'Direction Fields and Isoclines'
I sketched the isoclines for $$ m=-1,0,1,2 $$. Since both $$ \frac{dy}{dx} $$ and $$ D_{y} \frac{dy}{dx} $$ are continuous on the square region R defined by $$ -4\leq x \leq 4, -4 \leq y \leq 4 $$ the existence and uniqueness theorem guarantees that if we pick a point in the interior that lies on an isocline there will be a unique differentiable function (solution) passing through that point. I understand that a solution exists but I unsure how to actually sketch it. For example, consider a...
Back
Top