You are on page 1of 21

Penyelesaian Persamaan Diferensial Biasa

Dengan Metode Runge-Kutta


Disusun Untuk Memenuhi Tugas Mata Kuliah
Metode Numerik

Disusun Oleh :
HARY PRASETYO

I1413014

HENANTO PANDU D.

I1413015

IMAM SUPRIYATMA

I1413017

JURUSAN TEKNIK MESIN FAKULTAS TEKNIK


UNIVERSITAS SEBELAS MARET
SURAKARTA

2014

BAB I
PENDAHULUAN
I.1 Metode Satu Langkah
Metode Runge-Kutta merupakan salah satu metode untuk menyelesaikan persamaan
diferensial biasa, dimana dalam penyelesaiannya masih sama dengan metode-metode
sebelumnya (Euler, Heun, dan Poligon) yaitu dengan menggunakan metode satu langkah.
y i+1= yi + x
Semua metode satu langkah dapat ditulis dalam bentuk umum diatas. Perbedaan dari
beberapa metode yang ada (Euler, Heun, Poligon, dan Runge-Kutta) adalah didalam menghitung
nilai kemiringan .
I.1 Metode Runge-Kutta
Pada metode-metode sebelumnya (Euler, Poligon, dan Heun) telah diketahui bahwa hasil
yang diperoleh kurang teliti. Hal tersebut dikarenakan dalam penyelesaiannya menggunakan
deret Taylor dengan suku yang sedikit atau dalam penggunaan intervalnya (x) masih terlalu
besar. Maka dari itu untuk mendapatkan hasil yang lebih teliti, metode-metode tersebut harus
menggunakan deret Taylor yang lebih banyak atau dengan menggunakan interval (x) yang
kecil. Tetapi dengan cara tersebut akan membutuhkan waktu turunan yang lebih tinggi dan waktu
perhitungan yang lebih panjang.
Metode Runge-Kutta memberikan ketelitian hasil yang lebih besar dan tidak memerlukan
turunan dari fungsi. Bentuk umum dari metode Runge-Kutta adalah sebagai berikut:
y i+1= yi + ( x i , y i , x) x
Rumus (x i , y i , x ) merupakan fungsi pertambahan dan dapat ditulis dalam bentuk:
=a1 k 1 +a2 k 2 +. . .. . .+an k n

dengan a adalah konstantan dan k adalah:

k 1=f (x i , y i )
k 2=f (x i + p1 x , y i +q11 k 1 x )
k 2=f (x i + p2 x , y i +q 21 k 1 x+ q22 k 2 x)
.

.
x i+ p n1 x , y i +q n1,1 k 1 x+ qn1,2 k 2 x+
k n=f
. .. . ..+ qn1,n1 k n1 x

Nilai

k1

k2

, dan

k3

saling berhubungan yang berurutan, sehingga dengan

hubungan inilan yang membuat metode Runge-Kutta lebih efisien.


Terdapat beberapa tipe metode Runge-Kutta tergantung nilai n yang digunakan. Dalam
penyelesaiannya apabila n sudah ditetapkan maka nilai a, p dan q dicari dengan persamaan
dibawah dengan suku-suku dari deret Taylor.
y i+1= yi + ( x i , y i , x) x

BAB II
METODE RUNGE-KUTTA ORDER DUA
Tipe metode Runge-Kutta order dua merupakan metode dengan jumlah n=2, sehingga
didapat persamaan:
y i+1= yi +(a1 k 1 +a2 k 2 ) x

(2.1)

Dengan:
k 1=f ( x i , y i )

(2.2)

k 2=f (x i + p1 x , y i +q11 k 1 x )

Nilai

a1

a2

p1

, dan

q11

y i+1= yi + f ( xi , y i ) x+ f ' ( x i , y i )

Nilai

f ' ( xi , yi )

(2.3)

selesaikan dengan deret Taylor order 2:


x
2

(2.4)

ditentukan dengan hukum berantai (chain rule)

f ' ( x i , y i )=

f f y
+
x y x

(2.5)

Subtitusi Persamaan (2.5) ke persamaan (2.4)


y i+1= yi + f ( xi , y i ) x+

( fx + fy yx ) 2x

(2.6)

