Masalah syarat awal
Bab 6 Masalah syarat awal
Bab ini memberikan gambaran penggunaan metode numerik untuk penyelesaian syarat awal yaitu masalah untuk
memecahkan persamaan diferensial secara numerik ketika nilai
fungsi pada keadaan awal diketahui. Mengingat kebanyakan hukum dan masalah fisika diungkapkan dalam bentuk persamaan diferensial maka setelah menyelesaikan bab ini pengguna diharapkan memiliki kemampuan untuk
menyelesaikan dan sekaligus memahami perilaku masalah fisika
yang dihadapai.
6.1 Metode Euler
Ditinjau suatu masalah fisika yang diwakili oleh persamaan diferensial berbentuk
dengan f (x, y) adalah fungsi yang diberikan oleh masalah yang bersangkutan dan oleh karenanya diketahui bentuk eksplisitnya sedang y(x) adalah fungsi yang akan
dicari pada sebarang x≥x 0 . Di dalam berbagai kasus fisika, masalah untuk men- emukan y(x) tersebut dipengaruhi oleh adanya persyaratan bahwa pada saat awal x=x 0 maka nilai fungsi pada keadaan tersebut adalah y(x 0 )=y 0 dengan y 0 berupa satu nilai yang diberikan sejak awal. Arti dari istilah masalah syarat awal merupakan pencerminan dari sifat masalah seperti yang baru saja disinggung tersebut.
Salah satu metode numerik untuk menyelesaikan masalah syarat awal tersebut adalah dengan menggunakan metode Euler yang memiliki ungkapan [3]
(6.2) dengan y i ≡ y(x i ), f i ≡ f (x i ,y i ) dan ukuran langkah h = x i+1 − x i . Dengan ungka-
y i+1 =y i + hf i ,
i = 0, 1, 2, . . .
pan tersebut maka saat y 0 diketahui dari syarat awal maka y 1 akan dapat dihitung. Kemudian ketika y 1 sudah diperoleh maka y 2 dapat dihitung dan apabila diteruskan maka y 3 ,y 4 ,...,y N akan dapat diperoleh. Ini berarti nilai y(x) sudah berhasil diper- oleh untuk sebarang nilai x yang kita tentukan.
6.2 Contoh masalah fisika : gerak osilasi
Tinjau sebuah pegas dengan tetapan gaya k yang pada ujungnya terdapat partikel bermassa m. Ketika pegas diregangkan dan dilepaskan lagi maka partikel akan men- jalani gerak osilasi yang diberikan oleh persamaan gaya
dengan v adalah kecepatan sebagai fungsi waktu t, a adalah percepatan, F adalah gaya dan x adalah posisi partikel. Dari definisi kecepatan diperoleh
Jika dibandingkan maka bentuk persamaan (6.3) maupun (6.4) terlihat sama dengan persamaan (6.1). Ini berarti metode Euler dapat diterapkan ke persamaan (6.3) untuk mendapatkan v(t). Dari perolehan v(t) tersebut maka ruas kanan persamaan (6.4) dapat diketahui. Kemudian jika metode Euler diterapkan pada persamaan (6.4) maka x(t) akan dapat diperoleh juga. Secara ringkas untuk mendapatkan v(t) dan x(t) untuk gerak osilasi partikel pada pegas maka langkah numerik yang ditempuh adalah
1. Gunakan metode Euler ke persamaan (6.3) dalam bentuk
2. Gunakan metode Euler ke persamaan (6.4) dalam bentuk
x i+1 =x i + hv i ,
(6.6) dengan nilai x 0 dan v 0 adalah nilai x(t) dan v(t) saat t = t 0 yang diberikan oleh
syarat awal serta i = 0, 1, 2, . . . , N dengan t = t 0 + hi.
6.3 Ketelitian komputasi
Kenyataan bahwa partikel dalam sistem pegas memiliki tenaga total
E yang ajeg dap- at dimanfaatkan sebagai indikator ketelitian penyelesaian komputasi dengan metode Euler di atas. Untuk melihat keajegan tersebut maka ada baiknya dihitung
E melalui kaitan
E= mv + kx .
Program dalam bahasa Fortran 90 dengan nama prakt_s1_masalah3.f90 seperti di bawah adalah implementasi dari masalah syarat awal tersebut. Dalam pro- gram di bawah diasumsikan bahwa semua besaran fisis dinyatakan dalam sistem SI.
PROGRAM syarat_awal !-------------------------------------------------------- !Contoh program penyelesaian masalah syarat awal dengan !metode Euler !Tanggal 2 Mei 2001 !--------------------------------------------------------
IMPLICIT NONE REAL :: h,k,m,t0,x0,v0,fv,fx,ti,xi,vi,tenaga INTEGER i,n
!-------------------------------------------------------- !Nilai masukan tetapan gaya pegas k, massa partikel m, !ukuran langkah h (interval waktu), waktu awal t0 serta !cacah interval waktu N. !--------------------------------------------------------
k=1.0 m=1.0 t0=0.0 h=0.1 n=50
!-------------------------------------------------------- !Nilai x(t) dan v(t) saat t=t0 (syarat awal)
!-------------------------------------------------------- x0=0.0 v0=2.0
!-------------------------------------------------------- !Bentuk fungsi f pada ruas kanan dari persamaan !diferensial yang terkait !--------------------------------------------------------
fv=-k*x0/m fx=v0
!-------------------------------------------------------- !Implementasi metode Euler yaitu menghitung v(t) dan x(t) !disertai menghitung tenaga total pada setiap waktu !sehingga dapat dilihat tenaga total ajeg atau tidak !--------------------------------------------------------
DO i=1,n ti=i*h vi=v0+h*fv xi=x0+h*fx tenaga=m*vi**2/2.0+k*xi**2/2.0 PRINT 10,ti,xi,vi,tenaga v0=vi x0=xi fv=-k*x0/m fx=v0
END DO
10 FORMAT(1x,4f10.6) END PROGRAM syarat_awal
Setelah program tersebut di-compile dan dieksekusi maka akan tampil hasil seper- ti di bawah ini.
pn@atom99:~ > a.out
0.100000 0.200000 2.000000 2.020000 0.200000 0.400000 1.980000 2.040200 0.300000 0.598000 1.940000 2.060602 0.400000 0.792000 1.880200 2.081208 0.500000 0.980020 1.801000 2.102020 0.600000 1.160120 1.702998 2.123040 0.700000 1.330420 1.586986 2.144271 0.800000 1.489118 1.453944 2.165713 0.900000 1.634513 1.305032 2.187371 1.000000 1.765016 1.141581 2.209244 1.100000 1.879174 0.965079 2.231337 1.200000 1.975682 0.777162 2.253650 1.300000 2.053398 0.579594 2.276186 1.400000 2.111357 0.374254 2.298948 1.500000 2.148783 0.163118 2.321937 1.600000 2.165095 -0.051760 2.345157 1.700000 2.159919 -0.268270 2.368608 1.800000 2.133092 -0.484261 2.392295 1.900000 2.084666 -0.697571 2.416218 2.000000 2.014909 -0.906037 2.440380 2.100000 1.924305 -1.107528 2.464784 2.200000 1.813552 -1.299958 2.489431 2.300000 1.683556 -1.481314 2.514326 2.400000 1.535425 -1.649669 2.539469 2.500000 1.370458 -1.803212 2.564864 2.600000 1.190137 -1.940258 2.590512 2.700000 0.996111 -2.059271 2.616418 2.800000 0.790184 -2.158882 2.642582 2.900000 0.574296 -2.237901 2.669008 3.000000 0.350505 -2.295330 2.695698 3.100000 0.120972 -2.330381 2.722655 3.200000 -0.112066 -2.342478 2.749882 3.300000 -0.346314 -2.331272 2.777380
3.400000 -0.579441 -2.296640 2.805154 3.500000 -0.809105 -2.238696 2.833206 3.600000 -1.032974 -2.157786 2.861538 3.700000 -1.248753 -2.054488 2.890153 3.800000 -1.454202 -1.929613 2.919055 3.900000 -1.647163 -1.784193 2.948246 4.000000 -1.825583 -1.619477 2.977728 4.100000 -1.987530 -1.436918 3.007505 4.200000 -2.131222 -1.238165 3.037580 4.300000 -2.255038 -1.025043 3.067956 4.400000 -2.357543 -0.799539 3.098635 4.500000 -2.437497 -0.563785 3.129622 4.600000 -2.493875 -0.320035 3.160918 4.700000 -2.525879 -0.070648 3.192528 4.800000 -2.532944 0.181940 3.224453 4.900000 -2.514750 0.435235 3.256698 5.000000 -2.471226 0.686710 3.289264
pn@atom99:~ > Kolom pertama pada hasil di atas menunjukkan waktu t, kolom kedua adalah
posisi x(t), kolom ketiga adalah kecepatan v(t) dan kolom keempat adalah tenaga total
E. Jika dilihat secara sepintas pada kolom kedua dan ketiga nampak bahwa po- sisi dan kecepatan sudah sesuai seperti fungsi sinus atau cosinus yaitu menunjukkan gerak osilasi. Tetapi dari kolom keempat nampak bahwa nilai tenaga total ternyata tidak ajeg tetapi berubah terhadap waktu. Ini menunjukkan bahwa hasil yang diper- oleh dengan h = 0.1 tersebut belum teliti meskipun sudah menunjukkan indikasi ke penyelesaian yang benar yaitu munculnya gerak osilasi. Tampilan grafik dari hasil di atas dapat diperoleh dengan bantuan program GnuPlot (lihat bagian 3.4.1) mengikuti perintah berikut.
pn@atom99:~/mydoc > a.out > data.txt pn@atom99:~/mydoc > gnuplot
GNUPLOT
Linux version 3.7 patchlevel 1 last modified Fri Oct 22 18:00:00 BST 1999
Copyright(C) 1986 - 1993, 1998, 1999 Thomas Williams, Colin Kelley and many others
Type ‘help‘ to access the on-line reference manual The gnuplot FAQ is available from <http://www.ucc.ie/gnuplot/gnuplot-faq.html>
Terminal type set to ’x11’ gnuplot> plot ’data.txt’ using 1:2,\ > ’data.txt’ using 1:3, \ > ’data.txt’ using 1:4 gnuplot>
4 ’data.txt’ using 1:2 ’data.txt’ using 1:3 ’data.txt’ using 1:4
Gambar 6.1: Grafik x(t), v(t) dan E hasil metode Euler saat h = 0.1
6.4 Tugas
1. Perbaiki hasil yang diperoleh di atas dengan mengubah nilai h sehingga selain diperoleh gerak osilasi yang benar juga diperoleh ketelitian yang tinggi yaitu dengan dibuktikan oleh perolehan nilai
E yang ajeg.
2. Analisis perubahan nilai masukan m, k, v 0 , x 0 serta h terhadap hasil akhir.
3. Tunjukkan dari hasil data atau grafik yang anda peroleh bahwa periode gerak osilasi cocok dengan rumus yang diperoleh secara analitik yaitu
T = 2π
(6.8)