Anda di halaman 1dari 14

BAB VII.

Persamaan Diferensial Biasa

-101

BAB VII
7.1. Pendahuluan

Persamaan Diferensial Biasa

Persamaan diferensial adalah persamaan yang mempunyai turunan fungsi. Penyelesaian persamaan diferensial adalah suatu fungsi yang memenuhi persamaan diferensial tersebut dan juga memenuhi kondisi awal yang diberikan pada persamaan tersebut. Di dalam penyelesaian persamaan diferensial secara analitis, biasanya dicari penyelesaian umum yang mengandung konstanta sembarang. Konstanta tersebut selanjutnya dievaluasi untuk disesuaikan dengan kondisi awal. Metode penyelesaian persamaan diferensial secara analitis biasanya terbatas pada persamaan dengan bentuk tertentu dan linier dengan koefisien konstan. Bentuk persamaan diferensial terdiri atas dua kategori, yaitu: Persamaan Diferensial Biasa (Ordinary Differential Equation-ODE). Terdiri atas satu variabel bebas dengan turunannya terhadap variabel tersebut. Contoh: dy 2x + 3y = 10 persamaan diferensial biasa orde satu. dx d2y + 4y = 0 persamaan diferensial biasa orde dua. d2x Persamaan Diferensial Parsiil (Partial Differential Equation-PDE). Terdiri atas lebih dari satu variabel bebas. Di dalam bidang ilmu fisika dan rekayasa, variabel bebas biasanya berupa variabel ruang (x, y dan z) dan waktu. Contoh: d3y d2y = + xt sin( yt) persamaan diferensial parsiil orde tiga. dx 3 dx.dt Penyelesaian persamaan dilakukan dengan mencari nilai y sebagai fungsi dari x dan kemiringan kurva pada setiap titik yang ditinjau. Langkah-langkah pada perhitungan persamaan diferensial secara numerik adalah: 1. Menghitung nilai awal yang diketahui, misalnya di titik (x0,y0). 2. Kemudian dihitung kemiringan kurva (garis singgung) di titik tersebut [(x0,y0)]. 3. Menghitung nilai berikutnya [titik (x1,y1)] yang berjarak x berdasarkan nilai y0 di titik x0 dan kemiringan fungsi di titik tersebut. 4. Selanjutnya perhitungan diulangi untuk titik (x2,y2) yang berjarak x dari titik (x1,y1)dan seterusnya sampai batas yang ditentukan.

Gambar 7.1. Penghitungan nilai (x,y) untuk tiap-tiap langkah.

BAB VII. Persamaan Diferensial Biasa

-102

7.2. Metode Satu Langkah (ODE Orde Pertama)


Persamaan diferensial biasa dengan bentuk dy/dx=f(x,y) dapat didekati dengan bentuk persamaan beda hingga langkah ke depan berikut ini: dy y y i +1 - y i = = = f ( x , y) (7.1) dx x x i +1 - x i atau yi+1=yi+f(x,y)(xi+1-xi) (7.2) atau yi+1=yi+. x (7.3) dengan adalah perkiraan kemiringan yang digunakan untuk ekstrapolasi dari nilai yi ke yi+1 yang berjarak x yaitu selisih antara x= (xi+1-xi). Semua metode satu langkah dapat ditulis dalam bentuk persamaan (7.3) tersebut. Perbedaan dari beberapa metode yang ada adalah di dalam cara mengestimasi kemiringan .

7.2.1. Metode Euler Metode Euler merupakan salah satu bentuk metode satu langkah yang paling sederhana yang merupakan penerapan metode finite difference (beda hingga) langkah ke depan. Dengan kesederhanaannya, metode ini mudah dipahami sehingga sangat baik untuk dipelajari sebagai pengantar untuk mempelajari metode lain yang lebih teliti (metode ini memiliki tingkat ketelitian yang rendah) Metode Euler dapat diturunkan dari Deret Taylor: 2 ' '' x y i +1 = y i + y i x + y i + .... (7.4) 2! Apabila nilai x kecil, maka suku yang mengandung pangkat lebih tinggi dari 2 adalah sangat kecil dan dapat diabaikan, sehingga persamaan di atas dapat ditulis menjadi: y i +1 = y i + y1x (7.5) i dapat disimpulkan bahwa metode euler kemiringan =y=f(x,y) sehingga persamaan (7.5) dapat ditulis menjadi: y i+1 = yi + f ( x, y)x (7.6)