Persamaan (2.3) dirubah kedalam bentuk deret Taylor, sehingga menjadi:


f ( x i + p1 x , y i+ q11 k 1 x ) =f ( x i , y i ) + p1 x

f
f
2
+q k x
+ 0( x )
x 11 1
y

(2.7)

Persamaan (2.2) dan (2.7) disubtitusikan kedalam persamaan (2.1), dan didapat persamaan (2.8):

y i+1= yi + [ a1 f ( x i , y i ) +a2 f ( x i , yi ) ] x+ a1 p1

f
f
+ a2 q11 f ( xi , y i )
x 2 +0( x3 )
x
x

Dengan membandingkan persamaan (2.6) dan (2.8) didapat tiga persamaan dengan empat
bilangan tak diketahui:
a1 +a 2=1

a2 p 1=

1
2

a2 q11 =

1
2

Dari ketiga persamaan diatas dianggap

a1=1a2

p1=q 11=

1
2 a2

a2

ditetapkan, sehingga menjadi:

a2

Nilai

dapat dipilih nilai sembarang, maka akan banyak metode penyelesaiannya.

Dalam penjelasan ini akan diberikan tiga buah metode yaitu Heun, Poligon dan Ralston. Ketiga
moetode ini hanya beda pada nilai

a2

nya saja.

II.1 Metode Runge-Kutta Order Dua Dengan Metode Heun


Pada metode ini nilai
a1=

a2

dianggap mempunyai nilai , sehingga diperoleh

1
2

p1=q 11=1
Kemudian nilai yang didapat dimasukkan kedalam rumus pokok (2.1), (2.2) dan (2.3) sehingga
didapat:
1
1
y i+1= yi +( k 1 + k ) x
2
2 2

k 1=f ( x i , y i )
k 2=f (x i + x , yi + k 1 x )

II.2 Metode Runge-Kutta Order Dua Dengan Metode Poligon


Pada metode ini nilai

a2

dianggap mempunyai nilai 1, sehingga diperoleh

a1=0
p1=q 11=

1
2

Kemudian nilai yang didapat dimasukkan kedalam rumus pokok (2.1), (2.2) dan (2.3) sehingga
didapat:

y i+1= yi + k 2 x
k 1=f ( x i , y i )
1
1
k 2=f (x i + x , y i + k 1 x )
2
2
II.3 Metode Runge-Kutta Order Dua Dengan Metode Ralston
Pada metode ini nilai

a2

dianggap mempunyai nilai 2/3, sehingga diperoleh

a1=1 /3
p1=q 11=3 /4
Kemudian nilai yang didapat dimasukkan kedalam rumus pokok (2.1), (2.2) dan (2.3) sehingga
didapat:
1
2
y i+1= yi +( k 1 + k ) x
3
3 2

k 1=f ( x i , y i )
3
3
k 2=f (x i + x , y i + k 1 x )
4
4
II.4 Aplikasi Metode Runge-Kutta Order Dua Dengan Metode Ralston
Persamaan deferensial yang harus diselesaikan:
dy
=2 x 3+ 12 x 220 x+8.5
dx
Dengan x= 0 sampai x=4 dengan menggunakan langkah x=0.5. Kondisi awal pada x=0 adalah
y=1.

Langkah pertama adalah menghitung k1 dan k2 dengan menggunakan persaman yang didapat
diatas:
k 1=f ( x i , y i )

f ( x 0 , y 0 ) =2(0)3+ 12(0)220 ( 0 ) +8.5=8.5


3
3
k 2=f x i + x , y i + k 1 x =f ( 0.375 ; 14.1875 )
4
4

2(0.375)3 +12(0.375)220 ( 0.375 )+ 8.5=2.58203125


Kemudian menghitung kemiringan rerata:
1
2
= ( 8.5 ) + ( 2.58203125 )=4.5546875
3
3
Nilai y pada kondisi x=0.5 dapat dihitung dengan:
y 0.5= y 0+ x
1+ 4.5546875 ( 0.5 )=3.27734375

Prosedur diatas diulangi untuk menghitung y berikutnya dengan mengganti y0 dengan y yang
baru. Perhitungan dilakukan sampai dengan batas akhir (x=4).

II.5 Diagram Alir Metode Runge-Kutta Order Dua Dengan Metode Ralston

