Anda di halaman 1dari 14

BAB VII.

Persamaan Diferensial Biasa -101

BAB VII Persamaan Diferensial Biasa

7.1. Pendahuluan
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
+ 4 y = 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 + y1ix (7.5)
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.
dy
Selesaikan persamaan: = 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,5 x=0,25
x yeksak
yperkiraan (%) Yperkiraan (%)
0.00 1.00000 1.00000 - 1.00000
0.25 2.56055 3.12500 22.04
0.50 3.21875 5.25000 63.11 4.17969 29.85
0.75 3.27930 4.49219 36.99
1.00 3.00000 5.87500 95.83 4.34375 44.79
1.25 2.59180 3.96875 53.13
1.50 2.21875 5.12500 130.99 3.55469 60.21
1.75 1.99805 3.24219 62.27
2.00 2.00000 4.50000 125.00 3.12500 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 0i+1 = yi + f ( x i , yi )x (7.8)

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
penyelesaian eksak dari persamaan di atas adalah y =
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
untuk i = 0, Persamaan menjadi: y1 = y 0 - y 02 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 01 ) - 1 + (-0.81) - 0.905
y1 = y 0 + t = 1 + .0.1 = 1 + ( ).01 =0.9095
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 02 ) - 0.82719 + (-0.68357)
y 2 = y1 + t = 0.9095 + .0.1 = 0.83396
2 2
dan seterusnya sampai selesai.
Tabel 7.2. Hasil hitungan dengan Metode Heun
ti Yeksak Y perkiraan t (%)
0.00 1.000000 1.00000 -
0.10 0.909090 0.90950 0.05
0.20 0.833333 0.83396 0.08
0.30 0.769231 0.76997 0.10
0.40 0.714286 0.71507 0.11
0.50 0.666666 0.66746 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
y =
0 1
0.1 0.9095
0.2 0.833962148468902
0.3 0.769971154038388
0.4 0.715074674301156
0.5 0.667467169349524

7.2.3. Metode Poligon


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

Gambar 5. Metode Poligon

Contoh 3. Selesaikan persamaan berikut dengn metode poligon untuk x=0.1, dengan rentang x
dari x=0 ke x=0.5.
dy
= f ( x , y) = e x dan y(0)=1
dx
Penyelesaian:
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 yeksak yperkiraan t(%)
0 1.000000 1.000000
0.1 1.105.171 1.105127 0.004
0.2 1.221403 1.221310 0.008
0.3 1.349859 1.349713 0.011
0.4 1.491825 1.491619 0.014
0.5 1.648721 1.648451 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 1
0.1 1.1051271096376
0.2 1.22131053391043
0.3 1.34971307557921
0.4 1.49161983043853
0.5 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
a 2 p1 = , a 2  1
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+k1x)
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 xi yi
1 0.00 1.00000
2 0.50 3.27734
3 1.00 3.10156
4 1.50 2.34766
5 2.00 2.14063
6 2.50 2.85547
7 3.00 4.11719
8 3.50 4.80078
9 4.00 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 (' x y')
y=[x' 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
3 2
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.

Anda mungkin juga menyukai