MODUL VIII
Ada beberapa jenis metode runge kutta yang tergantung pada nilai n yang digunakan.
Untuk n=1 yang disebut runge kutta orde 1, persamaan (4.10) menjadi:
ϕ=a1 k 1=a1 f ( x i , y i )
Untuk a1=1 maka persamaan (4.9) menjadi:
y i+1 = y i+ f ( x i , y i ) Δ x
yang sama dengan metode Euler
Didalam metode Runge Kutta, setelah nilai n ditentukan, kemudian nilai a, p, dan q dicari
dengan menyamakan persamaan (4.19) dengan suku-suku dari deret Taylor.
∂f ∂f
f (xi + p1∆x, yi + q11k1∆x) = f (xi, yi) + p1 ∆x +∆ x +q 11k 1 + 0 (∆x2)
∂x ∂y
Bentuk di atas dan Persamaan (4.20.b) disubsitusikan ke dalam Persamaan (4.20.a)
sehingga menjadi:
∂f ∂f
yi+1 = yi + a1∆x f (xi, yi) + a2 ∆x f (xi, yi) + a2 p1 ∆x2 + a2q11 ∆x2 f (xi, yi) + 0 (∆x3)
∂x ∂x
atau
∂f ∂f
yi+1 = yi + [a1f (xi, yi) + a2 f (xi, yi)] ∆x + [a2 p1 2 + a2q11 f (xi, yi) ] ∆x2 + 0 (∆x3) (7.26)
∂x ∂x
Dengan membandingkan Persamaan (4.23) dan (4.24), dapat disimpulkan bahwa
kedua persamaan akan ekivalen apabila:
a1 + a2 = 1 (4.25.a)
1
a2 p1 = (4.25.b)
2
1
a2 q11 = (4.25.c)
2
Sistem persamaan diatas terdiri dari tiga persamaan mengandung empat bilangan
tak diketahui, sehingga tidak bisa diselesaikan. Untuk itu salah satu bilangan tak
diketahui ditetapkan, dan kemudian dicari ketiga bilangan yang lain. Dianggap bahwa
a2 ditetapkan, sehingga persamaan (4.20.a) sampai (4.20.c) dapat diselesaikan
dihasilkan :
a1 = 1- a2 (4.26.a)
1
p1 = q11 = (4.26.b)
2 a2
Karena nilai a2 dapat dipilih sembarang maka akan terdapat banyak metode Runge-
Kutta oder 2. Dalam sub bab ini akan diberikan tiga metode yang sering digunakan.
a. Metode Heun
Apabila a2 dianggap ½ maka Persamaan (4.26.a) dan (4.26.b) dapat diselesaikan dan
diperoleh:
1
a1 =
2
p1 = q11 = 1
c. Metode Ralston
Dengan memilih a2 = 2/3 akan menghasilkan kesalahan pemotongan minimum untuk
metode Runge-Kutta order 2. Dengan a2 = 2/3 didapat:
a1 = 1/3
p1 = q11 = ¾
Praktikum Matematika Teknik
Metode Runge Kutta 4
LABORATORIUM KOMPUTER TEKNIK KIMIA
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAWA TIMUR
Sekertariat: Giri Reka I, Jl. Raya Rungkut Madya Gunung Anyar, Surabaya, Jawa Timur - 60294
Homepage : www.labkomtk.blogspot.com E-mail : labkom.tk@gmail.com
sehingga:
1 2
yi+1 = yi + ( k1 + k2 ) ∆x (4.29 a)
3 3
dengan:
k1 = f (xi, yi) (4.29 b)
3 3
k2 = f (xi + ∆x , yi + k1 ∆x) (4.29 c)
4 4
Contoh 3
Selesaikan persamaan differensial berikut dengan metode Ralston!
dy
= -2x3 + 12x2 – 20x + 8,5
dx
Dari x = 0 sampai x =4 dengan menggunakan langkah ∆ x = 0,5. Kondisi awal pada
x = 0 adalah y = 1
Penyelesaian:
Langkah pertama adalah menghitung k1 dan k2 dengan menggunakan Persamaan
(4.29.b) dan (4.29.c)
k1 = f (xo, yo) = -2(0)3 + 12(0)2 – 20) + 8,5 = 8,5
3 3
k2 = f (xi + ∆x , yi + k1 ∆x) = f (0,375 ; 14,875)
4 4
= -2(0,375)3 + 12(0,375)2 – 20,375) + 8,5 = 2,58203125
Kemiringan rerata adalah:
1 2
φ= (8,5) + (2,58203125) = 4,5546875
3 3
Nilai y(0,5) dihitung dengan Persamaan (4.29.a)
y(0,5) = yo + φ ∆x
= 1 + 4,5546875(0,5) = 3,27734375
Tugas !
Buatlah program kesalahan metode Ralston.
oleh Karena itu 2 bilangan tidak diketahui harus ditetapkan untuk mendapatkan 6
bilangan tak diketahui lainnya. Hasil yang biasa digunakan adalah:
1
y i+1 = y i+ (k 1+ 4 k 2+ k 3) Δ x (4.30)
6
Dengan:
k 1=f ( x i , y i ) (a)
1 1
(
k 2=f xi + Δ x , y i+ Δ x k 1
2 2 ) (b)
k 3=f ( x i + Δ x , yi −Δ x k 1 +2 Δ x k 2) (c)
Contoh 4:
Selesaikan persamaan berikut dengan menggunakan metode Runge Kutta order 3:
dy
=−2 x3 +12 x 2−20 x+ 8,5
dx
dari x=0 sampai x=4 dengan menggunakan langkah Δ x=0.5 , kondisi awal pada x=0
dan y= 1
Penyelesaian:
Langkah pertama dalam metode runge kutta order 3 adalah menghitung k1, k2, dan k3
k 1=−2 ( 0 )3+ 12 ( 0 )2−20 ( 0 ) +8,5=8,5
k 2=−2 ( 0.25 )3+ 12 ( 0.25 )2 −20 ( 0.25 )+ 8,5=4,21875
k 3=−2 ( 0.5 )3 +12 ( 0.5 )2−20 ( 0.5 ) +8,5=1,25
Dengan persamaan (4.xx) menghitung nilai y(x):
1
y ( 0,5 )=1+ [ 6 ]
( 8,5+ 4 ( 4,21875 ) +1,25 ) 0,5 = 3,21875
Tugas !
Buatlah program kesalahan metode Runge Kutta order 3.
1
y i+1 = y i+ ( k 1+ 2k 2+2 k 3+ k 4 ) Δ x (4.31)
6
Dengan
k 1=f ( x i , y i ) (a)
1 1
( 2 2 )
k 2=f xi + Δ x , y i+ Δ x k 1 (b)
1 1
k =f ( x + Δ x , y + Δ x k )
3 i i 2 (c)
2 2
k 3=f ( x i + Δ x , yi Δ x k 3 ) (d)
Contoh 5:
Selesaikan persamaan berikut dengan menggunakan metode Runge Kutta order 4:
dy
=−2 x3 +12 x 2−20 x+ 8,5
dx
dari x=0 sampai x=4 menggunakan langkah Δ x=0.5, kondisi awal pada x=0 dan y= 1
Penyelesaian:
Langkah pertama dalam metode runge kutta order 3 adalah menghitung k1, k2, k3, dan k4
k 1=−2 ( 0 )3+ 12 ( 0 )2−20 ( 0 ) +8,5=8,5
k 2=−2 ( 0.25 )3+ 12 ( 0.25 )2 −20 ( 0.25 )+ 8,5=4,21875
k 3=−2 ( 0.25 )3 +12 ( 0.25 )2−20 ( 0.25 ) +8,5=4,21875
k 4=−2 ( 0.5 )3 +12 ( 0.5 )2−20 ( 0.5 ) +8,5=1,25
Dengan menggunakan persamaan (4.xx), hitung nilai y(x):
1
y ( 0,5 )=1+ [ 6 ]
( 8,5+2 ( 4,21875 ) +2 ( 4,21875 )+1,25 ) 0,5 = 3,21875
Contoh Program:
Pada Matlab:
clear all;
clc;
Praktikum Matematika Teknik
Metode Runge Kutta 7
LABORATORIUM KOMPUTER TEKNIK KIMIA
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAWA TIMUR
Sekertariat: Giri Reka I, Jl. Raya Rungkut Madya Gunung Anyar, Surabaya, Jawa Timur - 60294
Homepage : www.labkomtk.blogspot.com E-mail : labkom.tk@gmail.com
syms x;
syms y;
disp ('Program Metode Runge Kutta Orde-4');
f=input(‘masukan persamaan=’);
xa=input('masukkan nilai x=');
ya=input('masukkan nilai y=');
h=input('delta x=');
batas=input('batas x=');
disp('x y k1 k2 k3 k4');
u=xa;
for cam=xa:h:batas
k1= subs (f,{x,y},{xa,ya});
x2=xa+(1/2*h);
y2=ya+((1/2)*k1*h);
k2=subs(f,{x,y},{x2,y2});
y3=ya+((1/2)*k2*h);
k3=subs(f,{x,y},{x2,y3});
x4=xa+h;
y4=ya+(k3*h);
k4=subs(f,{x,y},{x4,y4});
yb=ya+((h/6)*(k1+(2*k2)+(2*k3)+k4));
xa=x4;
ya=yb;
disp([xa' ya' k1' k2' k3' k4]);
end;
Pada Pascal :
program metode_runge_kutta;
uses crt;
var
xa,ya,h,batas,u,k1,k2,k3,k4,x2,x3,x4,y2,y3,y4,yb:real;
function persamaan(x,y:real):real;
var pers:real;
begin
pers:=(-2*x*x*x)+(12*x*x)-(20*x)+8,5;
persamaan:=pers;
end;
begin
clrscr;
writeln('---------------------------------------------');
writeln(' PROGRAM METODE RUNGE KUTTA');
writeln('---------------------------------------------');
writeln('Selesaikan persamaan berikut : (-2x^3)+(12x^2)-(20x)
+8,5');
writeln('---------------------------------------------');
write('Masukkan Nilai x = ');readln(xa);
write('Masukkan Nilai y = ');readln(ya);
write('Delta x = ');readln(h);
write('Batas x = ');readln(batas);
writeln('---------------------------------------------');
writeln(' x y k1 k2 k3 k4');
writeln('---------------------------------------------');
Praktikum Matematika Teknik
Metode Runge Kutta 8
LABORATORIUM KOMPUTER TEKNIK KIMIA
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAWA TIMUR
Sekertariat: Giri Reka I, Jl. Raya Rungkut Madya Gunung Anyar, Surabaya, Jawa Timur - 60294
Homepage : www.labkomtk.blogspot.com E-mail : labkom.tk@gmail.com
xa:=xa;
repeat
xa:=xa;
k1:=persamaan(xa,ya);
x2:=xa+(1/2*h);
y2:=ya+((1/2)*k1*h);
k2:=persamaan(x2,y2);
x3:=xa+(1/2*h);
y3:=ya+((1/2)*k2*h);
k3:=persamaan(x3,y3);
x4:=xa+h;
y4:=ya+(k3*h);
k4:=persamaan(x4,y4);
yb:=ya+((h/6)*(k1+(2*k2)+(2*k3)+k4));
xa:=x4;
ya:=yb;
writeln(xa:5:2,ya:10:2,k1:10:2,k2:10:2,k3:10:2,k4:10:2);
until (xa=batas);
readln;
end.
Tugas !
Perhatikan algoritma berikut:
Daftar Pustaka