II.5 Script Program Matlab Metode Runge-Kutta Order Dua Dengan Metode Ralston
clear;
clc
format long g
disp('PROGRAM PENYELESAIAN PDB DENGAN METODE RUNGE-KUTTA ORDER DUA');
disp('=====================================');
disp('dy/dx = -2x^3+12x^2-20x+8.5');
disp('y(0)=1');
disp('=====================================');
disp('Input Batasan !');
a=input('Batas Awal
: ');
b=input('Batas Akhir : ');
disp('=====================================');
dx=input ('Masukkan nilain delta x : ');
ye(1)=1;
y(1)=1;
X1=0;
n=(b-a)/dx;
fprintf('\nJumlah n = %f\n', n);
fprintf('Nilai dx = %f\n\n', dx);
disp('__________________________________________________________');
disp('| i | x[i] |
YE[i]
|
Y[i]
|
E
|');
disp('__________________________________________________________');
disp('
')
fprintf('|%3d |%6.2f |%12.7f
|%10.5f
|\n', 1, X1, ye(1), y(1));
for i=1 : n;
X=(i-1)*dx;
X1=X+dx;
X2=X+(3/4)*dx;
ye(i+1)=-0.5*X1^4+4.*X1^3-10.*X1^2+8.5*X1+1.; % penyelesaian eksak
k1=-2*(X^3)+12*(X^2)-20*(X)+8.5;
k2=-2*(X2^3)+12*(X2^2)-20*(X2)+8.5;
O=(1/3)*k1+(2/3)*k2;
% Kemiringan Rerata
fx=-2*X^3+12*X^2-20*X+8.5;
% kemiringan fungsi di
titik { ti, yi)
fx1= -2*X2^3+12*X2^2-20*X2+8.5;
% kemiringan fungsi di
titik i=1:n

y(i+1)=y(i)+O*dx;

% perkiraan nilai y, di
titik i=1
% persentase kesalahan
|%8.2f
|\n', i+1, X1,

e=((y(i+1)-ye(i+1))/ye(i+1))*100;
fprintf('|%3d |%6.2f |%12.7f
|%10.5f
ye(i+1), y(i+1), e);
end
disp('__________________________________________________________');

II.6 Hasil Program Matlab Metode Runge-Kutta Order Dua Dengan Metode Ralston
_______________________________________
| i | x[i] | YE[i] | Y[i] | E |
_______________________________________
| 1 | 0.00 | 1.0000000 | 1.00000 |
| 2 | 0.50 | 3.2187500 | 3.27734 | 1.82 |
| 3 | 1.00 | 3.0000000 | 3.10156 | 3.39 |
| 4 | 1.50 | 2.2187500 | 2.34766 | 5.81 |
| 5 | 2.00 | 2.0000000 | 2.14063 | 7.03 |
| 6 | 2.50 | 2.7187500 | 2.85547 | 5.03 |
| 7 | 3.00 | 4.0000000 | 4.11719 | 2.93 |
| 8 | 3.50 | 4.7187500 | 4.80078 | 1.74 |
| 9 | 4.00 | 3.0000000 | 3.03125 | 1.04 |
________________________________________

BAB III
METODE RUNGE-KUTTA ORDER 3
Metode Runge-Kutta order 3 diturunkan dengan cara yang sama dengan orde 2
untuk nilai n=3. Hasilnya adalah 6 persamaan dengan 8 bilangan tak diketahui. Oleh
karena itu 2 bilangan tak diketahui harus ditetapkan untuk mendapatkan 6 bilangan tak
diketahui lainnya. Hasil yang biasa digunakan :

1
yi 1 yi (k1 4k 2 k 3 )x
6
k1 f ( xi , yi )
1
1
x, yi xk1 )
2
2
k3 f ( xi x, yi xk1 2xk2 )
k 2 f ( xi

Dengan :

Contoh soal :
Selesaikan persamaan berikut dengan Runge-Kutta order 3.
dy
=2 x 3+ 12 x 220 x+8,5
dx
x 0,5
Dari x = 0 sampai x = 4 dengan menggunakan langkah

kondisi awal pada

x = 0 adalah y = 1
Penyelesaian
Langkah pertama dalam metode Runge-Kutta order 3 adalah menghitung

k 1 , k 2 , dan k 3

k 1=2 ( 0 ) +12 ( 0 ) 20( 0)+8,5=8,5


3

k 2=2 ( 0,25 ) +12 ( 0,25 ) 20 ( 0,25 ) +8,5=4,21875

k 3 =2 ( 0,5 )3 +12 ( 0,5 )220 ( 0,5 ) +8,5=1,25


Dengan menggunakan rumus Runge-Kutta order 3 maka nilai y(x) :
8,5+ 4 ( 4,21875 ) +1,25
1
0,5=3,21875
6
y ( 0,5 )=1+
Hitungan diteruskan untuk mendapatkan nilai y pada interval berikutnya.

Diagram Alir Metode Runge-Kutta Order 3

Script Program Matlab Metode Runge-Kutta Order 3

clear;
clc
format long g
disp('PROGRAM PENYELESAIAN PDB DENGAN METODE RUNGE-KUTTA ORDE 3');
disp('=====================================');
disp('dy/dx = -2x^3+12x^2-20x+8.5');
disp('y(0)=1');
disp('=====================================');
disp('Input Batasan !');
a=input('Batas Awal
: ');
b=input('Batas Akhir : ');
disp('=====================================');
dx=input ('Masukkan nilain delta x : ');
ye(1)=1;
y(1)=1;
X1=0;
n=(b-a)/dx;
fprintf('\nJumlah n = %f\n', n);
fprintf('Nilai dx = %f\n\n', dx);
disp('__________________________________________________________');
disp('| i | x[i] |
YE[i]
|
Y[i]
|
E
|');
disp('__________________________________________________________');
disp('
')
fprintf('|%3d |%6.2f |%12.7f
|%10.5f
|\n', 1, X1, ye(1), y(1));
for i=1 : n;
X=(i-1)*dx;
X1=X+dx;
ye(i+1)=-0.5*X1^4+4.*X1^3-10.*X1^2+8.5*X1+1.; % penyelesaian eksak
X2=X;
CK(1)=-2*(X2^3)+12*(X2^2)-20*X2+8.5;
X3=X2+0.25;
CK(2)=-2*(X3^3)+12*(X3^2)-20*X3+8.5;
X4=X3+0.25;
CK(3)=-2*(X4^3)+12*(X4^2)-20*X4+8.5;
PHI=(CK(1)+4*CK(2)+CK(3))/6;
y(i+1)=y(i)+PHI*dx;
% perkiraan nilai y, di
titik i=1
e=((y(i+1)-ye(i+1))/ye(i+1))*100;
% persentase kesalahan
fprintf('|%3d |%6.2f |%12.7f
|%10.5f
|%8.2f
|\n',i+1, X1, ye(i+1),
y(i+1), e);
end
disp('__________________________________________________________');

Hasil Program Matlab Metode Runge-Kutta Order 3


Jumlah n = 8.000000
Nilai dx = 0.500000
__________________________________________________________
| i | x[i] |

YE[i]

Y[i]

__________________________________________________________
| 1 | 0.00 | 1.0000000 | 1.00000 |
| 2 | 0.50 | 3.2187500 | 3.21875 | 0.00 |
| 3 | 1.00 | 3.0000000 | 3.00000 | 0.00 |
| 4 | 1.50 | 2.2187500 | 2.21875 | 0.00 |
| 5 | 2.00 | 2.0000000 | 2.00000 | 0.00 |
| 6 | 2.50 | 2.7187500 | 2.71875 | 0.00 |
| 7 | 3.00 | 4.0000000 | 4.00000 | 0.00 |
| 8 | 3.50 | 4.7187500 | 4.71875 | 0.00 |
| 9 | 4.00 | 3.0000000 | 3.00000 | 0.00 |

BAB IV
METODE RUNGE-KUTTA ORDER 4
Metode Runge-Kutta order 4 banyak digunakan karena mempunyai keteitian lebih tinggi.

yi 1 yi

1
(k1 2k 2 2k 3 k 4 )x
6

Dengan :
k1 f ( xi , yi )
1
1
x, yi xk1 )
2
2
1
1
k3 f ( xi x, yi xk2 )
2
2
k 4 f ( xi x, yi xk3 )
k 2 f ( xi

Contoh soal :
Selesaikan persamaan berikut dengan Runge-Kutta order 4.
dy
3
=2 x + 12 x20 x +8,5
dx
x 0,5
Dari x = 0 sampai x = 4 dengan menggunakan langkah

kondisi awal pada

x = 0 Adalah y = 1
Penyelesaian
Langkah

pertama

dalam

metode

k 1 , k 2 , k 3 dan k 4
k 1=2 ( 0 )2 +12 ( 0 )220( 0)+8,5=8,5

Runge-Kutta

order

adalah

menghitung

k 2=2 ( 0,25 ) +12 ( 0,25 ) 20 ( 0,25 ) +8,5=4,21875


k 3 =2 ( 0,25 ) +12 ( 0,25 ) 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 rumus Runge-Kutta order 4 maka nilai y(x) :
8,5+2 ( 4,21875 ) +2 ( 4,21875 ) +1,25
1
0,5=3,21875
6
y ( 0,5 )=1+
Hitungan diteruskan untuk mendapatkan nilai y pada interval berikutnya.

Diagram Alir Metode Runge-Kutta Order 4

Script Program Matlab Metode Runge-Kutta Order 4

clear;
clc
format long g
disp('PROGRAM PENYELESAIAN PDB DENGAN METODE RUNGE-KUTTA ORDE 4');
disp('=====================================');
disp('dy/dx = -2x^3+12x^2-20x+8.5');
disp('y(0)=1');
disp('=====================================');
disp('Input Batasan !');
a=input('Batas Awal
: ');
b=input('Batas Akhir : ');
disp('=====================================');
dx=input ('Masukkan nilain delta x : ');
ye(1)=1;
y(1)=1;
X1=0;
n=(b-a)/dx;
fprintf('\nJumlah n = %f\n', n);
fprintf('Nilai dx = %f\n\n', dx);
disp('__________________________________________________________');
disp('| i | x[i] |
YE[i]
|
Y[i]
|
E
|');
disp('__________________________________________________________');
disp('
')
fprintf('|%3d |%6.2f |%12.7f
|%10.5f
|\n', 1, X1, ye(1), y(1));
for i=1 : n;
X=(i-1)*dx;
X1=X+dx;
ye(i+1)=-0.5*X1^4+4.*X1^3-10.*X1^2+8.5*X1+1.; % penyelesaian eksak
X2=X;
CK(1)=-2*(X2^3)+12*(X2^2)-20*X2+8.5;
X3=X2+0.25;
CK(2)=-2*(X3^3)+12*(X3^2)-20*X3+8.5;
CK(3)=-2*(X3^3)+12*(X3^2)-20*X3+8.5;
X4=X3+0.25;
CK(4)=-2*(X4^3)+12*(X4^2)-20*X4+8.5;
PHI=(CK(1)+2*CK(2)+2*CK(3)+CK(4))/6;
y(i+1)=y(i)+PHI*dx;
% perkiraan nilai y, di
titik i=1
e=((y(i+1)-ye(i+1))/ye(i+1))*100;
% persentase kesalahan
fprintf('|%3d |%6.2f |%12.7f
|%10.5f
|%8.2f
|\n',i+1, X1, ye(i+1),
y(i+1), e);
end
disp('__________________________________________________________');

Hasil Program Matlab Metode Runge-Kutta Order 4

Jumlah n = 8.000000
Nilai dx = 0.500000

__________________________________________________________
| i | x[i] |

YE[i]

Y[i]

__________________________________________________________

| 1 | 0.00 | 1.0000000 | 1.00000 |


| 2 | 0.50 | 3.2187500 | 3.21875 |

0.00 |

| 3 | 1.00 | 3.0000000 | 3.00000 |

0.00 |

| 4 | 1.50 | 2.2187500 | 2.21875 |

0.00 |

| 5 | 2.00 | 2.0000000 | 2.00000 |

0.00 |

| 6 | 2.50 | 2.7187500 | 2.71875 |

0.00 |

| 7 | 3.00 | 4.0000000 | 4.00000 |

0.00 |

| 8 | 3.50 | 4.7187500 | 4.71875 |

0.00 |

| 9 | 4.00 | 3.0000000 | 3.00000 |

0.00 |

__________________________________________________________
>>

You might also like