Runge Kutta

Preview:

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 |

__________________________________________________________

>>