Upload
vuongkhanh
View
235
Download
2
Embed Size (px)
Citation preview
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 :
00 )(),,(' yxyyxfy ==
Nxxx ≤≤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 [ ]Nxx ,0 yang dibagi secara tetap (equidistance) sebanyak N buah panel:
Nxxh N 0−
=
sehingga : Nihixx 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: )(xy
1
21
11 2
+
+++
≤ξ≤
ξ−
+−+=
iii
iii
iiiii
xx
),("y!
)xx()x('y)xx()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(fh)x(y)x(y iiiiii ξξ++=+ 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 : )( ii xyu ≈
1101 −=+=+ N,,,i),u,x(fhuu iiii K
00 yu =
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(ei1
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 : ix 1+ix
∑ν
=+ ω+=
11
jjjii Kuu
dengan :
),(1
1∑−
=++=
j
lljlijij KauhcxfhK
01 =c
Perlu dicatat, bila ν , 1= 1=ω , dan ),(1 ii uxfhK = 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(fh)x(y)x(y iiiiii3
2
1 02
+++=+
sedangkan ))(,(' ii xyxf dapat dituliskan sebagai :
iyxxx
iii )fff(dxdy
yf
xf
dxdf
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 :
iyxiii )fff(!
hfhuu +++=+ 2
2
1
Untuk ekspansi formula pada posisi ke-i , perlu dicatat bahwa harga
merupakan bentuk paling sederhana, sebagai berikut :
jK 1K
iii fhuxfhK == ),(1
sehingga harga dapat dihitung melalui formula berikut : 2K
),( 12122 KauhcxfhK ii ++=
Jika diketahui bahwa sembarang dua fungsi η dan φ yang lokasinya berturut-turut
berdekatan dengan dan u , maka akan diperoleh : ix i
)u,x(f)u()u,x(f)x()u,x(f,f iiyiiiiii −φ+−η+≈φη )(
Dengan menggunakan persamaan di atas untuk , maka akan didapatkan bentuk persamaan untuk menghitung :
2K
2K
)fKafhcf(hK yxi 12122 ++= atau
iyxi )ffafc(hhfK 2122
2 ++=
Bila disubstitusikan persamaan terakhir dan persamaan di atas kedalam
formula dasar Runge-Kutta (u ) di atas, maka akan diperoleh :
1K
1+i
iyixiiii )ff(ha)f(chfhfhuu 22212
22211 ω+ω+ω+ω+=+
Property of Setijo Bismo Halaman (4)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Jika dibandingkan persamaan 1+iu yang terakhir ini dengan persaamaan 1+iu
sebelumnya, maka akan diperoleh :
0121 ,=ω+ω 5022 ,c =ω 50212 ,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.
2c 21
Jika dipilih c , maka skema metode RK menjadi METODE TITIK TENGAH (midpoint method) adalah :
5,02 =
11050501 −=+++=+ N,,,i),fh,u,h,x(fhuu iiiii K
00 yu =
Dari persamaan di atas, dapat diketahui bahwa untuk menghitung ‘harga baru’, , diperlukan besaran-besaran x dan u : 1+iu i i
• dan u merupakan ‘harga awal’ ix i
• harga if dihitung sebagai fungsi dari dan u : ix i )( iii u,xff =
• adalah ‘lebar panel’ atau jarak antara u h iu 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 12 =c , maka akan diperoleh formulasi kelandaian rata-
rata (average slope) dari metode Runge-Kutta order-2 :
[ ] 11021 −=++++=+ N,,,i,)fhu,hx(ffhuu iiiiii K
00 yu =
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 2h
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 :
)()( 3231
4161
1 KdKbKKuu ii ++++=+
),(1 ii uxfhK =
),( 12 21
21 KuhxfhK ii ++=
),( 213 21 KbKauhxfhK ii +++=
),( 324 KdKcuhxfhK ii +++=
222
212 , −− == ba
22
22 1, +=−= dc
untuk : i = 0, 1, 2,…,N-1 dan
harga awal :
00 yu =
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 :
4323
121
1 2 KKKuu ii +−+=+
561
432
161
1 KKKuu ii +++=+
),(1 ii uxfhK =
),( 12 31
31 KuhxfhK ii ++=
),( 213 61
61
31 KKuhxfhK ii +++=
)KKu,hx(fhK ii 314 83
81
21 +++=
)KKKu,hx(fhK ii 42315 23
21 +−++=
untuk : i = 0, 1, 2,…,N-1 dan
harga kondisi awal :
00 yu =
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 ii uxfhK =
),( 12 41
41 KuhxfhK ii ++=
),( 213 329
323
83 KKuhxfhK ii +++=
),( 3214 21977296
21977200
21971932
1312 KKKuhxfhK ii +−++=
)8,( 43215 4104845
5133680
216439 KKKKuhxfhK ii −+−++=
)2,( 543216 4011
41041859
25653544
278
21 KKKKKuhxfhK ii −+−+−+=
• Formula ‘update’ order-4 :
551
441042197
325651408
121625
1 KKKKuu ii −+++=+
• Formula order-5 :
6552
5509
45643728561
3128256656
113516
1ˆ KKKKKuu ii +−+++=+
• Galat ‘pembabatan’ order-4 :
6552
5501
4752402197
34275128
13601
11ˆ KKKKKuu ii ++−−=− ++
untuk : i = 0, 1, 2,…,N-1 dan u 00 y=
Property of Setijo Bismo Halaman (10)
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Contoh-contoh Integrasi Numerik :
Persamaan Tunggal :
ydtdy 25−=
Solusi Eksak (Analitis) :
tey 25−=
Tabel 2. Hasil perhitungan persamaan tunggal dengan metode RK order-2.
Hasil Perhitungan Numerik (ui+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) :
yT,exp,
dxdy
*
−=
21317440
yT,exp,
dxdT
*
*
=
213069840
Tabel 3. Hasil perhitungan persamaan jamak dengan metode RK order-2.
Hasil Perhitungan Numerik untuk Sistem PDB : Contoh 4 : RK-Slope rata2 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)dan01)(
2
==− yydx
1−=x 1
11 22
+−−= y)x(yd
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 :
=−
+−−= input1)(11 21
22 yy)x(dxdy
1y 2y
1y 2y
1−=x 1=
=−
= 01)(12
1 yydxdy
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 y1 y2 y1 y2
-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
xcosxsinyy
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
23
3113
ydxdy
yy-ycosysindx
dy
=
=
=
=⇒=
=
=
0(0)
0(0)1
1
2
1
2
11
32
1
y
y
yydxdy
xy
ydx
dydxdy
Langkah-langkah permisalan di atas dapat dilakukan berdasarkan algoritma berikut : • Permisalan dimulai pada ‘variabel bebas’ , untuk sehingga diketahui harga
turunannya (lihat kolom tengah), x 1y
y 2y• Permisalan kedua adalah untuk ‘variabel terikat’ , untuk ,
• Permisalan ketiga (yang terakhir) adalah untuk ‘turunan variabel terikat’ (dy = ) sebagai , dxdydx 2 3y
y 2y• 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)1y 0=x (dalam hal ini ), dan turunan pertama variabel terikat pada saat (dalam hal ini ).
dx3
(0)2y 0=x(0)3y
Seri Mata Kuliah : PEMODELAN dan MATEMATIKA TERAPAN
Property of Setijo Bismo Halaman (28)
2y x
2y
• 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
y1 y2 y3 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.