Sie sind auf Seite 1von 5

Ryan Sullenberger

2 May 2007
ME102
Runge-Kutta Methods
Fourth-Order RK Method

25.8 : Solve the following problem with the fourth-order RK method where y(0) = 4 and y`(0) = 0.
Solve from x = 0 to 5 with h = 0.5. Plot the results.

DiffEQ and Initial Conditions:

2
d  d y  + 8⋅ y = 0
y + 0.6⋅ 
2 
dx  dx 

d
y = y1
dx

2
d d
y = −0.6 y − 8y = −0.6y 1 − 8y 0
2 dx
dx

d
y( 0) = 4 y(0) = 0
dx

System of first order ODE's and IC's:

4  Y 
Y0 :=   D( x , Y) :=  1 
0  −0.6⋅ Y1 − 8⋅ Y0 
 

4th-order RK solution:

N := 100

xY := rkfixed ( Y0 , 0 , 5 , N , D) (
xY = x Y
0
Y
1 )
0 1 2
0 0 4 0
1 0.05 3.96 -1.571
2 0.1 3.844 -3.065
3 0.15 3.656 -4.454
4 0.2 3.401 -5.714
5 0.25 3.087 -6.825
6 0.3 2.721 -7.769
〈0〉
xY = 7 0.35 2.313 -8.532 X := xY
8 0.4 1.871 -9.105
〈1〉
9 0.45 1.406 -9.482 S1 := xY
10 0.5 0.926 -9.661
11 0.55 0.443 -9.644 〈2〉
S2 := xY
12 0.6 -0.035 -9.439
13 0.65 -0.498 -9.054
14 0.7 -0.938 -8.502
15 0.75 -1.346 ...

Graphed solution:

10

S1
0
S2

−5

− 10
0 1 2 3 4 5
X
Solving the ODE by writing a program that engages fourth-order RK method:

h := 0.5 N := 10

f1( z) := z f2( y , z) := −0.6⋅ z − 8 ⋅ y

( x y z ) := y ←4
0
z ←0
0
x ←0
0
for i ∈ 0 .. N − 1
x ← (i + 1)⋅ h
i+ 1

( i)
k11 ← f1 z

k12 ← f2( y , z )
i i
1
y_new ← y + ⋅ k11 ⋅ h
i 2
1
z_new ← z + ⋅ k12 ⋅ h
i 2
k21 ← f1( z_new)
k22 ← f2( y_new , z_new)
1
y_new ← y + ⋅ k21 ⋅ h
i 2
1
z_new ← z + ⋅ k22 ⋅ h
i 2
k31 ← f1( z_new)
k32 ← f2( y_new , z_new)
y_new ← y + k31 ⋅ h
i
z_new ← z + k32 ⋅ h
i
k41 ← f1( z_new)
k42 ← f2( y_new , z_new)
1
y ←y + ⋅ ( k11 + 2 ⋅ k21 + 2 ⋅ k31 + k41 ) ⋅ h
i+ 1 i 6
1
z ←z + ⋅ ( k12 + 2 ⋅ k22 + 2 ⋅ k32 + k42 ) ⋅ h
i+ 1 i 6
(x y z )
Programs solutions:

0 0 0
0 0 0 4 0 0
1 0.5 1 1.037 1 -9.289
2 1 2 -2.428 2 -3.197
3 1.5 3 -1.557 3 5.365
4 2 4 1.154 4 4.072
x= y= z=
5 2.5 5 1.481 5 -2.333
6 3 6 -0.293 6 -3.638
7 3.5 7 -1.132 7 0.372
8 4 8 -0.185 8 2.66
9 4.5 9 0.724 9 0.656
10 5 10 0.378 10 -1.626

Compare to MathCAD's
Programs solutions graphed:
rkfixed solutions:

10 10

5 y 5

y z
0 S1 0
z
S2
−5 −5

− 10 − 10
0 1 2 3 4 5 0 1 2 3 4 5
x x, x, X, X

Das könnte Ihnen auch gefallen