Archived

This topic is now archived and is closed to further replies.

uutee

"Modified" Euler and higher order methods?

Recommended Posts

Hi, the classical Euler formula for a second order ODE is: x(n+1) = x(n) + v(n)*h v(n+1) = v(n) + a(n)*h A much more stable approximation is the "modified" Euler formula: x(n+1) = x(n) + v(n+1)*h v(n+1) = v(n) + a(n)*h In a sense it''s "half-implicit", because the change in position is taken from the *new* velocity. Some researchers have reported even 10 times bigger time steps in cloth simulation using this modified formula. But does anyone know how this kind of "half-implicity" can be applied to methods of higher order, ie. RK2 (midpoint method) and RK4? Thanks in advance. - Mikko Kauppila

Share this post


Link to post
Share on other sites
quote:
Original post by uutee

But does anyone know how this kind of "half-implicity" can be applied to methods of higher order, ie. RK2 (midpoint method) and RK4?


It seems like you should be able to extend RK logically with this method. RK takes several Euler steps, and averages them. So, for each Euler step, use this method.

Share this post


Link to post
Share on other sites
quote:
Original post by uutee
A much more stable approximation is the "modified" Euler formula:

x(n+1) = x(n) + v(n+1)*h
v(n+1) = v(n) + a(n)*h



http://www.heliosat3.de/e-learning/computational-physics/week2b.pdf calls this the Backwards Euler method (pg. 5).

http://newton.swarthmore.edu/courses/phys50_Lab_2002/Lab11_ODE_II.pdf
refers to the Euler-Cromer method, which uses x(n+1) to determine v(n+1) but uses v(n) to determine x(n+1) like standard Euler.

As for the question, I may be wrong, but I don''t think this modification is appropriate/possible for Runge Kutta methods. RK schemes already take several estimates of accelerations/velocities at various times during the time step (RK4 uses one at start, one at end and two in the middle) and use a weighted average to determine the final result. This weighted average is chosen such that the lower order error terms in each estimate cancel eachother out, resulting in a high order (better) method.

If you look at page 11-9 of the 2nd link I gave, you''ll see fully written out forms of the RK4 method for two coupled equations. Since both sets of estimates involve recalculating the derivatives using estimates of the other, I don''t see how you could figure out the ''final'' value of one variable for use in determining the other without having to recalculate all of the estimates for one of the variables. Even if you did do this, I don''t think it would be any better than the result from the algorithm as it is.

I also think it''s ominous that nobody seems to mention that this is a reasonable thing to do...

Share this post


Link to post
Share on other sites