Gambar 7.2. Skematisasi Metode Euler Contoh 1. Selesaikan persamaan: dy = f ( x , y) = -2 x 3 + 12 x 2 - 20 x + 8.5 dengan y(0)=1, dari x=0 sampai x=2 dx

BAB VII. Persamaan Diferensial Biasa

-103

dengan panjang langkah x=0.5 dan x=0.25. Penyelesaian eksak dari persamaan contoh 1 adalah: y = -0.5x4 + 4x3 - 10x2 + 8.5x +1 Penyelesaian numerik. Penyelesaian numerik dilakukan secara bertahap pada beberapa titik yang berurutan. Dengan menggunakan persamaan (7.6) dihitung nilai yi+1 yang berjarak x=0.5 dari titik awal x=0. Untuk i=0 maka persamaan (7.6) menjadi: y1 = y 0 + f ( x 0 , y 0 )x Dari kondisi awal, pada x=0 nilai fungsi y(0) = 1, sehingga : y (0.5) =y(0) + f(0;1)0.5 Kemiringan garis di titik (x0, y0) adalah: dy = f (0,1) = 2(0) 3 + 12(0) 2 20(0) + 8.5 dx sehingga: y (0.5) =1+8.5 (0.5) = 5.25 Nilai eksak pada titik x = 0.5 adalah : y(0.5) = -0.5(0.5)4 + 4(0.5)3 - 10(0.5)2 + 8.5(0.5) + 1 = 3,21875 Jadi kesalahan dengan menggunakan metode Euler adalah : 3.21875 - 5.25 = 100% = 63.1% 3.21875 Pada langkah berikutnya, yaitu untuk i= 1 persamaan (7.6) menjadi: y 2 = y1 + f ( x1 , y1 )x y (1.0) = y (0.5) +f (0.5; 5.25) 0.5 = 5.25 + [-2(0.5)3 + 12(0.5)2 - 20(0.5) + 8.5] 0.5 = 5.875 selanjutnya perhitungan baik untuk x = 0.5 maupun x = 0.25 bisa dilihat pada tabel berikut: Tabel 7.1. Hasil hitungan dengan metode Euler
x 0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 yeksak 1.00000 2.56055 3.21875 3.27930 3.00000 2.59180 2.21875 1.99805 2.00000 x=0,5 yperkiraan 1.00000 5.25000 5.87500 5.12500 4.50000 (%) 63.11 95.83 130.99 125.00 Yperkiraan 1.00000 3.12500 4.17969 4.49219 4.34375 3.96875 3.55469 3.24219 3.12500 x=0,25 (%) 22.04 29.85 36.99 44.79 53.13 60.21 62.27 56.25

Perintah MATLAB.
function y = DifEuler(f,x,y0) dx=abs(x(2)-x(1)); y(1)=y0; for i =2:length(x) y(i) = y(i-1) + dx*f(x(i-1)); end [x' y']

Sebelum fungsi MATLAB di atas bisa digunakan, maka fungsi diferensial dan nilai x harus

BAB VII. Persamaan Diferensial Biasa

-104

didefinisikan terlebih dahulu. Untuk menyelesaikan contoh (1) di atas di dalam jendela MATLAB diketikkan perintah:
>> f=inline('-2*x.^3+12*x.^2-20*x+8.5','x') f = Inline function: f(x) = -2*x.^3+12*x.^2-20*x+8.5 >> x=0:0.25:2; % membuat vektor x dengan x=0.25 >> y= DifEuler(f,x,1) ans = 0 1.0000 0.2500 3.1250 0.5000 4.1797 0.7500 4.4922 1.0000 4.3438 1.2500 3.9688 1.5000 3.5547 1.7500 3.2422 2.0000 3.1250

