# Runge-kutta formula

1. Jan 6, 2009

1. The problem statement, all variables and given/known data

Use the fourth order Runge-Kutta formula to advance the differential equation:
dy/dt = y with y(0)=1 forward one step h. That is find y(h).

2. Relevant equations

3. The attempt at a solution

The Runge-Kutta formula is:
x(i+1)=x(i)+h/6 [k(1)+2k(2)+2k(3)+k(4)]

where,
k(1)=f[x(i),t(i)]
k(2)=f[x(i)+1/2 hk(1), t(i)+1/2 h]
k(3)=f[x(i)+1/2 hk(2), t(i)+1/2h]
k(4)=f[x(i)+hk(3),t(i)+h]

I have no idea how to continue though, so any help would be great! thanks

2. Jan 6, 2009

### bsodmike

A first-order ODE is given as,

$$dy/dx = f(x,y)$$

this is the defintion. So when one states, $$f(x_i,y_i)$$, this simply means, evaluate the first-order derivative at $$x_i$$ and $$y_i$$.

This is how the method breaks down:

$$The general form of the RK4 algorithm is given as, \begin{split} k_{1}&=f(x_{i},y_{i})\\ k_{2}&=f(x_{i}+\dfrac{1}{2}h, y_{i}+\dfrac{1}{2}k_{1}h)\\ k_{3}&=f(x_{i}+\dfrac{1}{2}h,y_{i}+\dfrac{1}{2}k_{2}h)\\ k_{4}&=f(x_{i}+h,y_{i}+k_{3}h)\\ y_{i+1}&=y_{i}+\dfrac{1}{6}\cdot(k_{1}+2k_{2}+2k_{3}+k_{4})\cdot h \label{eq:} \end{split}$$

$$Simplified as eight equations, \begin{split} k_1&=f(x_i,y_i)\\ z_1&=y_i+\dfrac{1}{2}k_{1}h\\ k_2&=f(x_{i}+\dfrac{1}{2}h, z_1)\\ z_2&=y_i+\dfrac{1}{2}k_{2}h\\ k_3&=f(x_{i}+\dfrac{1}{2}h, z_2)\\ z_3&=y_i+k_{3}h\\ k_4&=f(x_{i}+h, z_3)\\ y_{i+1}&=y_i+\left(\dfrac{h\cdot(k_1+2(k_2+k_3)+ k_4)}{6}\right) \label{eq:} \end{split}$$

Say for example you are given, $$y'=(-y)ln(y),\;\;y(0)=0.5.$$

Hence,
$$f(x_0,y_0)=(-0.5)\cdot ln(0.5)$$

In this example, it only varied in terms of y. However, you could be faced with an ODE such as $$y'=4e^{0.8x}-0.5y$$, in which case you need to take care how you substitute in the 'x' value. For the $$x_i+\dfrac{1}{2}h$$ bits, you need to evaluate it at $$x_{i+1}=x_i+\dfrac{1}{2}h$$.

For example, if $$x_0=0$$ and h=0.5, then $$x_1=0+\dfrac{1}{2}(0.5)=0.25$$.

Hope this helps...

3. Jan 7, 2009

thankyou very much for that....i understand all of what you have said.

So i found for my equation that f[t(0),y(0)] = 1, since y'=y and y(0)=1

Im still slightly confused as to how to find y(h)?

4. Jan 7, 2009

How do i find what k(1) - k(4) is? Do i substitute anything in for h?

Also what are the value for t(i) and y(i)?

5. Jan 7, 2009

### bsodmike

You shouldn't jump to using RK4 if you don't understand the basics. Try using the Euler method (it's basically a first-order RK). You also need to know the stepsize 'h'. This is given with questions,

$$y_{i+1}=y_i+hf(x_i,y_i)$$

As for your question, y'=y, you can ignore the x or 'time' component as it were, as it only varies in y.

The first RK4 application would be, note $$y_0=y(0)=1$$,

$$k_1 = f(0, 0) =1$$
$$k_2 = y_0+0.5*k_1*h$$
$$k_3 = y_0+0.5*k_2*h$$
$$k_4 = y_0+k_3*h$$

Hence,
$$y_1=y_0+\left(\dfrac{h*(k_1+2(k_2+k_3)+k_4)}{6}\right)$$

For the next iteration, use $$y_1$$ to start off :)