Upload
aip-pradipta-farhan
View
85
Download
6
Embed Size (px)
DESCRIPTION
Metode Numerik Runge Kutta
Citation preview
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
SURAKARTA2014
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= y i+Φ∆ 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= y i+Φ(x i , y i ,∆ x )∆ x
Rumus Φ (x i , y i , ∆ x) merupakan fungsi pertambahan dan dapat ditulis dalam bentuk:
Φ=a1k1+a2 k2+ .. . . ..+an kn
dengan a adalah konstantan dan k adalah:
k 1=f (x i , y i)
k 2=f ( xi+ p1 ∆ x , y i+q11 k1 ∆ x)
k 2=f ( xi+ p2 ∆ x , y i+q21k 1∆ x+q22k 2∆ x )
.
.
k n=f ¿
. . .. . .+qn−1, n−1 kn−1 ∆ x ¿
Nilai k 1, k 2, dan k 3 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= y i+Φ(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= y i+(a1k 1+a2 k2)∆ x (2.1)
Dengan:
k 1=f (x i , y i) (2.2)
k 2=f ( xi+ p1 ∆ x , y i+q11 k1 ∆ x) (2.3)
Nilai a1, a2, p1, dan q11 selesaikan dengan deret Taylor order 2:
y i+1= y i+ f ( x i , y i ) ∆ x+ f ' ( x i , y i )∆ x2
(2.4)
Nilai f ' ( x i , y i ) ditentukan dengan hukum berantai (chain rule)
f ' ( x i , y i )=∂ f∂ x
+ ∂ f∂ y
∂ y∂ x
(2.5)
Subtitusi Persamaan (2.5) ke persamaan (2.4)
y i+1= y i+ f ( x i , y i ) ∆ x+( ∂ f∂ x
+ ∂ f∂ y
∂ y∂ x ) ∆ x
2 (2.6)
Persamaan (2.3) dirubah kedalam bentuk deret Taylor, sehingga menjadi:
f ( x i+ p1 ∆ x , y i+q11 k1 ∆ x )=f ( xi , y i )+ p1 ∆ x∂ f∂ x
+q11 k1 ∆ x∂ f∂ y
+0 (∆ x2) (2.7)
Persamaan (2.2) dan (2.7) disubtitusikan kedalam persamaan (2.1), dan didapat persamaan (2.8):
y i+1= y i+ [a1 f ( x i , y i )+a2 f ( x i , y i ) ] ∆ x+[a1 p1∂ f∂ x
+a2 q11 f ( xi , y i )∂ f∂ x ]∆ x2+0 (∆ x3)
Dengan membandingkan persamaan (2.6) dan (2.8) didapat tiga persamaan dengan empat
bilangan tak diketahui:
a1+a2=1
a2 p1=12
a2q11=12
Dari ketiga persamaan diatas dianggap a2 ditetapkan, sehingga menjadi:
a1=1−a2 p1=q11=1
2 a2
Nilai a2 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 nilaia2 dianggap mempunyai nilai ½, sehingga diperoleh
a1=12
p1=q11=1
Kemudian nilai yang didapat dimasukkan kedalam rumus pokok (2.1), (2.2) dan (2.3) sehingga
didapat:
y i+1= y i+( 12
k1+12
k2
)∆ x
k 1=f (x i , y i)
k 2=f ( xi+∆ x , y i+k1 ∆ x)
II.2 Metode Runge-Kutta Order Dua Dengan Metode Poligon
Pada metode ini nilaia2 dianggap mempunyai nilai 1, sehingga diperoleh
a1=0
p1=q11=12
Kemudian nilai yang didapat dimasukkan kedalam rumus pokok (2.1), (2.2) dan (2.3) sehingga
didapat:
y i+1= y i+k2 ∆ x
k 1=f (x i , y i)
k 2=f ( xi+12
∆ x , y i+12
k1 ∆ x)
II.3 Metode Runge-Kutta Order Dua Dengan Metode Ralston
Pada metode ini nilaia2 dianggap mempunyai nilai 2/3, sehingga diperoleh
a1=1/3
p1=q11=3/4
Kemudian nilai yang didapat dimasukkan kedalam rumus pokok (2.1), (2.2) dan (2.3) sehingga
didapat:
y i+1= y i+( 13
k 1+23
k2
)∆ x
k 1=f (x i , y i)
k 2=f ( xi+34
∆ x , y i+34
k1 ∆ x)
II.4 Aplikasi Metode Runge-Kutta Order Dua Dengan Metode Ralston
Persamaan deferensial yang harus diselesaikan:
dydx
=−2 x3+12 x2−20 x+8.5
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 ( x0 , y0 )=−2(0)3+12 (0)2−20 (0 )+8.5=8.5
k 2=f ( xi+34
∆ x , y i+34
k1 ∆ x)= f (0.375 ;14.1875 )
¿−2(0.375)3+12(0.375)2−20 (0.375 )+8.5=2.58203125
Kemudian menghitung kemiringan rerata:
Φ=13
(8.5 )+ 23
(2.58203125 )=4.5546875
Nilai y pada kondisi x=0.5 dapat dihitung dengan:
y0.5= y0+Φ∆ 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;clcformat long gdisp('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 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);enddisp('__________________________________________________________');
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 :
Dengan :
Contoh soal :
Selesaikan persamaan berikut dengan Runge-Kutta order 3.
dydx
=−2 x3+12 x2−20 x+8,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 , k2 , dan k3
k 1=−2 (0 )2+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 menggunakan rumus Runge-Kutta order 3 maka nilai y(x) :
y i+1= y i+16(k 1+4 k2+k3 ) Δx
k 1= f ( x i , y i )
k 2= f ( x i+12
Δx , y i+12
Δ xk 1)
k 3= f ( x i+Δx , y i−Δ xk1+2 Δ xk 2 )
Δx=0,5
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;clcformat long gdisp('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);enddisp('__________________________________________________________');
Hasil Program Matlab Metode Runge-Kutta Order 3
Jumlah n = 8.000000
Nilai dx = 0.500000
__________________________________________________________
| i | x[i] | YE[i] | Y[i] | E |
__________________________________________________________
| 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.
Dengan :
Contoh soal :
Selesaikan persamaan berikut dengan Runge-Kutta order 4.
dydx
=−2 x3+12 x−20 x+8,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 4 adalah menghitung k 1 , k2 , k3 dan k4
k 1=−2 (0 )2+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 rumus Runge-Kutta order 4 maka nilai y(x) :
y (0,5 )=1+¿
Hitungan diteruskan untuk mendapatkan nilai y pada interval berikutnya.
Diagram Alir Metode Runge-Kutta Order 4
y i+1= y i+16(k 1+2k2+2k3+k 4 ) Δx
k 1=f ( x i , y i )
k 2=f ( x i+12
Δx , y i+12
Δ xk 1)
k 3=f ( x i+12
Δx , y i+12
Δ xk 2 )
k 4=f ( xi+ Δx , y i+Δ xk 3 )
Δx=0,5
Script Program Matlab Metode Runge-Kutta Order 4
clear;clcformat long gdisp('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);enddisp('__________________________________________________________');
Hasil Program Matlab Metode Runge-Kutta Order 4
Jumlah n = 8.000000
Nilai dx = 0.500000
__________________________________________________________
| i | x[i] | YE[i] | Y[i] | E |
__________________________________________________________
| 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 |
__________________________________________________________
>>