Sedangkan untuk x=0.5, tinggal mengubah perintah untuk membuat vektor x seperti berikut ini:
>> f=inline('-2*x.^3+12*x.^2-20*x+8.5','x') f = Inline function: f(x) = -2*x.^3+12*x.^2-20*x+8.5 >> x=0:0.5:2; >> y= DifEuler(f,x,1) ans = 0 1.0000 0.5000 5.2500 1.0000 5.8750 1.5000 5.1250 2.0000 4.5000

Untuk persentase error yang terjadi pada setiap titik dari proses di atas (misal untuk x=0.25), bisa dicek dengan menggunakan perintah simbolik syms NamaVariabel untuk membuat persamaan simbolik, int(NamaFungsi) pada MATLAB untuk mendapatkan solusi persamaan secara analitis. Seperti terlihat pada kode MATLAB berikut ini:
function y=EksakDif(f,x,c) format long g g=int(f); % proses integrasi fungsi h=inline(strcat(char(g),'+',num2str(c))) for i=1:length(x) y(i)=h(x(i)); end y=[x' y'];

Kemudian dalam jendela MATLAB ketikkan perintah ini:


>>syms x % variabel simbolik >>f=-2*x.^3+12*x.^2-20*x+8.5; % fungsi simbolik >> x=0:0.25:2; y=EksakDif(f,x,1) y = 0 1 0.25 2.560546875 0.5 3.21875 0.75 3.279296875 1 3 1.25 2.591796875 1.5 2.21875 1.75 1.998046875 2 2

BAB VII. Persamaan Diferensial Biasa

-105

hasil proses file EksakDif.m di atas menghasilkan nilai eksak dari fungsi diferensial yang dievaluasi. Penyelesaian numerik dari persamaan diferensial biasa menyebabkan terjadinya dua tipe kesalahan dalam proses perhitungannya, yaitu: kesalahan pemotongan, yang disebabkan oleh teknik penyelesaian yang digunakan untuk memperkirakan nilai y, kesalahan akibat pembulatan, yang disebabkan oleh keterbatasan jumlah angka (digit) yang digunakan dalam hitungan.

7.2.2. Metode Heun (Prediktor-Korektor) Metode Heun merupakan modifikasi dari metode Euler. Modifikasi dilakukan dalam memperkirakan kemiringan 0. Metode ini memperkirakan dua turunan pada interval, yaitu pada ujung awal dan akhir. Kedua turunan tersebut kemudian diratakan untuk mendapatkan perkiraan kemiringan yang lebih baik (Gambar 7.3). Berdasarkan metode Euler, kemiringan pada ujung awal dari interval adalah: yi' = f ( x i , yi ) (7.7) Kemiringan tersebut digunakan untuk menghitung nilai y{+i dengan ekstrapolasi linier sehingga : y 0+1 = yi + f ( x i , yi )x (7.8) i

Gambar 7.3. Metode Heun Nilai yi0+1 dari persamaan (7.8) tersebut kemudian digunakan untuk memperkirakan kemiringan pada ujung akhir interval, yaitu:
y i' +1 = f ( x i +1 , y i0+1 ) (7.9)

Kedua kemiringan yang diberikan oleh persamaan (7.7) dan (7.9) kemudian diratakan untuk memperoleh kemiringan rerata pada interval, yaitu: y ' + yi' +1 f ( x i , yi ) + f ( x i +1 , yi0+1 ) ' y = i = 2 2 Kemiringan rerata tersebut kemudian digunakan untuk ekstrapolasi linier dari yi ke yi+i dengan menggunakan metode Euler : f ( x i , y i ) + f ( x i +1 , y i0+1 ) y i +1 = y i + x (7.10) 2 Persamaan (7.8) disebut dengan persamaan prediktor, sedang persamaan (7.10) disebut dengan persamaan korektor. Contoh 2. Selesaikan persamaan berikut, dy/dt= f(t,y) = -y2 dengan y(0) = 1 , dengan menggunakan metode

