Register to reply 
RungeKutta Integration 
Share this thread: 
#1
Jan207, 10:36 PM

P: 5

Hi,
Could someone please show me how to solve the following simple problem using the RungeKutta (RK4) integration method? A car at t=0 has acceleration 10m/s/s, velocity 0m/s. How far would the car travel in 10 seconds? I know this can be solved using the equations of motion (giving an answer of 500m) but I'm trying to understand how to apply RungeKutta to this problem. Thanks for your attention. 


#2
Jan307, 12:01 AM

Mentor
P: 7,318

First you need to express your problem as a differential equation.
In your case that is: [tex] \ddot {x} = c [/tex] I think that you will find that this is a trivial system and not a good example of how to apply RK. 


#3
Jan307, 01:40 AM

P: 5

I understand the problem is a trivial one, especially to integrate the acceleration to find velocity, but would you mind showing me how to apply the RK4 technique to this simple problem so I can understand it better?



#4
Jan307, 06:03 AM

Mentor
P: 15,164

RungeKutta Integration
What have you done before asking us here for help? I googled "Runge Kutta" and got 1,040,000 hits. The first two at Mathworld and wikipedia are both wellwritten.
[tex]\vect x = \bmatrix r \\ v \endbmatrix [/tex] [tex]\vect x(0) &= \bmatrix 0 \\ 0 \endbmatrix [/tex] [tex]\dot {\vect x} &= \bmatrix v \\ 10 \endbmatrix [/tex] where [itex]r[/itex] is the position of the car and [itex]v[/itex] is its velocity. 


#5
Jan307, 07:03 AM

P: 5

Thanks for the tip. I have already done a google search and looked at both mathworld and wikipedia. Using the basic Euler integration method, I would simply integrate acceleration to get velocity at a particular instance of time and then use the value I obtain to further integrate and find position.
I guess what I'm after is an example of the steps for at least a few values of t so I can see how you get from acceleration to position and what needs to be plugged in where (some of the notation is slightly confusing). If you would be so kind as to perform the rungekutta technique for t=1 and t=2 to find both the velocity and position at those points, I would be very grateful for the assistance. Thanks. 


#6
Jan307, 07:49 AM

Math
Emeritus
Sci Advisor
Thanks
PF Gold
P: 39,533

If you did a google search then you surely must have seen the formula:
xn+1 = xn + h⁄6 (a + 2 b + 2 c + d) where a = f (tn, xn) b = f (tn + h⁄2, xn + h⁄2 a) c = f (tn + h⁄2, xn + h⁄2 b) d = f (tn + h, xn + h c) for the 4th order RungeKutta method. As Integral said, you need to convert your second order equation into a system of two first order equations: If you let v= x' then x"= v'= c so your two equations are x'= v and v'= c. Now do two parallel RungeKutta Calculations. The "f" for x'= v is f(t,x,v)= v and for v'= c f(t,x,v)= c, a constant. Assuming that your initial values are x(0)= 0 and v(0)= 0 then, again, for the equation x'= v a_{x} = f (tn, xn, vn)= f(0,0,0)= 0 while for v'= c, a_{v}= f(0,0,0)= c so b_{x} = f (tn + h⁄2, xn + h⁄2 a_{x}, vn+ h/2 a_{v})= 0+ hc/2= hc/2 and b_{v}= f(tn+ h/2, xn+ h/2 a_{x},vn+h/2 a_{v})= c c_{x} = f (tn + h⁄2, xn + h⁄2 b_{x},vn+ h/2 b_{v})= 0+ h/2 (c)= hc/2 and c_{v}= c d_{x} = f (tn + h, xn + h c_{x},vn+ h c_{v}) = hc/3 and d_{v}= c again. Then x_{1}= x(h)= 0 + h⁄6 (0 + 2 hc/2 + 2 hc/2 + hc/2)= 5h^{2}c/12 and v_{1}= v(h)= h/6(c+ 2c+ 2c+ c)= hc. 


#7
Jan307, 08:07 AM

Mentor
P: 15,164

In this case (and in many problems), the state time derivative does not depend
directly on time: [tex]f(t,x) = \dot {\vect x}(t) = \bmatrix v(t) \\ 10 \endbmatrix [/tex] Taking your simple problem from t=0 to t=1 ([itex]h = \Delta t = 1[/itex]), [tex]\vect x_0 = \bmatrix 0 \\ 0 \endbmatrix [/tex] [tex]\vect k_1 = f(0,\vect x_0) = \bmatrix 0 \\ 10 \endbmatrix [/tex] [tex]\vect x_1 = \vect x_0 + \frac{\Delta t}{2}\vect k_1 = \bmatrix 0 \\ 5 \endbmatrix [/tex] [tex]\vect k_2 = f(1/2,\vect x_1) = \bmatrix 5 \\ 10 \endbmatrix [/tex] [tex]\vect x_2 = \vect x_0 + \frac{\Delta t}{2}\vect k_2 = \bmatrix 2.5 \\ 5 \endbmatrix [/tex] [tex]\vect k_3 = f(1/2,\vect x_2) = \bmatrix 5 \\ 10 \endbmatrix [/tex] [tex]\vect x_3 = \vect x_0 + \Delta t\vect k_3 = \bmatrix 5 \\ 10 \endbmatrix [/tex] [tex]\vect k_4 = f(1,\vect x_3) = \bmatrix 10 \\ 10 \endbmatrix [/tex] [tex]\vect x(1) = \vect x(0) + \frac{\Delta t}6 (\vect k_1 + 2 \vect k_2 + 2 \vect k_3 + \vect k_4) = \bmatrix 0 \\ 0 \endbmatrix + \frac 1 6 \left(\bmatrix 0 \\ 10 \endbmatrix + 2 \bmatrix 5 \\ 10 \endbmatrix + 2 \bmatrix 5 \\ 10 \endbmatrix + \bmatrix 10 \\ 10 \endbmatrix\right) = \bmatrix 5 \\ 10 \endbmatrix [/tex] 


Register to reply 
Related Discussions  
Runge Kutta Pendulum  Calculus  5  
RungeKutta in C++  Programming & Computer Science  5  
Runge Kutta method help  Advanced Physics Homework  4  
Runge kutta method  Calculus & Beyond Homework  1  
Runge Kutta Method  Differential Equations  1 