Anda di halaman 1dari 29

Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN

4
SOLUSI PERSAMAAN DIFERENSIAL BIASA dengan
HARGA AWAL dalam PEMODELAN dan MODEL
MATEMATIS


4.1. Solusi Persamaan Diferensial Biasa
Secara umum, problem persamaan diferensial biasa selalu melibat-kan harga
awal, yang dapat ditulis sebagai berikut :
0 0
) ( ), , ( ' y x y y x f y = =
N
x x x
0


Secara numerik, solusi yang seringkali diterapkan dalam problem ini adalah
dengan metode eksplisit. Dalam hal ini, solusi dari problem di atas adalah berada dalam
interval | |
N
x x ,
0
yang dibagi secara tetap (equidistance) sebanyak N buah panel:
N
x x
h
N 0

=
sehingga :
N i h i x x
i
, , 2 , 1 , 0 ,
0
K = + =

Jika adalah solusi eksak dari PDB di atas, maka dengan melakukan
ekspansi dengan deret Taylor dengan sisanya akan diperoleh:
) (x y
1
2
1
1 1
2
+
+
+ +

+ + =
i i i
i
i i
i i i i i
x x
), ( " y
!
) x x (
) x ( ' y ) x x ( ) x ( y ) x ( y

substitusi dari PDB di atas dan dengan pendekatan metode eksplisit pada persamaan di
atas akan didapatkan :
)) ( y , ( ' f
!
h
)) x ( y , x ( f h ) x ( y ) x ( y
i i i i i i
+ + =
+
2
2
1

Property of Setijo Bismo Halaman (1)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN

4.2. Metode EULER
Metode yang paling sederhana dalam menterjemahkan deret Taylor diatas, yaitu
dengan dengan cara pemotongan term kedua (atau di atasnya). Dan bila dinotasikan
, maka : ) (
i i
x y u
1 1 0
1
= + =
+
N , , , i ), u , x ( f h u u
i i i i
K
0 0
y u =
Dari persamaan di atas, dapat diketahui bahwa untuk menghitung u diperlukan
informasi tentang harga-harga x dan u , yang disebut sebagai harga awal. Akurasi dari
metode ini adalah dalam order satu (first-order approximation) :
1 + i
i i
) h ( e
i
1
1
0 =
+


Gambar 1. Representasi METODE EULER.
Untuk memperkecil galat pemotongan lokal pada setiap tahap (panel),
ukuran h dapat dibuat sekecil mungkin.

Property of Setijo Bismo Halaman (2)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN

4.3. Metode RUNGE-KUTTA (order 2)
Metode ini termasuk algoritma eksplisit yang melibatkan evaluasi fungsi f di antara
dan . Formula umum dari metode ini adalah sebagai berikut :
i
x
1 + i
x

=
+
+ =
1
1
j
j j i i
K u u
dengan :
) , (
1
1

=
+ + =
j
l
l jl i j i j
K a u h c x f h K
0
1
= c
Perlu dicatat, bila , 1 = 1 = , dan ) , (
1 i i
u x f h K = maka formula
yang akan diperoleh adalah : METODE EULER. Hal ini berarti bahwa metode EULER
adalah order terendah dari METODE RUNGE-KUTTA.
Untuk mendapatakan formula dengan akurasi yang lebih tinggi, parameter-
parameter , , dan dapat diubah dengan tetap melakukan ekspansi solusi eksak
melalui deret Taylor.
c a
Sebagai contoh, bila kita inginkan 2 = , maka pertama kali kita ekspansikan
solusi eksak di atas dengan deret Taylor :
) h ( )) x ( y , x ( ' f
!
h
)) x ( y , x ( f h ) x ( y ) x ( y
i i i i i i
3
2
1
0
2
+ + + =
+

sedangkan )) ( , ( '
i i
x y x f dapat dituliskan sebagai :
i y x
x x
i i i
) f f f (
dx
dy
y
f
x
f
dx
df
i
+ =

=
=

Property of Setijo Bismo Halaman (3)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN

Jika persamaan terakhir di atas disubstitusikan kedalam persamaan di atasnya
dengan pemotongan term di atasnya, maka akan diperoleh :
i y x i i i
) f f f (
!
h
f h u u + + + =
+
2
2
1

Untuk ekspansi formula pada posisi ke-i , perlu dicatat bahwa harga
merupakan bentuk paling sederhana, sebagai berikut :
j
K
1
K
i i i
f h u x f h K = = ) , (
1

sehingga harga dapat dihitung melalui formula berikut :
2
K
) , (
1 21 2 2
K a u h c x f h K
i i
+ + =
Jika diketahui bahwa sembarang dua fungsi dan yang lokasinya berturut-turut
berdekatan dengan dan u , maka akan diperoleh :
i
x
i
) u , x ( f ) u ( ) u , x ( f ) x ( ) u , x ( f , f
i i y i i i i i i
+ + ) (
Dengan menggunakan persamaan di atas untuk , maka akan didapatkan
bentuk persamaan untuk menghitung :
2
K
2
K
) f K a f h c f ( h K
y x i 1 21 2 2
+ + =
atau
i y x i
) f f a f c ( h hf K
21 2
2
2
+ + =
Bila disubstitusikan persamaan terakhir dan persamaan di atas kedalam
formula dasar Runge-Kutta (u ) di atas, maka akan diperoleh :
1
K
1 + i
i y i x i i i i
) f f ( h a ) f ( c h f h f h u u
2
2 21 2
2
2 2 1 1
+ + + + =
+

Property of Setijo Bismo Halaman (4)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN

Jika dibandingkan persamaan
1 + i
u yang terakhir ini dengan persaamaan
1 + i
u
sebelumnya, maka akan diperoleh :
0 1
2 1
, = +
5 0
2 2
, c =
5 0
21 2
, a =
Algoritma METODE RUNGE-KUTTA dilengkapi dengan cara memilih salah satu di
antara paramater-parameter ,
1 2
, atau a , sedangkan parameter lainnya
ditetapkan dengan menggunakan formula-formula di atas.
2
c
21
Jika dipilih c , maka skema metode RK menjadi METODE TITIK
TENGAH (midpoint method) adalah :
5 , 0
2
=
1 1 0 5 0 5 0
1
= + + + =
+
N , , , i ), f h , u , h , x ( f h u u
i i i i i
K
0 0
y u =
Dari persamaan di atas, dapat diketahui bahwa untuk menghitung harga baru,
, diperlukan besaran-besaran x dan u :
1 + i
u
i i
dan u merupakan harga awal
i
x
i
harga
i
f dihitung sebagai fungsi dari dan u :
i
x
i
) (
i i i
u , x f f =
adalah lebar panel atau jarak antara u h
i
u
1 + i
Representasi grafik dari formula metode titik tengah di atas adalah sebagai berikut :

Gambar 2. Representasi METODE TITIK TENGAH.
Property of Setijo Bismo Halaman (5)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN

Sedangkan jika dipilih 1
2
= c , maka akan diperoleh formulasi kelandaian rata-
rata (average slope) dari metode Runge-Kutta order-2 :
| | 1 1 0
2
1
= + + + + =
+
N , , , i , ) f h u , h x ( f f
h
u u
i i i i i i
K
0 0
y u =

Representasi grafik dari metode kelandaian rata-rata di atas dapat disajikan seperti
pada halaman berikut :

Gambar 2. Representasi METODE Kelandaian rata-rata RUNGE-KUTTA
order-2.

Kedua skema Metode RK di atas memiliki akurasi order-2, karena pemotongan
deret Taylor dilakukan setelah . ) ( 0
2
h
Jika diinginkan akurasi pada order-p, maka harus diambil harga yang sebesar
mungkin. Namun hal ini hampir tidak mungkin atau memerlukan usaha/ pekerjaan yang
besar (?).
Tabel 1. hubungan order-p dengan .
p
2 3 4 5 6
2 3 4 6 8
Property of Setijo Bismo Halaman (6)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN

4.3.1. Peranan harga h dalam solusi numerik
Untuk metode RK order-2, harga h sangat berpengaruh dalam peroleh
atau solusi numeris dari model yang dimaksudkan, seperti dapat dilihat pada
gambar berikut :


4.3.2. Ketelitian beberapa metode numeris
Ketelitian dari beberapa metode numeris yang umum digunakan dapat
dilihat pada gambar berikut :

Property of Setijo Bismo Halaman (7)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN

4.4. Metode RUNGE-KUTTA order tinggi
1. Metode RUNGE-KUTTA-GILL:
Metode Runge-Kutta-Gill (RKG) tergolong dalam keluarga metode RK
order-4, yang memiliki 4 (empat) buah konstanta perhitungan antara
yang dikombinasikan dengan konstanta-konstanta lain (a, b, c, dan d)
sebagai keluarga bilangan emas (golden numbers).
Algoritma ringkas dari metode RKG ini dapat dituliskan seperti di bawah
ini :

) ( ) (
3 2
3
1
4 1
6
1
1
K d K b K K u u
i i
+ + + + =
+

) , (
1 i i
u x f h K =
) , (
1 2
2
1
2
1
K u h x f h K
i i
+ + =
) , (
2 1 3
2
1
K b K a u h x f h K
i i
+ + + =
) , (
3 2 4
K d K c u h x f h K
i i
+ + + =
2
2 2
2
1 2
,

= = b a
2
2
2
2
1 , + = = d c
untuk :
i = 0, 1, 2,,N-1 dan
harga awal :
0 0
y u =

Property of Setijo Bismo Halaman (8)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN

2. Metode RUNGE-KUTTA-MERSON :
Metode Runge-Kutta-Merson (RKM) tergolong dalam keluarga metode Runge-
Kutta order-4, namun memiliki ketelitian sampai order-5. Keistimewaan ini
dimungkinkan karena metode RKM memiliki 5 (lima) buah konstanta perhitungan
antara yang berperan untuk memprediksi harga solusi yang diinginkan pada 2
(dua) keadaan sedemikian rupa sehingga galat pembulatan dapat diminimisasi
sampai order-5.
Formulasi ringkas dari metode RKM ini dapat dituliskan seperti di bawah ini :

4 3
2
3
1
2
1
1
2 K K K u u
i i
+ + =
+

5
6
1
4
3
2
1
6
1
1
K K K u u
i i
+ + + =
+

) , (
1 i i
u x f h K =
) , (
1 2
3
1
3
1
K u h x f h K
i i
+ + =
) , (
2 1 3
6
1
6
1
3
1
K K u h x f h K
i i
+ + + =
) K K u , h x ( f h K
i i 3 1 4 8
3
8
1
2
1
+ + + =
) K K K u , h x ( f h K
i i 4
2
3 1 5 2
3
2
1
+ + + =
untuk :
i = 0, 1, 2,,N-1 dan
harga kondisi awal :
0 0
y u =


Property of Setijo Bismo Halaman (9)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN

3. Metode RUNGE-KUTTA-FEHLBERG :
Sama halnya dengan metode RKM, metode Runge-Kutta-Fehlberg (RKF45) juga
tergolong dalam keluarga metode Runge-Kutta order-4, namun memiliki ketelitian
sampai order-5. Ketelitian yang tinggi ini dimungkinkan karena metode RKF45
memiliki 6 (enam) buah konstanta perhitungan antara yang berperan untuk
meng-update solusi sampai order-5.
Formulasi ringkas dari metode RKM ini adalah :

) , (
1 i i
u x f h K =
) , (
1 2
4
1
4
1
K u h x f h K
i i
+ + =
) , (
2 1 3
32
9
32
3
8
3
K K u h x f h K
i i
+ + + =
) , (
3 2 1 4
2197
7296
2197
7200
2197
1932
13
12
K K K u h x f h K
i i
+ + + =
) 8 , (
4 3 2 1 5
4104
845
513
3680
216
439
K K K K u h x f h K
i i
+ + + =
) 2 , (
5 4 3 2 1 6
40
11
4104
1859
2565
3544
27
8
2
1
K K K K K u h x f h K
i i
+ + + =
Formula update order-4 :
5
5
1
4
4104
2197
3
2565
1408
1
216
25
1
K K K K u u
i i
+ + + =
+

Formula order-5 :
6
55
2
5
50
9
4
56437
28561
3
12825
6656
1
135
16
1
K K K K K u u
i i
+ + + + =
+

Galat pembabatan order-4 :
6
55
2
5
50
1
4
75240
2197
3
4275
128
1
360
1
1 1
K K K K K u u
i i
+ + =
+ +

untuk :
i = 0, 1, 2,,N-1 dan u
0 0
y =


Property of Setijo Bismo Halaman (10)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN

Contoh-contoh Integrasi Numerik :



Persamaan Tunggal :


y
dt
dy
25 =


Solusi Eksak (Analitis) :

t
e y
25
=



Tabel 2. Hasil perhitungan persamaan tunggal dengan metode RK order-2.
Hasil Perhitungan Numerik (u
i+1
)
x
Nilai
Solusi Eksak
( y ) Contoh 1 (RKSR) Contoh 2 (RKMP) Contoh 3 (RKG)
0.00 1.0000E+00 1.0000E+00 1.0000E+00 1.0000E+00
0.20 6.7379E-03 6.7415E-03 6.7415E-03 6.7379E-03
0.40 4.5400E-05 4.5448E-05 4.5448E-05 4.5400E-05
0.60 3.0590E-07 3.0639E-07 3.0639E-07 3.0590E-07
0.80 2.0612E-09 2.0655E-09 2.0655E-09 2.0612E-09
1.00 1.3888E-11 1.3925E-11 1.3925E-11 1.3888E-11

Property of Setijo Bismo Halaman (11)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Contoh 1 :

{Program Solusi Persamaan Diferensial Biasa
dengan Metode RUNGE-KUTA 'Slope Rata-rata'}

Type
Real = Extended;
Real01 = Array [0..1] of Real;

Procedure F(x,Y : Real;
Var DY : Real);
Begin
DY := -25*Y;
End;

Procedure DRK2SR(XV : Real01;
YI : Real;
Var YF : Real;
NP : Integer;
Eps : Real);
{-----------------------------------------------------
PROGRAM : 2-nd ORDER 'MEAN SLOPE' RUNGE-KUTTA METHOD
FOR ORDINARY DIFFERENTIAL EQUATION
(M.E. Davis, p13)
F : Function F(x,y) to be integrated
N : Number of differential equations
XV : Vector of xv[0]=initial and xv[1]=final
YI,YF : Values of Y-initial and Y-final
H : Step length
-----------------------------------------------------}
Var
H,X,YP : Real;
K1,K2 : Real;
Begin
H := (xv[1] - xv[0])/NP;
X := XV[0];
YF := YI;
Repeat
YP := YF;
F(X,YP,K1);
YF := YP + H*K1;
F(X+H,YF,K2);
YF := YP + H*(K1 + K2)/2;
X := X + H;
Until (ABS(XV[1]-X) <= EPS);
End;

Var
I,NP : Integer;
XV : Real01;
Yi,Yf,Eps,h : Real;

Begin
Eps := 1.0E-6;
NP := 200;
xv[0] := 0;
xv[1] := 0.2;
Yi := 1.0;
Writeln(xv[0]:0:4,' ',Yi:13,' ',exp(-25*xv[0]):13);
For I := 1 to 5 do
Begin
DRK2SR(xv,Yi,Yf,NP,Eps);
Writeln(xv[1]:0:4,' ',Yf:13,' ',exp(-25*xv[1]):13);
xv[0] := xv[1];
xv[1] := xv[1] + 0.2;
Yi := Yf;
End;
Readln;
End.


Property of Setijo Bismo Halaman (12)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Contoh 2 :

{Program Solusi Persamaan Diferensial Biasa
dengan Metode RUNGE-KUTTA 'Midpoint'}

Type
Real = Extended;
Real01 = Array [0..1] of Real;
Real50 = Array [1..50] of Real;

Procedure F(x,Y : Real;
Var DY : Real);
Begin
DY := -25*Y;
End;

Procedure DRK2MP(XV : Real01;
YI : Real;
Var YF : Real;
NP : Integer;
Eps : Real);
{-----------------------------------------------------
PROGRAM : 2-nd ORDER 'MIDPOINT' RUNGE-KUTTA METHOD
FOR ORDINARY DIFFERENTIAL EQUATION
(M.E. Davis, p13)
F : Function F(x,y) to be integrated
XV : Vector of xv[0]=initial and xv[1]=final
YI,YF : Value of Y-initial and Y-final
NP : Number of panels
H : Step length
-----------------------------------------------------}
Var
H,X,YP : Real;
I : Integer;
K1,K2 : Real;
Begin
H := (xv[1] - xv[0])/NP;
X := XV[0];
YF := YI;
Repeat
YP := YF;
F(X,YP,K1);
YF := YP + H*K1/2;
F(X+H/2,YF,K2);
YF := YP + H*K2;
X := X + H;
Until (ABS(XV[1]-X) <= EPS);
End;

Var
I,NP : Integer;
XV : Real01;
Yi,Yf : Real;
Eps : Real;

Begin
Eps := 1.0E-6;
NP := 200;
xv[0] := 0;
xv[1] := 0.2;
Yi := 1.0;
Writeln(xv[0]:0:4,' ',Yi:13,' ',exp(-25*xv[0]):13);
For I := 1 to 5 do
Begin
DRK2MP(xv,Yi,Yf,NP,Eps);
Writeln(xv[1]:0:4,' ',Yf:13,' ',exp(-25*xv[1]):13);
xv[0] := xv[1];
xv[1] := xv[1] + 0.2;
Yi := Yf;
End;
Readln;
End.

Property of Setijo Bismo Halaman (13)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN

Contoh 3 :

{Program Solusi Persamaan Diferensial Biasa
dengan Metode RUNGE-KUTA-GILL}

Type
Real = Extended;
Real01 = Array [0..1] of Real;

Procedure F(x,Y : Real;
Var DY : Real);
Begin
DY := -25.0*Y;
End;

Procedure DRKGIL(XV : Real01;
YI : Real;
Var YF : Real;
NP : Integer;
Eps : Real);
{-----------------------------------------------------
PROGRAM : 4-th ORDER RUNGE-KUTTA-GILL METHOD FOR
ORDINARY DIFFERENTIAL EQUATION
(M.E. Davis, p13)
F : Function F(x,y) to be integrated
N : Number of differential equations
XV : Vector of xv[0]=initial and xv[1]=final
YI,YF : Value of Y-initial and Y-final
H : Step length
-----------------------------------------------------}
Var
a,b,c,d,H,X,YP : Real;
I : Integer;
K1,K2,K3,K4 : Real;
Begin
a := (Sqrt(2)-1)/2;
b := (2-Sqrt(2))/2;
c := -Sqrt(2)/2;
d := 1 + Sqrt(2)/2;
H := (xv[1] - xv[0])/NP;
X := XV[0];
YF := YI;


Repeat
YP := YF;
F(X,YP,K1);
YF := YP + H*K1/2;
F(X+H/2,YF,K2);
YF := YP + H*(a*K1+b*K2);
F(X+H/2,YF,K3);
YF := YP + H*(c*K2+d*K3);
F(X+H,YF,K4);
X := X + H;
YF := YP + H*((K1+K4)/6 + (b*K2+d*K3)/3);
Until (ABS(XV[1]-X) <= EPS);
End;


Var
I,NP : Integer;
XV : Real01;
Yi,Yf : Real;
Eps : Real;

Begin
Eps := 1.0E-6;
NP := 200;
xv[0] := 0;
xv[1] := 0.2;
Yi := 1.0;
Writeln(xv[0]:0:3,' ',Yi:13,' ',exp(-25*xv[0]):13);
For I := 1 to 5 do
Begin
DRKGIL(xv,Yi,Yf,NP,Eps);
Writeln(xv[1]:0:3,' ',Yf:13,' ',exp(-25*xv[1]):13);
xv[0] := xv[1];
xv[1] := xv[1] + 0.2;
Yi := Yf;
End;
Readln;
End.


Property of Setijo Bismo Halaman (14)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (15)

Persamaan Jamak (Sistem PDB) :


y
T
,
exp ,
dx
dy
* (

=
21 3
1744 0

y
T
,
exp ,
dx
dT
*
*
(

=
21 3
06984 0


Tabel 3. Hasil perhitungan persamaan jamak dengan metode RK order-2.
Hasil Perhitungan Numerik untuk Sistem PDB :
Contoh 4 : RK-Slope rata
2
Contoh 5 : RK-Midpoint

x
y
T
y
T
0.000 1.000000 1.000000 1.000000 1.000000
0.100 0.700397 1.119979 0.700430 1.119966
0.200 0.529232 1.188523 0.529259 1.188512
0.300 0.413765 1.234763 0.413787 1.234754
0.400 0.329942 1.268331 0.329959 1.268324
0.500 0.266512 1.293732 0.266525 1.293726
0.600 0.217224 1.313469 0.217235 1.313465
0.700 0.178223 1.329088 0.178232 1.329084
0.800 0.146954 1.341610 0.146961 1.341607
0.900 0.121638 1.351748 0.121644 1.351745
1.000 0.100989 1.360017 0.100993 1.360015

Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (16)

Contoh 4 :

{Program Solusi Sistem Persamaan Diferensial Biasa
dengan Metode RUNGE-KUTA 'Slope Rata-rata'}

Type
Real = Extended;
Real01 = Array [0..1] of Real;
Real50 = Array [1..50] of Real;

Procedure F(N : Integer;
x : Real;
Y : Real50;
Var DY : Real50);
Begin
DY[1] := -0.1744*exp(3.21/Y[2])*Y[1];
DY[2] := 0.06984*exp(3.21/Y[2])*Y[1];
End;

{$I DRK2SR}

Var
I,N,NP : Integer;
XV : Real01;
Yi,Yf : Real50;
Eps : Real;

Begin
Eps := 1.0E-6;
N := 2;
NP := 20;
xv[0] := 0;
xv[1] := 0.1;
Yi[1] := 1.0;
Yi[2] := 1.0;
Writeln(xv[0]:0:3,' ',Yi[1]:0:6,' ',Yi[2]:0:6);
For I := 1 to 10 do
Begin
DRK2SR(N,xv,Yi,Yf,NP,Eps);
Writeln(xv[1]:0:3,' ',Yf[1]:0:6,' ',Yf[2]:0:6);
xv[0] := xv[1];
xv[1] := xv[1] + 0.1;
Yi := Yf;
End;
Readln;
End.


Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (17)

Contoh 5 :

{Program Solusi Sistem Persamaan Diferensial Biasa
dengan Metode RUNGE-KUTTA 'Midpoint'}

Type
Real = Extended;
Real01 = Array [0..1] of Real;
Real50 = Array [1..50] of Real;

Procedure F(N : Integer;
x : Real;
Y : Real50;
Var DY : Real50);
Begin
DY[1] := -0.1744*exp(3.21/Y[2])*Y[1];
DY[2] := 0.06984*exp(3.21/Y[2])*Y[1];
End;

{$I DRK2MP}

Var
I,N,NP : Integer;
XV : Real01;
Yi,Yf : Real50;
Eps : Real;

Begin
Eps := 1.0E-6;
N := 2;
NP := 20;
xv[0] := 0;
xv[1] := 0.1;
Yi[1] := 1.0;
Yi[2] := 1.0;
Writeln(xv[0]:0:3,' ',Yi[1]:0:6,' ',Yi[2]:0:6);
For I := 1 to 10 do
Begin
DRK2MP(N,xv,Yi,Yf,NP,Eps);
Writeln(xv[1]:0:3,' ',Yf[1]:0:6,' ',Yf[2]:0:6);
xv[0] := xv[1];
xv[1] := xv[1] + 0.1;
Yi := Yf;
End;
Readln;
End.


Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (18)

Tabel 4. Perbandingan hasil perhitungan sistem PDB jamak antara metode-metode order-4 : RK-Gill dan
RK-Merson.
Hasil Perhitungan Numerik untuk Sistem PDB :
Contoh 6 : RK-Gill Contoh 7 : RK-Merson

x
y
T
y
T
0.000 1.000000 1.000000 1.000000 1.000000
0.100 0.700372 1.119989 0.700372 1.119989
0.200 0.529209 1.188532 0.529209 1.188532
0.300 0.413745 1.234771 0.413746 1.234771
0.400 0.329925 1.268337 0.329925 1.268337
0.500 0.266497 1.293738 0.266497 1.293738
0.600 0.217212 1.313474 0.217212 1.313474
0.700 0.178213 1.329092 0.178213 1.329092
0.800 0.146945 1.341613 0.146945 1.341613
0.900 0.121631 1.351751 0.121631 1.351751
1.000 0.100982 1.360020 0.100982 1.360020

Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (19)

Contoh 6 :

{Program Solusi Sistem Persamaan Diferensial Biasa
dengan Metode RUNGE-KUTA-GILL}

Type
Real = Extended;
Real01 = Array [0..1] of Real;
Real50 = Array [1..50] of Real;

Procedure F(N : Integer;
x : Real;
Y : Real50;
Var DY : Real50);
Begin
DY[1] := -0.1744*exp(3.21/Y[2])*Y[1];
DY[2] := 0.06984*exp(3.21/Y[2])*Y[1];
End;

{$I DRKGIL}

Var
I,N,NP : Integer;
XV : Real01;
Yi,Yf : Real50;
Eps : Real;

Begin
Eps := 1.0E-6;
N := 2;
NP := 10;
xv[0] := 0;
xv[1] := 0.1;
Yi[1] := 1.0;
Yi[2] := 1.0;
Writeln(xv[0]:0:3,' ',Yi[1]:0:6,' ',Yi[2]:0:6);
For I := 1 to 10 do
Begin
DRKGIL(N,xv,Yi,Yf,NP,Eps);
Writeln(xv[1]:0:3,' ',Yf[1]:0:6,' ',Yf[2]:0:6);
xv[0] := xv[1];
xv[1] := xv[1] + 0.1;
Yi := Yf;
End;
Readln;
End.


Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (20)

Contoh 7 :

{Program Solusi Sistem Persamaan Diferensial Biasa
dengan Metode RUNGE-KUTA-MERSON}

Type
Real = Extended;
Real01 = Array [0..1] of Real;
Real02 = Array [0..2] of Real;
Real50 = Array [1..50] of Real;

Procedure F(N : Integer;
x : Real;
Y : Real50;
Var DY : Real50);
Begin
DY[1] := -0.1744*exp(3.21/Y[2])*Y[1];
DY[2] := 0.06984*exp(3.21/Y[2])*Y[1];
End;

{$I DRKMER}

Var
I,MSG,N,NP : Integer;
xv : Real01;
s : Real02;
Yi,Yf : Real50;
Eps : Real;

Begin
Eps := 1.0E-4;
N := 2;
NP := 100;
xv[0] := 0;
xv[1] := 0.1;
s[0] := (xv[1] - xv[0])/NP;
s[1] := s[0]/64;
Yi[1] := 1.0;
Yi[2] := 1.0;
Writeln(xv[0]:0:3,' ',Yi[1]:0:6,' ',Yi[2]:0:6);
For I := 1 to 10 do
Begin
DRKMER(N,xv,Yi,Yf,s,Eps,MSG);
Writeln(xv[1]:0:3,' ',Yf[1]:0:6,' ',Yf[2]:0:6,'
',MSG);
xv[0] := xv[1];
xv[1] := xv[1] + 0.1;
Yi := Yf;
End;
Readln;
End.


Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (21)

Tabel 5. Perbandingan hasil perhitungan sistem PDB jamak antara metode-metode order-4
: RK-Gill dan RK-Fehlberg.
Hasil Perhitungan Numerik untuk Sistem PDB :
Contoh 6 : RK-Gill Contoh 8 : RK-Fehlberg

x
y
T
y
T
0.000 1.000000 1.000000 1.000000 1.000000
0.100 0.700372 1.119989 0.700372 1.119989
0.200 0.529209 1.188532 0.529209 1.188532
0.300 0.413745 1.234771 0.413745 1.234771
0.400 0.329925 1.268337 0.329925 1.268337
0.500 0.266497 1.293738 0.266497 1.293738
0.600 0.217212 1.313474 0.217212 1.313474
0.700 0.178213 1.329092 0.178213 1.329092
0.800 0.146945 1.341613 0.146945 1.341613
0.900 0.121631 1.351751 0.121631 1.351751
1.000 0.100982 1.360020 0.100982 1.360020


Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (22)

Contoh 8 :

{Program Solusi Sistem Persamaan Diferensial Biasa
dengan Metode RUNGE-KUTA-FEHLBERG}

Type
Real = Extended;
Real01 = Array [0..1] of Real;
Real02 = Array [0..2] of Real;
Real50 = Array [1..50] of Real;

Procedure F(N : Integer;
x : Real;
Y : Real50;
Var DY : Real50);
Begin
DY[1] := -0.1744*exp(3.21/Y[2])*Y[1];
DY[2] := 0.06984*exp(3.21/Y[2])*Y[1];
End;

{$I DRKF45}

Var
I,MSG,N,NP : Integer;
xv : Real01;
s : Real02;
Yi,Yf : Real50;
Eps : Real;

Begin
Eps := 1.0E-5;
N := 2;
NP := 100;
xv[0] := 0;
xv[1] := 0.1;
s[0] := (xv[1] - xv[0])/NP;
s[1] := s[0]/64;
Yi[1] := 1.0;
Yi[2] := 1.0;
Writeln(xv[0]:0:3,' ',Yi[1]:0:6,' ',Yi[2]:0:6);
For I := 1 to 10 do
Begin
DRKF45(N,xv,Yi,Yf,s,Eps,MSG);
Writeln(xv[1]:0:3,' ',Yf[1]:0:6,' ',Yf[2]:0:6);
xv[0] := xv[1];
xv[1] := xv[1] + 0.1;
Yi := Yf;
End;
Readln;
End.


Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (23)

Solusi PDB Order-2 menggunakan Metode RKG dan RKM dengan Teknik Shooting :

Persamaan Diferensial Biasa Order-2 non-linier berikut :
0 (1) dan 0 1) (
2
= = y y
dx
1 = x 1
1 1
2
2
+ = y ) x (
y d


PDB di atas memiliki informasi tentang harga-harga fungsi pada dan ,
akan tetapi tidak memiliki informasi yang memadai tentang harga-harga awalnya untuk
turunan pertama dan kedua (karena merupakan PDB order-2).
= x
Salah satu solusi yang mungkin dilakukan adalah dengan metode trial and error,
sehingga PDB order-2 di atas dapat diubah menjadi Sistem PDB berikut :

+ =
input 1) (
1 1
2
1
2 2
y
y ) x (
dx
dy
1
y
2
y
1
y
2
y
1 = x 1 =

=
0 1) (
1
2
1
y
y
dx
dy



Strategi solusi PDB yang mungkin dilakukan dapat dijelaskan sebagai berikut :
Karena PDB tunggal di atas berbentuk order-2, maka dimisalkan suatu sistem
PDB baru dengan 2 (dua) buah variabel terikat, yaitu dalam dan ,
Harga awal (kondisi awal) dari diketahui, namun untuk tidak sehingga
dalam hal ini perlu diberikan dengan cara trial and error
Integrasi PDB dapat dilakukan untuk informasi yang diketahui, dalam hal ini antara
sampai x .
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (24)

Tabel 6. Perbandingan hasil perhitungan sistem PDB order-2 dengan teknik shooting
antara metode RK-Gill dan RK-Merson.
Contoh 9 : Metode RKG Contoh 10 : Metode RKM
x
y
1
y
2
y
1
y
2

-1.00 0.000000 1.736465 0.000000 1.736465
-0.90 0.168104 1.620549 0.168104 1.620549
-0.80 0.323231 1.478228 0.323231 1.478228
-0.70 0.463112 1.316726 0.463112 1.316726
-0.60 0.586136 1.141981 0.586136 1.141981
-0.50 0.691223 0.958637 0.691223 0.958637
-0.40 0.777693 0.770133 0.777693 0.770133
-0.30 0.845157 0.578843 0.845157 0.578843
-0.20 0.893419 0.386258 0.893419 0.386258
-0.10 0.922394 0.193192 0.922394 0.193192
0.00 0.932054 -0.000000 0.932054 -0.000000
0.10 0.922394 -0.193192 0.922394 -0.193192
0.20 0.893419 -0.386259 0.893419 -0.386259
0.30 0.845157 -0.578843 0.845157 -0.578843
0.40 0.777693 -0.770133 0.777693 -0.770133
0.50 0.691223 -0.958637 0.691223 -0.958637
0.60 0.586136 -1.141981 0.586136 -1.141981
0.70 0.463112 -1.316727 0.463112 -1.316727
0.80 0.323231 -1.478228 0.323231 -1.478228
0.90 0.168104 -1.620549 0.168104 -1.620549
1.00 -0.000000 -1.736465 -0.000000 -1.736465

Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (25)

Contoh 9 :

{Program Solusi Sistem PDB 'turunan kedua' (order 2)
dengan 'Shooting' menggunakan Metode RUNGE-KUTA-GILL
PDB order 2 : d2Y/dx2 = -1 - (x^2 + 1)*Y
x(-1) = 0 dan
x(1) = 0}

Type
Real = Extended;
Real01 = Array [0..1] of Real;
Real50 = Array [1..50] of Real;

Procedure F(N : Integer;
x : Real;
Y : Real50;
Var DY : Real50);
Begin
DY[1] := Y[2];
DY[2] := -1 - (Sqr(x) + 1)*Y[1];
End;

{$I DRKGIL}

Var
I,N,NP : Integer;
XV : Real01;
Yi,Yf : Real50;
Eps : Real;

Begin
Eps := 1.0E-6;
N := 2;
NP := 10;
xv[0] := -1;
xv[1] := -0.9;
Yi[1] := 0.0;
Yi[2] := 1.736465;
Writeln(xv[0]:0:3,' ',Yi[1]:0:6,' ',Yi[2]:0:6);
For I := 1 to 20 do
Begin
DRKGIL(N,xv,Yi,Yf,NP,Eps);
Writeln(xv[1]:0:3,' ',Yf[1]:0:6,' ',Yf[2]:0:6);
xv[0] := xv[1];
xv[1] := xv[1] + 0.1;
Yi := Yf;
End;
Readln;
End.


Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (26)

Contoh 10 :

{Program Solusi Sistem PDB 'turunan kedua' (order 2)
dengan 'Shooting' menggunakan Metode RUNGE-KUTA-MERSON
PDB order 2 : d2Y/dx2 = -1 - (x^2 + 1)*Y
x(-1) = 0
x(1) = 0}

Type
Real = Extended;
Real01 = Array [0..1] of Real;
Real02 = Array [0..2] of Real;
Real50 = Array [1..50] of Real;

Procedure F(N : Integer;
x : Real;
Y : Real50;
Var DY : Real50);
Begin
DY[1] := Y[2];
DY[2] := -1 - (Sqr(x) + 1)*Y[1];
End;

{$I DRKMER}

Var
I,MSG,N,NP : Integer;
xv : Real01;
s : Real02;
Yi,Yf : Real50;
Eps : Real;

Begin
Eps := 1.0E-4;
N := 2;
NP := 10;
xv[0] := -1.0;
xv[1] := -0.9;
s[0] := (xv[1] - xv[0])/NP;
s[1] := s[0]/64;
Yi[1] := 0.0;
Yi[2] := 1.736465;
Writeln(xv[0]:0:3,' ',Yi[1]:0:6,' ',Yi[2]:0:6);
For I := 1 to 20 do
Begin
DRKMER(N,xv,Yi,Yf,s,Eps,MSG);
Writeln(xv[1]:0:3,' ',Yf[1]:0:6,' ',Yf[2]:0:6);
xv[0] := xv[1];
xv[1] := xv[1] + 0.1;
Yi := Yf;
End;
Readln;
End.


Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (27)
1 (0) 0 ) 0 (
) ( ) (
= =

Aplikasi Solusi PDB tunggal Order-2 dengan Teknik Substitusi Variabel (Rice &
Duong Do, hal. 229-230) menggunakan Metode Runge-Kutta-Gill :

Persamaan Diferensial Biasa Order-2 non-linier berikut :
+ = +
y ; y
x cos x sin y y


Harga-harga (kondisi) awal dari PDB tunggal di atas dapat memadai, jika persamaan
tersebut dikonversikan menjadi formula baku permisalan Sistem PDB berikut (untuk
order-2) :

+ =
1 (0)
) ( ) (
3
2
3
3 1 1
3
y dx
dy
y
y - y cos y sin
dx
dy

=
=

=
= =

=
=
0 (0)
0 (0)
1
1
2
1
2
1
1
3
2
1
y
y
y y
dx
dy
x y
y
dx
dy
dx
dy


Langkah-langkah permisalan di atas dapat dilakukan berdasarkan algoritma berikut :
Permisalan dimulai pada variabel bebas , untuk sehingga diketahui harga
turunannya (lihat kolom tengah),
x
1
y
y
2
y Permisalan kedua adalah untuk variabel terikat , untuk ,
Permisalan ketiga (yang terakhir) adalah untuk turunan variabel terikat
( dy = ) sebagai , dx dy dx
2 3
y
y
2
y
Sistem PDB baru yang diperoleh adalah dengan cara menyusun turunan-turunan
dari variabel-variabel permisalan di atas ( dan ) yang digabungkan dengan
penyusunan ulang PDB tunggal di atas untuk dy (lihat kolom kiri)
1
Harga-harga atau kondisi awal dari sistem PDB di atas berturut-turut merupakan
harga-harga pada (dalam hal ini ), variabel terikat pada saat 0 = x (0)
1
y 0 = x
(dalam hal ini ), dan turunan pertama variabel terikat pada saat
(dalam hal ini ).
dx
3
(0)
2
y 0 = x
(0)
3
y
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (28)
2
y x
2
y

Solusi yang diinginkan adalah harga-harga sebagai fungsi .

Perbandingan harga-harga solusi numerik dengan metode RKG dari PDB di atas ( )
dengan solusi eksak disajikan pada tabel di bawah ini :

Tabel 7. Perbandingan solusi numerik sistem PDB order-2 dengan metode RK-Gill dengan solusi analitis.
Metode Runge-Kuta-Gill (Contoh 11) : Solusi Eksak
x
y
1
y
2
y
3
y
0.000 0.000000 0.000000 1.000000 0.000000
0.157 0.157080 0.156434 0.987688 0.156434
0.314 0.314159 0.309017 0.951057 0.309017
0.471 0.471239 0.453990 0.891007 0.453990
0.628 0.628319 0.587785 0.809017 0.587785
0.785 0.785398 0.707107 0.707107 0.707107
0.942 0.942478 0.809017 0.587785 0.809017
1.100 1.099557 0.891007 0.453990 0.891007
1.257 1.256637 0.951057 0.309017 0.951057
1.414 1.413717 0.987688 0.156434 0.987688
1.571 1.570796 1.000000 -0.000000 1.000000
1.728 1.727876 0.987688 -0.156434 0.987688
1.885 1.884956 0.951057 -0.309017 0.951057
2.042 2.042035 0.891007 -0.453990 0.891007
2.199 2.199115 0.809017 -0.587785 0.809017
2.356 2.356194 0.707107 -0.707107 0.707107
2.513 2.513274 0.587785 -0.809017 0.587785
2.670 2.670354 0.453990 -0.891007 0.453990
2.827 2.827433 0.309017 -0.951057 0.309017
2.985 2.984513 0.156434 -0.987688 0.156434
3.142 3.141593 -0.000000 -1.000000 0.000000


Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (29)

Contoh 11 :

{Program Solusi Sistem PDB 'turunan kedua' (order 2)
dengan 'konversi' atau 'substitusi variabel' menggunakan
Metode RUNGE-KUTA-GILL
PDB order 2 : y" + y' = - sin(x) + cos(x)
y1(0) = 0
y2(0) = 0 dan
y3(0) = 1}

Type
Real = Extended;
Real01 = Array [0..1] of Real;
Real50 = Array [1..50] of Real;

Procedure F(N : Integer;
x : Real;
Y : Real50;
Var DY : Real50);
Begin
DY[1] := 1;
DY[2] := Y[3];
DY[3] := -Sin(Y[1]) + Cos(Y[1]) - Y[3];
End;

{$I DRKGIL}

Var
I,N,NP : Integer;
XV : Real01;
Yi,Yf : Real50;
Eps,Pi : Real;

Begin
Pi := 4*ArcTan(1);
Eps := 1.0E-6;
N := 3;
NP := 20;
xv[0] := 0;
xv[1] := Pi/20;
Yi[1] := 0.0;
Yi[2] := 0.0;
Yi[3] := 1.0;
Writeln(xv[0]:0:3,' ',Yi[1]:0:6,' ',Yi[2]:0:6,
' ',Yi[3]:0:6,' ',Sin(xv[0]):0:6);
For I := 1 to 20 do
Begin
DRKGIL(N,xv,Yi,Yf,NP,Eps);
Writeln(xv[1]:0:3,' ',Yf[1]:0:6,' ',Yf[2]:0:6,
' ',Yf[3]:0:6,' ',Sin(xv[1]):0:6);
xv[0] := xv[1];
xv[1] := xv[1] + Pi/20;
Yi := Yf;
End;
Readln;
End.

Anda mungkin juga menyukai