Professional Documents
Culture Documents
Disusun Oleh :
HARY PRASETYO
I1413014
HENANTO PANDU D.
I1413015
IMAM SUPRIYATMA
I1413017
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
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
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)
(2.4)
f ' ( x i , y i )=
f f y
+
x y x
(2.5)
( fx + fy yx ) 2x
(2.6)
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
a1=1a2
p1=q 11=
1
2 a2
a2
a2
Nilai
Dalam penjelasan ini akan diberikan tiga buah metode yaitu Heun, Poligon dan Ralston. Ketiga
moetode ini hanya beda pada nilai
a2
nya saja.
a2
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 )
a2
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
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 )
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
x = 0 adalah y = 1
Penyelesaian
Langkah pertama dalam metode Runge-Kutta order 3 adalah menghitung
k 1 , k 2 , dan k 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('__________________________________________________________');
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
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
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('__________________________________________________________');
Jumlah n = 8.000000
Nilai dx = 0.500000
__________________________________________________________
| i | x[i] |
YE[i]
Y[i]
__________________________________________________________
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
__________________________________________________________
>>