Runge-kutta formula

  • Thread starter kmeado07
  • Start date
  • #1
40
0

Homework Statement



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).


Homework Equations





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
 

Answers and Replies

  • #2
82
0
A first-order ODE is given as,

[tex]dy/dx = f(x,y)[/tex]

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

This is how the method breaks down:

[tex]The general form of the RK4 algorithm is given as,
\begin{equation}\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}\end{equation}[/tex]

[tex]Simplified as eight equations,
\begin{equation}\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}\end{equation}
[/tex]

Say for example you are given, [tex]y'=(-y)ln(y),\;\;y(0)=0.5.[/tex]

Hence,
[tex]f(x_0,y_0)=(-0.5)\cdot ln(0.5)[/tex]

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

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

Hope this helps...
 
  • #3
40
0
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
40
0
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
82
0
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,

[tex]y_{i+1}=y_i+hf(x_i,y_i)[/tex]

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 [tex]y_0=y(0)=1[/tex],

[tex]k_1 = f(0, 0) =1[/tex]
[tex]k_2 = y_0+0.5*k_1*h[/tex]
[tex]k_3 = y_0+0.5*k_2*h[/tex]
[tex]k_4 = y_0+k_3*h[/tex]

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

For the next iteration, use [tex]y_1[/tex] to start off :)
 

Related Threads on Runge-kutta formula

  • Last Post
Replies
0
Views
2K
  • Last Post
Replies
1
Views
5K
  • Last Post
Replies
8
Views
2K
  • Last Post
Replies
2
Views
4K
  • Last Post
Replies
0
Views
1K
  • Last Post
Replies
8
Views
2K
  • Last Post
Replies
0
Views
10K
  • Last Post
Replies
2
Views
2K
  • Last Post
Replies
2
Views
2K
Replies
0
Views
9K
Top