BAB VII. Persamaan Diferensial Biasa

-106

Heun dan t=0.l. Penyelesaian: 1 1+ t Penyelesaian numerik dengan menggunakan metode Heun. Persamaan di atas dapat ditulis dalam bentuk: Persamaan untuk mencari nilai: y i+1 = y i + f (t i , y i )t = y i - y i2 t Persamaan untuk menentukan kemiringan : f ( t i , y i ) = -y i2 penyelesaian eksak dari persamaan di atas adalah y =
2 untuk i = 0, Persamaan menjadi: y1 = y 0 - y 0 t Langkah Penyelesaian: Langkah 1. y(0) = 1 kemiringan di titik (t0,y0) adalah : f(t0,y0)= -y02=-(1)2=-1 perkiraan awal (prediktor) dari nilai y di i=1 adalah y10=1-1(0.1)=0.9 kemiringan fungsi di titik i=1 adalah f(t1, y10)=-(0.9)2=0.81 f (t 0 , y 0 ) + f (t 1 , y 0 ) - 1 + (-0.81) - 0.905 1 y1 = y 0 + ).01 =0.9095 t = 1 + .0.1 = 1 + ( 2 2 2 Langkah 2. selanjutnya : y1=0.9095 kemiringan di titik (t1,y1) adalah : f(t1,y1)= -y12=-(0.9095)2=-0.82719 prediktor dari nilai y di i=2 adalah y20=0.9095-0.82719(0.1)=0.82678 kemiringan fungsi di titik i=2 adalah f(t2, y20)=-( 0.82678)2=-0.68357 f ( t 1 , y1 ) + f ( t 2 , y 0 ) - 0.82719 + (-0.68357) 2 y 2 = y1 + .0.1 = 0.83396 t = 0.9095 + 2 2 dan seterusnya sampai selesai. Tabel 7.2. Hasil hitungan dengan Metode Heun

ti 0.00 0.10 0.20 0.30 0.40 0.50

Yeksak 1.000000 0.909090 0.833333 0.769231 0.714286 0.666666

Y perkiraan 1.00000 0.90950 0.83396 0.76997 0.71507 0.66746

t (%) 0.05 0.08 0.10 0.11 0.12

Perintah MATLAB. Kode MATLAB untuk Metode Heun adalah:


function y = DifHeun(f,x,y0) dx=abs(x(2)-x(1)); y(1)=y0; for i =1:length(x)-1 g(i)=f(x(i),y(i)); y(i+1)=y(i)+dx*f(x(i),y(i)); g(i+1)=f(x(i+1),y(i+1)); y(i+1)=y(i)+dx*(g(i)+g(i+1))/2; end disp (' x y') y=[x' y'];

Untuk menyelesaikan soal contoh (2) dengan kode MATLAB di atas, di dalam jendela MATLAB diketikkan perintah:

BAB VII. Persamaan Diferensial Biasa

-107

> f=inline('-y.^2','x','y') f = Inline function: f(x,y) = -y.^2 >> x=0:0.1:0.5; x y = 0 0.1 0.2 0.3 0.4 0.5

y 1 0.9095 0.833962148468902 0.769971154038388 0.715074674301156 0.667467169349524

7.2.3. Metode Poligon Di dalam metode Poligon, Metode Euler dipakai untuk memprediksi kemiringan nilai y pada titik tengah interval. x (7.11) y 1 = yi + f (x i , yi ) i+ 2 2
Kemudian nilai yang didapat dipakai untuk mengestimasi kemiringan pada titik tengah interval yaitu: (7.12) y' 1 = f (x 1 , y 1 )
i+ 2 i+ 2 i+ 2

kemiringan tersebut merupakan perkiraan kemiringan rerata pada interval, yang kemudian dipergunakan untuk ekstrapolasi linier dari xi ke xi+1 dengan menggunakan metode Euler. y i+1 = y i + f ( x 1 , y 1 )x (7.13)
i+ 2 i+ 2

Gambar 5. Metode Poligon Contoh 3. Selesaikan persamaan berikut dengn metode poligon untuk dari x=0 ke x=0.5. dy = f ( x , y) = e x dan y(0)=1 dx Penyelesaian: x=0.1, dengan rentang x

BAB VII. Persamaan Diferensial Biasa

-108

Persamaan di atas menjadi: y i+1 = y i + f ( x i , y i )x = y i + e xi x , untuk nilai tengah interval, x 0.1 y 1 = y0 + e0 = 1+1 = 1.05 2 2 2 kemiringan fungsi pada titik tengah interval: y '1 = f ( x 1 , y 1 ) = e 0.05 = 1.051271
2 2 2

maka perkiraan nilai y di titik i=1 adalah: y1 = y 0 + f ( x 1 , y 1 )x = 1 + (1.051271)(0.1) = 1.105127


2 2

Tabel 7.3. Hasil hitungan dengan metode Poligon


xi 0 0.1 0.2 0.3 0.4 0.5 yeksak 1.000000 1.105.171 1.221403 1.349859 1.491825 1.648721 yperkiraan 1.000000 1.105127 1.221310 1.349713 1.491619 1.648451 t(%) 0.004 0.008 0.011 0.014 0.016

Perintah MATLAB. Kode MATLAB untuk Metode Poligon adalah:


function y = DifPoligon(f,x,y0) dx=abs(x(2)-x(1)); y(1)=y0; for i =1:length(x)-1 ytengah = y(i) + f(x(i),y(i))*dx/2; gtengah=f(x(i)+dx/2,ytengah); y(i+1)=y(i)+gtengah*dx; end disp (' x y') y=[x' y'];

Untuk menyelesaikan soal contoh (3) dengan kode MATLAB di atas, di dalam jendela MATLAB diketikkan perintah:
>> f=inline('exp(x)','x','y') f = Inline function: f(x,y) = exp(x) >> x=0:0.1:0.5; >> y = DifPoligon(f,x,1) x y y = 0 0.1 0.2 0.3 0.4 0.5

1 1.1051271096376 1.22131053391043 1.34971307557921 1.49161983043853 1.64845104898755

7.2.4. Metode Runge-Kutta Metode Runge-Kutta memberikan ketelitian hasil yang lebih besar dan tidak memerlukan turunan dari fungsi. bentuk umum dari metode Runge-Kutta adalah: yi+1=yi + (xi,yi, x) x (7.14)

BAB VII. Persamaan Diferensial Biasa

-109

dengan (xi,yi, x) adalah fungsi pertambahan yang merupakan kemiringan rerata pada interval. Fungsi pertambahan dapat ditulis dalam bentuk umum: dengan a adalah konstanta dan k adalah : (xi,yi, x)=a1k1 +a2k2 + + ankn (7.15) Dengan a adalah konstanta dan k kl=f(xi,yi) k2 = f(xi + p1. x, y + q11.k1. x) k3 = f(xi + p2. x, yi + q21.k1. x + q22.k2. x) : kn = f(xi + pn-1. x, yi + qn-1,1.k1. x + qn-1,2.k2. x + + qn-1,n-1.kn-1. x) Persamaan tersebut menunjukkan bahwa nilai k mempunyai hubungan berurutan. Nilai k1 muncul dalam persamaan untuk menghitung k2, yang juga muncul dalam pers. untuk menghitung k3, dst. Hubungan yang berurutan ini membuat metode Runge-Kutta adalah efisien dalam hitungan. Ada beberapa tipe metode Runge-Kutta yang tergantung pada nilai n yang digunakan. Untuk n = 1 Metode Runge-Kutta Order Satu Untuk n = 2 Metode Runge-Kutta Order Dua Untuk n = 3 Metode Runge-Kutta Order Tiga Untuk n = 4 Metode Runge-Kutta Order Empat

7.2.3.1. Metode Runge-Kutta Order Satu =a1k1 dengan a1=1, maka persamaan (7.15) menjadi: yi+1=yi + f(xi,yi) x, yang sama dengan metode Euler. 7.2.3.2. Metode Runge-Kutta Order Dua Metode Runge-Kutta order 2 mempunyai bentuk: yi+1=yi + (a1k1 + a2k2) x (7.16) dengan: kl=f(xi,yi) k2=f(xi + p1. x, y + q11.k1. x) Dengan hubungan: a1 + a 2 = 1, a 1 = 1 - a 2 , dan 1 1 a 2 p1 = , a 2 2 p1 = q 11 = 2a 2 1 q11 = 2 Apabila ditentukan a2=1/2, maka p1=q11=1, parameter tersebut apabila disubstitusikan ke dalam Persamaan (7.16) akan menghasilkan: 1 1 y i+1 = y i + ( k1 + k 2 )x 2 2 dengan: k1=f(xi,yi) k2=f(xi+ x,yi+k1 x) di mana k1 adalah kemiringan fungsi pada awal interval dan k2 adalah kemiringan fungsi pada akhir interval. Dengan demikian metode Runge-Kutta order 2 tipe ini adalah sama dengan Metode Heun. Apabila ditentukan a2=1, maka a1=0 dan p1=q11=1/2. Parameter tersebut apabila disubstitusikan ke dalam Persamaan (7.16) akan menghasilkan: y i+1 = y i + ( k 2 )x dengan: k1=f(xi,yi)

BAB VII. Persamaan Diferensial Biasa

-110

1 1 k 2 = f(x i + x, y i + k1x) 2 2 Dengan demikian Metode Runge-Kutta Order 2 tipe ini adalah sama dengan Metode Poligon.

7.2.3.3. Metode Ralston Merupakan bentuk persamaan Metode Runge-Kutta Order 2 dengan nilai a2=2/3, a1=1/3 dan p1=q11=3/4 yang menghasilkan: 1 2 y i+1 = y i + ( k 1 + k 2 )x (7.17) 3 3 dengan: k1=f(xi,yi) 3 3 k 2 = f(x i + x, y i + k1x) 4 4
Contoh 4. Selesaikan persamaan diferensial berikut dengan metode Raltson. dy/dx = -2x3 + 12x2 -20x + 8.5 dari x=0 sampai x=4 dengan menggunakan langkah x=0.5. Kondisi awal pada x = 0 adalah y = 1. Penyelesaian. k1 =f(x0,y0) = -2(0)3 +12(0)2- 20(0) +8.5=8.5 3 3 k 2 = f(x 0 + x, y 0 + k1x) =f(0.375, 14.1875) = -2(0,375)3 + 12(0,375)2 - 20(0,375) + 8,5 = 4 4 2,58203125 1 2 Maka: y1 = 1 + ( (8.5) + (2.58203125))0.5 = 3.27734375 3 3 k1=f(0.5, 3.27734375) = -2(0.5)2 +12(0.5)2- 20(0.5) +8.5 = 1.25 3 3 k 2 = f(x1 + x, y1 + k1x) =f(0.875, 0.46875) = -2(0,875)3 + 12(0,875)2 - 20(0,875) + 8,5 = 4 4 1.15234375 1 2 Maka: y1 = 3.27734375 + ( (1.25) + (-1.15234375))0.5 = 3.101563 3 3 Tabel hasil Penyelesaian dengan Metode Ralston
i 1 2 3 4 5 6 7 8 9 xi 0.00 0.50 1.00 1.50 2.00 2.50 3.00 3.50 4.00 yi 1.00000 3.27734 3.10156 2.34766 2.14063 2.85547 4.11719 4.80078 3.03125

Perintah MATLAB. Kode MATLAB untuk Metode Ralston adalah:


function y = DifRals(f,x,y0) dx=abs(x(2)-x(1)); y(1)=y0; for i =1:length(x)-1 k1=f(x(i),y(i)); k2=f(x(i)+3/4*dx,y(i)+k1*3/4*dx); y(i+1)=y(i)+(1/3*k1+2/3*k2)*dx;

BAB VII. Persamaan Diferensial Biasa

-111

end disp (' y=[x' y'];

y')

Untuk menyelesaikan soal contoh (4) dengan kode MATLAB di atas, di dalam jendela MATLAB diketikkan perintah:
> f=inline('-2*x.^3 + 12*x.^2 -20*x + 8.5','x','y') f = Inline function: f(x,y) = -2*x.^3 + 12*x.^2 -20*x + 8.5 >> x=0:0.5:4; >> y=DifRals(f,x,1) x y y = 0 1 0.5 3.27734375 1 3.1015625 1.5 2.34765625 2 2.140625 2.5 2.85546875 3 4.1171875 3.5 4.80078125 4 3.03125

7.2.3.4. Metode Runge-Kutta Order Tiga Metode Runge-Kutta order 3 diturunkan dengan cara yang sama dengan order 2 untuk nilai n=3. Metode Runge-Kutta order 3 mempunyai bentuk: 1 y i +1 = y i + (k1 + 4k 2 + k 3 )x (16) 6 dengan: kl = f(xi,yi) 1 1 k 2 = f(x i + x, y i + k1x) 2 2 k 3 = f(x i + x, y i - k 1x + 2xk 2 )
Contoh 5. Selesaikan persamaan dy/dx = -2x3 + 12x2 - 20x + 8.5 dengan metode Runge-Kutta order 3. Rentang nilai dari x=0 sampai x=4 dengan menggunakan langkah x=0.5. Kondisi awal pada x=0 adalah y=l. Penyelesaian. Langkah pertama dalam metode Runge-Kutta order 3 adalah menghitung k1, k2 dan k3. (variabel y tidak berpengaruh karena sisi kanan persamaan tidak mengandung unsur y) k1 = -2(0)3 + 12(0)2 - 20(0) + 8.5 = 8.5 k2 = -2(0.25)3 + 12(0.25)2 - 20(0.25) + 8.5 = 4.21875 k3 = -2(0.5)3 + 12(0.5)2 - 20(0.5) + 8.5 =1.25 Dengan menggunakan Persamaan (16) dihitung nilai y(x) : y (0.5) = 1 + [ 1/6 (8.5 + 4 (4.21875) +1.25 ] 0.5 = 3.21875 selanjutnya dihitung lagi k1, k2 dan k3 untuk y(1): k1 = -2(0.5)3 + 12(0.5)2 - 20(0.5) + 8.5 = -1.25 k2 = -2(0.75)3 + 12(0.75)2 - 20(0.75) + 8.5 = -0.59375 k3 = -2(1)3 + 12(1)2 - 20(1) + 8.5 = -1.5 y (1) = 3.21875 + [ 1/6 (1.25+ 4 (-0.59375) +(-1.5)] 0.5 = 3.21875 - 0.21875000= 3.000000

BAB VII. Persamaan Diferensial Biasa

-112

dan seterusnya sampai x=4. Perintah MATLAB. Kode MATLAB untuk Metode Runge Kutta Orde 3 adalah:
function y = Rungkut3(f,x,y0) dx=abs(x(2)-x(1)); y(1)=y0; for i =1:length(x)-1 k1=f(x(i),y(i)); k2=f(x(i)+0.5*dx,y(i)+k1*0.5*dx); k3=f(x(i)+dx,y(i)-k1*dx+2*dx*k2); y(i+1)=y(i)+dx*1/6*(k1+4*k2+k3); end disp (' x y') y=[x' y'];

Untuk menyelesaikan soal contoh (5) dengan kode MATLAB di atas, di dalam jendela MATLAB diketikkan perintah:
>> f=inline(' -2*x.^3 + 12*x.^2 - 20*x + 8.5 ','x','y') f = Inline function: f(x,y) = -2*x.^3 + 12*x.^2 - 20*x + 8.5 >> x=0:0.5:4; > y = Rungkut3(f,x,1) x y y = 0 1 0.5 3.21875 1 3 1.5 2.21875 2 2 2.5 2.71875 3 4 3.5 4.71875 4 3

7.2.3.5. Metode Runge-Kutta Order Empat Metode Runge-Kutta order 4 diturunkan dengan cara yang sama dengan order 2 untuk nilai n=3. Metode Runge-Kutta order 4 mempunyai bentuk: 1 y i +1 = y i + (k1 + 2k 2 + 2k 3 + k 4 )x (17) 6 dengan: kl = f(xi,yi) 1 1 k 2 = f(x i + x, y i + k1x) 2 2 1 1 k 3 = f(x i + x, yi + k 2x) 2 2 k 4 = f(x i + x, y i + k 3x)
Contoh 6. Selesaikan persamaan berikut dengan metode Runge-Kutta order 4. dy/dx = -2x3 + 12x2 - 20x + 8.5 dari x=0 sampai x=4 dengan menggunakan langkah x=0.5. Kondisi awal pada x=0 adalah y=l. Penyelesaian. k1 = -2(0)3 + 12(0)2 - 20(0) + 8.5 = 8.5

BAB VII. Persamaan Diferensial Biasa

-113

k2 = -2(0.25) + 12(0.25) - 20(0.25) + 8.5 = 4.21875 k3 = -2(0.25)3 + 12(0.25)2 - 20(0.25) + 8.5 =4.21875 k4 = -2(0. 5)3 + 12(0.5)2 - 20(0.5) + 8.5 =1.25 y (0.5) = 1 + [ 1/6 (8.5 + 2 (4.21875) + 2 (4.21875) +1.25 ] 0.5 = 3.21875 dan seterusnya sampai x=4. Perintah MATLAB. Kode MATLAB untuk Metode Runge Kutta Orde 3 adalah:
function y = Rungkut4(f,x,y0) format long g dx=abs(x(2)-x(1)); y(1)=y0; for i =1:length(x)-1 k1=f(x(i),y(i)); k2=f(x(i)+0.5*dx,y(i)+k1*0.5*dx); k3=f(x(i)+0.5*dx,y(i)+k2*0.5*dx); k4=f(x(i)+dx,y(i)+k3*dx); y(i+1)=y(i)+dx*1/6*(k1+2*k2+2*k3+k4); end disp (' x y') y=[x' y'];

Untuk menyelesaikan soal contoh (6) dengan kode MATLAB di atas, di dalam jendela MATLAB diketikkan perintah:
>> f=inline(' -2*x.^3 + 12*x.^2 - 20*x + 8.5 ','x','y') f = Inline function: f(x,y) = -2*x.^3 + 12*x.^2 - 20*x + 8.5 >> x=0:0.5:4; >> y = Rungkut4(f,x,1) x y y = 0 1 0.5 3.21875 1 3 1.5 2.21875 2 2 2.5 2.71875 3 4 3.5 4.71875 4 3

7.3. Persamaan Diferensial Orde Tinggi


Untuk penyelesaian numerik persamaan diferensial turunan yang lebih tinggi, selain syarat awal yang cukup, perlu dilakukan perubahan persamaan diferensial ke dalam bentuk persamaan diferensial turunan pertama. Dengan mengubah bentuk persamaan tersebut, maka Metode Euler dapat digunakan untuk penyelesaiannya. Mencari penyelesaian numerik persamaan d2/dt2 =-2sin, dengan syarat yang diperlukan =0 dan d/dt =v0 untuk t0=0, maka mengubah persamaan dalam bentuk persamaan diferensial orde pertama dilakukan dengan ketetapan d/dt=v, sehingga persamaan d2/dt2 =-2sin menjadi dv/dt =-2sin . Dengan demikian diperoleh dua persamaan diferensial orde pertama berupa d/dt=v dan dv/dt=2sin, dengan Metode Euler diselesaikan kedua persamaan sebagai berikut: vi+1 =vi - 2sin. t sedang untuk mencari nilai :

BAB VII. Persamaan Diferensial Biasa

-114

i+1 =I + vi+1. t Untuk penyelesaian dengan kode MATLAB dapat dilakukan dengan memodifikasi M-file dari beberapa metode di atas.