24
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

Runge Kutta

Embed Size (px)

DESCRIPTION

Metode Numerik Runge Kutta

Citation preview

Page 1: Runge Kutta

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

Page 2: Runge Kutta

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:

Page 3: Runge Kutta

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

Page 4: Runge Kutta

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)

Page 5: Runge Kutta

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)

Page 6: Runge Kutta

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

Page 7: Runge Kutta

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).

Page 8: Runge Kutta

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

Page 9: Runge Kutta

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

Page 10: Runge Kutta

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 |________________________________________

Page 11: Runge Kutta

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

Page 12: Runge Kutta

y (0,5 )=1+¿

Hitungan diteruskan untuk mendapatkan nilai y pada interval berikutnya.

Diagram Alir Metode Runge-Kutta Order 3

Page 13: Runge Kutta

Script Program Matlab Metode Runge-Kutta Order 3

Page 14: Runge Kutta

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

Page 15: Runge Kutta

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

Page 16: Runge Kutta

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

Page 17: Runge Kutta

Script Program Matlab Metode Runge-Kutta Order 4

Page 18: Runge Kutta

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

Page 19: Runge Kutta

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 |

__________________________________________________________

>>