MASALAH NILAI AWAL PERSAMAAN DIFERENSIAL BIASA

16 

Loading....

Loading....

Loading....

Loading....

Loading....

Teks penuh

(1)

Äfisika-komputasi ⊇

86

MASALAH NILAI AWAL

PERSAMAAN DIFERENSIAL BIASA

Pada bab ini dibahas tentang persamaan diferensial biasa, ordinary differential equations (ODE) yang diklasifikasikan kedalam masalah nilai awal (initial value) dan masalah nilai batas (boundary value), dimana kedua keadaan ini solusinya dispesifikasi pada waktu awal (initial time). Akan disajikan beberapa metode pendekatan komputasi numerik untuk menangani permasalahan yang berkaitan dengan persamaan diferensial biasa, dengan beberapa contoh kasus terapan.

A. SASARAN UMUM

Sasaran umum dari perkuliahan ini adalah memberikan pemahaman kepada mahasiswa mengenai penyelesaian persamaan diferensial biasa ke dalam model komputasi numerik, yang banyak dijumpai dalam formulasi fenomena atau sistem fisika.

B. SASARAN KHUSUS

Setelah perkuliahan selesai dilaksanakan, mahasiswa diharapkan mampu: 1. Menjelaskan konsep nilai awal dan nilai batas dalam persamaan diferensial biasa

dalam pendekatan komputasi numerik.

2. Menyebutkan beberapa metode yang populer digunakan dalam menyelesaikan permasalahan persamaan diferensial biasa.

3. Menjelaskan strategi dasar dari beberapa metode komputasi numerik untuk persamaan diferensial biasa

4. Mengimplementasikan dalam bentuk program tentang persamaan diferensial biasa dalam beberapa kasus yang ditangani.

C. URAIAN MATERI

(2)

Äfisika-komputasi ⊇

87

Banyak hukum-hukum fisika yang ‘sangat pas’ diformulasikan dalam bentuk persamaan diferensial. Lebih lanjut, tidak mengherankan bahwa solusi komputasi numerik dari persamaan-persamaan diferensial menjadi bagian yang umum dalam pemodelan sistem-sistem fisika. Beberapa hukum mendasar diantaranya sebagai berikut:

Hukum Formulasi

Matematika

Variabel & Parameter

Hukum Newton II tentang gerak

Hukum Panas Fourier Hukum Faraday m F dt dv = dx dT k q =− ' dt di L VL = ∆

Kecepatan (v), gaya (F) dan massa (m)

Flux panas(q), konduktivitas termal (k’) dan temperatur (T)

Tegangan Drop (∆VL), induktansi (L) dan arus (i)

Bentuk umum persamaan diferensial biasa adalah set M pasang persamaan orde satu, ) , (x y f dx dy = (5.1)

dimana x adalah variabel bebas, dan y adalah sebuah set dari M variabel takbebas ( f adalah vektor komponen M). Persamaan diferensial orde yang lebih tinggi bisa dituliskan dalam bentuk persamaan diferensial orde satu.

Gerak 1 dimensi sebuah partikel bermassa m, dibawah pengaruh gaya sebesar F(z), dituliskan dalam bentuk persamaan orde dua:

) ( 2 z F dt z d m = (5.2)

Jika momentum didefinisikan sebagai perkalian massa dengan kecepatan, yang dituliskan sebagai

dt dz m t

p( )= (5.3)

maka persamaan (5.2) menjadi dua pasang persamaan orde satu (Hamilton),

m p dt dz = dan F(z) dt dp = (5.4)

(3)

Äfisika-komputasi ⊇

88

Akan dibahas beberapa metode untuk menyelesaikan persamaan diferensial biasa, dengan penekanan pada masalah nilai awal. Artinya, mencari y(x) yang diberikan oleh nilai y pada beberapa titik awal, y(x=0)=y0. Kasus atau masalah dalam

tipe ini, diantaranya saat memberikan posisi awal dan momentum suatu partikel dan diharapkan memberikan atau menemukan gerak selanjutnya, menggunakan persamaan (5.3).

Masalah nilai awal pada persamaan diferensial biasa bisa dituliskan dalam bentuk ) , ( ) ( ' t f y t y = ; y(0)= y0 (5.5)

dimana f(y,t) adalah fungsi terhadap y dan t, dan persamaan kedua adalah keadaan awal. Pada persamaan (5.5) turunan pertama terhadap y diberikan sebagai fungsi y dan t, dan akan dicari fungsi y yang tidak diketahui dengan melakukan integrasi f’(y,t).

Banyak contoh untuk masalah nilai awal persamaan diferensial biasa, antara lain: (a) y'(t)=3y+5,y(0)=1 (b) y'(t)=ty+1,y(0)=0 (c) , (0) 1 1 1 ) ( ' 2 = + − = y y t y (d) y'= z,z'= −y,y(0)=1,z(0)=0

Prinsip metode komputasi numerik untuk persamaan diferensial bia sa adalah menentukan solusi pada titik-titik, tn=tn-1+h, dimana h adalah lebar langkah ( atau

interval waktu) . Ada beberapa pemilahan tipe metode, diantaranya metode Euler, metode Runge-Kutta, dan metode Predictor-Corrector. Berdasarkan kaku tidaknya persa maan (stiff equation), ada kategori nonstiff equation, meliputi metode Euler, metode Runge -Kutta dan metode Predictor-Corrector. Sedangkan kategori stiff equation meliputi metode implisit dan metode transformasi eksponensial.

Dengan pertimbangan ragam pema haman, pada bab ini ditelaah 3 macam metode berdasarkan tingkatan kasus dan metode yang ditangani yaitu metode Sederhana, metode Implisit dan metode Runge-Kutta.

(4)

Äfisika-komputasi ⊇

89

5.1 METODE SEDERHANA

Secara umum, solusi persamaan diferensial dari persamaan (5.4) didekati dengan keadaan awal, y(x=0)=y0. Lebih spesifik, sebenarnya bisa dianalisis pada

nilai y dengan sebarang x, misalnya 1.

Strategi umum pada metode sederhana ini adalah membagi interval [0,1] menjadi sejumlah N, sehingga lebar sub-interval sama h=1/N, kemudian membangun sebuah formula rekursi terkait yn pada { yn-1, yn-2,…} dimana yn adalah

pendekatan pada y(xn=nh). Sebagaimana sebuah rekursi, pola integrasi selangkah

demi langkah pada persamaan diferensial dari x=0 sampai x=1.

Salah satu algoritma metode sederhana adalah metode Euler, dimana persamaan (5.1) ditinjau pada titik xn dengan pendekatan diferensiasi beda maju, seperti yang telah dibahas pada bab IV, sehingga

) , ( ) ( 1 n n n n O h f x y h y y = + − + (5.6)

sehingga relasi rekursi yn+1 yang dinyatakan da lam bentuk yn adalah ) ( ) , ( 2 1 y hf x y O h yn+ = n + n n + (5.7)

Formula ini memiliki kesalahan lokal ( yang terjadi karena langkah tunggal dari yn ke yn+1) sebesar O(h2). Kesalahan global yang terjadi dalam mencari y(1)

dengan memberikan sejumlah N langkah integrasi dari x=0 sampai x=1 sebesar N kali O(h2) O(h).

Contoh 5.1

Selesaikan set persamaan diferensial biasa berikut dengan metode dengan h=0,005ð dan h=0,0005 ð : , ' , ' y z z y − = = 0 ) 0 ( 1 ) 0 ( = = z y solusi

(5)

Äfisika-komputasi ⊇

90

: 0,001 t2 : 0005 , 0 1 ; 0 0 π π = = = t t 00314 , 0 ) 1 )( 0005 , 0 ( 00157 , 0 1 1 2 99999 , 0 ) 00157 , 0 )( 0005 , 0 ( 1 1 1 2 00157 , 0 ) 1 )( 0005 , 0 ( 0 0 0 1 0 . 1 ) 0 )( 0005 , 0 ( 1 0 0 1 0 0 1 0 − = − − = − = = − + = + = − = − = − = = + = + = = = π π π π hy z z hz y y hy z z hz y y z y

pada tabel dibawah disajikan hasil perhitungan untuk nilai-nilai t yang dipilih dibandingkan dengan solusi eksak, y=cos(t) dan z=-sin(t).

Eksak h=0,005ð h=0,0005 ð t y z y z y Z 0.5 ð ð 1,5 ð 2 ð 3 ð 6 ð 8 ð 0 -1 0 1 -1 1 1 -1 0 1 0 0 0 0 1,3E-4 -1,02497 -4,01E-4 1,05058 -1,07682 1,15954 1,21819 -1,01241 -2,67E-4 1,03770 5,48E-4 -8,43E-4 1,82E-3 2,54E-3 2,62E-6 -1,00247 -7,88E-6 1,00495 -1,00743 1,01491 1,01994 -1,00123 -5,25E-6 1,00371 1,05E-5 -1,58E-5 3,19E-5 4,27E-5

Dari hasil diatas menunjukkan bahwa kesalahan pada y bertambah dengan pertambahan t, dan sebanding dengan h ( lihat bahwa nilai y untuk t= ð , 2ð, 3ð, 6ð dan 8ð: nilai z untuk t tersebut tidak mengikuti trend yang sama, karena ketika z nol , kesalahan z secara signifikan dipengaruhi oleh pergeseran fase.

Contoh 5.2

Buatlah program untuk mencari nilai pendekatan komputasi numerik, dari persamaan diferensial dengan keadaan batas,

1 ) 0 ( ; = − = xy y dx dy

Integrasikan maju dari x=0 sampai x=3, dimana solusinya adalah 2 2 1x e− .

solusi

Program dalam BASIC

Inputnya adalah lebar langkah (h) dan output yang ditampilkan adalah hasil integrasi dan kesalahan yang terjadi.

(6)

Äfisika-komputasi ⊇

91

10 DEF FNF(X,Y)=-X*Y 20 INPUT “masukkan nilai h”;H 30 IF H <= 0 THEN STOP 40 N=3/H 50 Y=1 60 FOR I%=0 TO N%-1 70 X=I%*H 80 Y=Y+H*FNF(X,Y) 90 DIFF=EXP(-0,5*(X+H)^2)-Y

100 PRINT I%, X+H, Y, DIFF

110 NEXT I% 120 GOTO 20

Kesalahan jawaban atau hasil ditentukan dari y(1)=e-1/2=0,606531 dan y(3)=e

-9/2

=0,011109. Tingkat kesalahan dalam integrasi dy/dx=-xy dengan y(0)=1, pada variasi lebar langkah seperti terlihat pada tabel berikut.

Euler dengan persamaan (5.7)

H y(1) y(3) 0,500 0,200 0,100 … … 0,005 0,002 0,001 -1,43469 -0,46330 -0,21625 … … -0,01014 -0,00405 -0,00203 0,011109 0,006519 0,03318 … … 0,000167 0,000067 0,000038

Kesalahan akan berkurang secara linear dengan semakin kecilnya h. Bagaimanapun, kesalahan fraksi ( kesalahan dibagi oleh y) akan meningkat terhadap x ketika langkah semakin banyak diberikan di dalam integrasi dan y menjadi kecil.

Meskipun metode Euler kelihatannya cukup baik, tetapi secara umum tidak memuaskan karena akurasinya rendah. Metode yang lebih tinggi satu klas dari

(7)

Äfisika-komputasi ⊇

92

kesederhanaannya bisa diturunkan dari deret Taylor yang ekspansinya untuk yn+1

disekitar yn: ) ( 2 1 ) ( ' 2 '' 2 1 y x h y hy h y O h yn+ = n + = n + n+ n + (5.8)

dari persamaan (5.1) kita memiliki ) , ( ' n n n f x y y = (5.9)

Jika disubtitusikan pada persamaan (5.8) hasilnya adalah:

f y f x f x y y f x f y x dx df yn n n ∂ ∂ + ∂ ∂ = ∂ ∂ ∂ ∂ + ∂ ∂ = = ( , ) " (5.10)

subtitusikan ke (5.8) hasilnya adalah

) ( . 2 1 2 3 1 O h y f f x f h hf y yn n +     ∂ ∂ + ∂ ∂ + + = + (5.11)

dimana f dan turunannya dievaluasi pada (xn,yn). Relasi rekursi memiliki kesalahan

lokal O(h3) dan kesalahan global O(h), satu tingkat lebih akurat daripada kesalahan pada metode Euler. Metode ini sangat bermanfaat ketika f diketahui secara analitik dan cukup sederhana untuk turunannya.

5.2 MULTI STEP & METODE IMPLISIT

Metode lain yang akurasinya lebih baik, adalah menggunakan relasi rekursi yang menghubungkan yn+1 tidak hanya pada yn, tetapi juga pada titik-titik lebih

lanjut, katakan yn-1,yn-2,….

Untuk menurunkan formulanya, kita integralkan satu langkah persamaan diferensial (5.1)

+ + = + 1 ) , ( 1 n n x x n n y f x y dx y (5.12)

Masalahnya adalah kita tidak tahu f melampaui interval integrasi. Tapi kita bisa gunakan nilai y pada xn dan xn-1 untuk menentukan ekstrapolasi linear f, melalui

interval ) ( ) ( ) ( 2 1 1 f O h h x x f h x x f n n n n − − + − ≈ − − (5.13)

dimana fif(xi,yi). Subtitusikan ke dalam (5.12) dan kerjakan integral terhadap x, lalu hasiln ya dalam metode 2 langkah Adam-Bashforth adalah:

(8)

Äfisika-komputasi ⊇

93

) ( 2 1 2 3 3 1 1 y h f f O h yn n n n +      + = + (5.14)

Dengan cara yang sama, metode -metode lain untuk orde tinggi bisa diturunkan dengan ekstrapolasi terhadap polinomial orde tinggi. Sebagai contoh, jika f diekstrapolasi oleh polinomial kubik, dipetakan pada fn, fn-1, fn -2 dan fn -3, metode

empat langkah Adam-Bashforth menghasilkan:

(

55 59 37 9

)

( ) 24 4 3 2 1 1 f f f f O h h y yn+ = n + nn + nn + (5.15)

Untuk metode implisit, persamaan diselesaikan dengan menentukan yn+1,

pada persamaan (5.1) pada sebuah titik xn (n 21)h 2

1 ≡ +

+ di posisi tengah antara 2

titik-titik kisi: ) , ( 2 1 2 1 2 1 + + + = n n n y x f x dx dy (5.16)

Jika kita gunakan pendekatan simetri yang berbeda untuk turunan ( analog dengan

h h h f f f 1 1 12 , 2

'≈ − − → ) dan menggantikan fn+1/2 dengan rata-rata nilai titik-titik kisi

yang berdekatan ( kesalahan pada penggantian ini O(h2)), persamaan (5.16) dituliskan

(

)

( ) 2 1 ) ( 2 1 2 1 O h f f O h h y y n n n n − + = + + + + (5.17)

Bentuk (5.17) baik dan bagus, tetapi sifat yn+1 pada kedua sisi mengindikasikan harus ada penyelesaian non trivial ( mirip dengan Newton Raphson pada integrasi) pada setiap langkah integrasinya, yang tentunya cukup menghabiskan waktu.

Penyederhanaannya adalah jika f adalah fungsi linear f(x,y)=g(x,y), sehingga pada kasus pada contoh 5.1, bisa diselesaikan

n n n n y h x g h x g y      − + = + + ) ( 1 ) ( 1 1 2 1 2 1 1 (5.18)

Contoh 5.3

Selesaikan kasus contoh 5.2 dengan metode ekspansi deret Taylor , persamaan (5.10) dan metode Multiple & Implisit, persamaan (5.18).

(9)

Äfisika-komputasi ⊇

94

Dengan merubah fungsi yang dideklarasikan dengan program BASIC, pada line 80 list program contoh 5. 2, dengan fungsi rekursi Taylor (5.10) dan Implisit (5.18), maka program akan memberikan hasil output dalam besar kesalahan.

Berikut adalah hasil setelah di running, Taylor dengan persamaan

(5.10)

Implisit dengan persamaan (5.18)

H

y(1) y(3) y(1) y(3)

0,500 0,200 0,100 … … 0,005 0,002 0,001 0,032312 0,005126 0,001273 … … 0.000003 0,000001 0,000000 -0,006660 -0,000712 -0,000149 … … 0,000000 0,000000 0,000000 -0,015691 -0,002525 -0,000631 … … -0,000001 0,000000 0,000000 0,001785 0,000255 0,000063 … … 0,000000 0,000000 0,000000

Dilihat dari hasil, dan dibandingkan dengan metode Euler pada contoh 5. 2, maka terlihat pendekatan Taylor dan Implisit memberikan hasil yang lebih baik pada lebar langkah yang sama. Dan pada kasus ini, metode Implisit lebih cepat konvergen dibanding Taylor maupun Euler.

5.3 METODE RUNGE-KUTTA

Kekurangan utama dari metode Euler adalah tingkat akurasinya yang rendah. Keadaan ini membuat kerugian ganda. Untuk mencapai tingginya akurasi memerlukan h yang sangat kec il, disamping meningkatnya waktu komputasi dan mengakibatkan terjadinya kesalahan pembulatan (round off error).

Pada metode Runge -Kutta, tingkat akurasinya meningkat oleh penggunaan titik-titik lanjutan pada tiap-tiap langkah interval. Akurasi yang lebih tinggi juga memberikan implikasi kesalahan berkurang lebih cepat dibanding metode akurasi tingkat rendah ketika h dikurangi.

Tinjau persamaan diferensial biasa dengan nilai batas secara umum dituliskan ) , ( ) ( ' t f y t y = ; y(0)= y0 (5.19)

untuk menghitung yn+1 pada tn+1 =tn+h dengan nilai yn yang diketahui, kita integrasikan persamaan (5.19) pada interval

[

tn,tn+1

]

sebagai

(10)

Äfisika-komputasi ⊇

95

+ + = + 1 ) , ( 1 n n t t n n y f y t dt y (5.20)

dimana dari aturan trapesium pendekatan untuk integral:

[

]

+ ≅ + + + 1 ) , ( ) , ( 2 1 ) , ( 1 1 n n t t n n n n t f y t y f h dt t y f (5.21)

pada persamaan (5.21) yn+1 tidak diketahui, sehingga bentuk kedua didekati oleh

)

,

(

y

n+1

t

n+1

f

, dimana

y

n+1 adalah perkiraan pertama untuk yn+1yang dihitung dengan metode Euler. Skema yang didapatkan disini dinamakan metode Runge -Kutta dan diringkas sebagai berikut:

[

1 1

]

1 1 , ( ) , ( 2 ) , ( + + + + + − = + = n n n n n n n n n n t y f t y f h y y t y hf y y

atau dalam bentuk yang lebih standar

] [ 2 1 ) , ( ) , ( 2 1 1 1 1 2 1 k k y y t k y hf k t y hf k n n n n n n + + = + = = + + (5.22)

Metode Runge Kutta orde kedua ini identik dengan metode Euler Predictor -Corrector, yaitu metode predictor corrector yang paling sederhana. Persamaan ini juga ekivalen dengan metode Euler modifikasi yang diaplikasikan hanya dengan satu langkah iterasi.

Contoh 5.4

Sebua h rangkaian ditunjukkan pada gambar 5.1 memiliki induktansi diri L=50H, resistensi R=20 ohm, dan sumber tegangan V=10 volt. Jika saklar ditutup pada t=0, arus I(t) memenuhi

, ) ( ) (t RI t E I dt d L + = I(0)=0 (5.23)

Tentukan arus listrik yang mengalir untuk 0 t 10 detik menggunakan metode Runge Kutta orde kedua dengan h=0,1

Solusi:

E

I(t)

R L

(11)

Äfisika-komputasi ⊇

96

Persamaan (5.23) dituliskan kembali dalam bentuk

) , ( ) ( ) ( f I t L E t I L R t I dt d ≡ + +

kemudian metode Runge Kutta orde dua menjadi:

) 2 1 ( 2 1 ) 1 ( 2 1 1 I k k I L E k In L R h k L E I L R h k n n = + +     + + =     + = +

Komputasi untuk dua langkah diperlihatkan sebagai berikut: : ) 1 , 0 ( 0 = = t n

[

]

[

]

0196 , 0 ) 0192 , 0 02 , 0 ( 2 1 0 0 ) 2 1 ( 2 1 0192 , 0 02 , 0 ) 02 , 0 0 )( 4 , 0 ( 1 , 0 2 02 , 0 2 , 0 ) 0 )( 4 , 0 ( 1 , 0 1 0 1 = + + = = + + = = + + − = = + − = k k I I k k : ) 1 , 0 ( 0 = = t n

[

]

[

]

038431 , 0 ) 018447 , 0 019216 , 0 ( 2 1 0196 , 0 ) 2 1 ( 2 1 018447 , 0 02 , 0 ) 019216 , 0 0196 , 0 )( 4 , 0 ( 1 , 0 2 019216 , 0 2 , 0 ) 0196 , 0 )( 4 , 0 ( 1 , 0 1 1 2 = + + = − + = = + + − = = + − = k k I I k k

Hasil akhir komputasi (sampai 10 langkah) sebagai berikut:

t(detik) I(amp) t(detik) I(amp)

0 1 2 3 4 5 0 0,1648 0,2752 0,3493 0,3990 0,4332 6 7 8 9 10 (∞) 0,4546 0,4695 0,4796 0,4863 0,4908 (0,500)

Penggunaan metode Runge Kutta pada persamaan diferensial orde yang lebih tinggi, mudah. Sebagai ilustrasi, ditinjau persamaan diferensial orde kedua berikut:

), ( ) ( ) ( ' ) ( " t ay t byt q t y + + = y(0)=1,y'(0)=0 (5.24)

dimana a dan b adalah koefisien dan q(t) adalah fungsi yang diketahui, dan dua keadaan awal diberikan. Dengan definisi

) ( ' ) (t y t z = (5.25)

(12)

Äfisika-komputasi ⊇

97

persamaan (5.24) bisa direduksi menjadi sepasang persamaan diferensial orde pertama: , ) , , ( ' , ) , , ( ' q by az t z y g z z t z y f y + − − ≡ = ≡ = 0 ) 0 ( 1 ) 0 ( = = z y (5.26)

sehingga metode Runge Kutta orde kedua untuk persamaan diatas dituliskan sebagai berikut: ) ( 2 1 ) ( 2 1 ) ) ( ) ( ( ) 1 , , (( ) 1 ( ) 1 , , (( ) ( ) , , ( ) , , ( 2 1 1 2 1 1 1 1 1 1 1 2 1 1 2 1 1 l l z z k k y y q y b z a h t l z k y hg l z h t l z k y hf k q y bz az h t z y hg l hz t z y hf k n n n n n n n n n n n n n n n n n n n n n n n n + + = + + = + − − = + + + = + = + + + = + = − − = = = = + + + + +

::: Studi Kasus Fisika :::

Sebuah kotak kubus bermassa M=0,5 kg terikat pada ujung bawah sebuah tali tak bermassa. Pada ujung tali atas diikatkan pada tiang diam. Kubus menerima resistansi R= -B dy/dtndari udara, dimana B adalah konstanta damping (lihat gambar 5.2). persamaan geraknya adalah:

, 0 2 2 = + + y ky dt d B y dt d M y(0)=1,y'(0) =0 (5.27)

dimana y adalah perpindahan dari posisi statis, k adalah konstanta pegas sebesar 100 kg/det2, dan B=10 kg/det.

Hitunglah menggunakan metode Runge Kutta orde kedua: (a) y(t) untuk 0<t<0,05 detik dengan h=0,025.

(b) y(t) untuk 0<t<10 detik dengan h=0,001 (c) Ulangi langkah (b) untuk B=0

Solusi:

Persamaan (5.27) bisa dituliskan sebagai

Logam kubus

y

(13)

Äfisika-komputasi ⊇

98

), , , ( ' ), , , ( ' t z y g y M k z M B z t z y f z y ≡ − − = ≡ = 0 ) 0 ( 1 ) 0 ( = = z y dengan mengatur = =20, = =200, M k b M B

a , dan g=0, metode Runge Kutta orde

kedua untuk persamaan (5.27) menjadi bentuk persamaan (5.26) (a) Untuk n=1: t=0,025 5 , 2 )] 0 1 ( 200 ) 5 0 ( 20 [ 025 , 0 )] ) ( 200 ) ( 20 [( ) , , (( 125 , 0 ) 5 0 ( 025 , 0 ) ( ) , , (( 5 )) 1 ( 200 ) 0 ( 20 ( 025 , 0 ) 200 20 ( ) , , ( 0 ) 0 ( 025 , 0 ) , , ( 1 0 1 0 1 1 0 1 0 2 1 0 0 1 0 1 0 2 0 0 0 0 0 1 0 0 0 0 1 − = + − − − = + − + − = + + = − = − = + = + + = − = − − = − − = = = = = = k y l z h t l z k y hg l l z h t l z k y hf k y z h t z y hg l hz t z y hf k 75 , 3 ) 5 , 2 5 ( 2 1 9375 . 0 ) 125 , 0 0 ( 2 1 0 1 0 1 − = − − + = = − + = z z y y untuk n=2: t=0,05 9375 , 0 )] 093750 , 0 9375 , 0 ( 200 ) 8125 , 2 75 , 3 ( 20 [ 025 , 0 )] ( 200 ) ( 20 [( ) , , (( 1640625 , 0 ) 8125 , 2 75 , 3 ( 025 , 0 ) ( ) , , (( 8125 , 2 )) 9375 . 0 ( 200 ) 75 , 3 ( 20 ( 025 , 0 ) 200 20 ( ) , , ( 09375 , 0 ) 75 , 3 ( 025 , 0 ) , , ( 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 2 − = − − − − − = + − + − = + + = = − − = + = + + = − = − − − = − − = = − = − = = = k y l z h t l z k y hg l l z h t l z k y hf k y z h t z y hg l hz t z y hf k 625 , 5 ) 9375 , 0 8125 , 2 ( 2 1 80859 . 0 ) 1640625 , 0 09375 , 0 ( 2 1 1 2 1 2 − = − − + = = − − + = z z y y

(b) dan (c) pada bagian ini komputasi dikerjakan dengan menggunakan program, dan memberikan hasil setelah 50 langkah pada 0,75 detik, seperti terlihat pada tabel berikut:

t (detik) (b) (B=10) y (meter) (c) (B=0) y (meter) 0 0,05 1,000 0,823 1,000 0,760

(14)

Äfisika-komputasi ⊇

99

0,1 0,15 0,2 0,25 0,3 0,35 0,4 0,45 0,5 0,55 0,6 0,65 0,7 0,75 0,508 0,238 0,066 -0,016 -0,042 -0,038 -0,025 -0,013 -0,004 0,000 0,001 0,001 0,001 0,000 0,155 -0,523 -0,951 -0,923 -0,45 0,235 0,810 0,996 0,705 0,075 -0,590 -0,973 -0,889 -0,378 Program dalam C # include <stdio.h> #include <stdlib.h> #include <math.h> /* waktu: t y, z: y, y’

kount: jumlah langkah antara 2 jalur yang dicetak k, m, b: k, M(massa), B(koefisien damping) */ main()

{

int kount, n, kstep=0; float bm, k1, k2, km, l1, l2;

static float time, k=100.0, m=0.5, b=10.0, z=0.0 static float y= 1.0, h=0,001;

printf(“ Hasil Komputasi Metode Runge Kutta Orde Kedua \n”); printf(“ t y z\n”);

printf(“ %12.6f %12.5e %12.5e \n”, time, y, z); km= k/m;

bm=b/m;

for ( n=1; n<=20; n++) {

for ( kount =1; kount<=50; kount++) { kstep=kstep+1; time=h*kstep;

(15)

Äfisika-komputasi ⊇

100

k1=h*z; l1=-h*(bm*z+km*y);

k2=h*(z+11); l2=-h*(bm*(z+l1)+km*(y+k1)); y=y+ (k1 + k2)/2; z=z+(11+12)/2;

}

printf(“ %12.6f %12.5e %12.5e \n”, time, y, z ); }

exit (0) }

D. SOAL-SOAL

(3.1) Selesaikan persamaan diferensial biasa berikut dalam 0 t 5 menggunakan metode Euler, dengan h=0.5

), ( ' 3 ' , 1 ' 2 y t y e y y ty y t − = = + = + − 5 , 0 ) 0 ( 1 ) 0 ( 1 ) 0 ( = = = y y y

(3.2) tanki kanonik berisi air dengan ketinggian 0,5m dari dasar. Tanki memiliki lobang dengan radius 0,02m pada dasarnya. Radius tanki dalam y diberikan oleh r=0,25y, dimana r adalah radius dan y adalah ketinggian yang diukur dari dasar tanki. Kecepatan air yang mengalir melalui lubang diberikan oleh v2=2gy dimana g=9,8 m/det2. Menggunakan metode Euler ( gunakan h=0,001 detik), tentukan berapa menit tanki menjadi kosong.

(3.3) Hitunglah y(2) untuk persamaan berikut dengan metode Runge Kutta orde pertama, dengan h=1. 1 ) 0 ( , ' 2 = + − = y y t y y

(3.4) Masalah nilai awal pada persamaan diferensial biasa diberikan oleh

0 ) 0 ( '' ) 0 ( ' 1 ) 0 ( , '' ' = = = − = y y y y y

Gunakan metode Runge Kutta orde kedua dengan h=0,2, hitunglah y(0,4) dan y(1).

(3.5) Buatlah program untuk menyelesaikan persamaan diferensial biasa pada soal (5.2)

(16)

Äfisika-komputasi ⊇

101

E. DAFTAR PUSTAKA

Chapra, S.C., and Canale, R.P., Numerical Methods for Engineers, McGraw-Hill, 1998

Gear, C. W., Numerical Initial Value Problems in Ordinary Differential Equations, Prentice -Hall, 1971

Hall, G and J.M Watt, Modern Numerical Methods for Ordinary Differential

Equations, Clarendon Press, 1976

Koonin, S.E., Computational Physics, Addison-Wesley Inc, 1986

Mathews, J.H., Numerical Methods for Mathematics, Science and Engineering, Prentice -Hall Inc., 1992

Morris,J.L., Computational Methods in Elementary Numerical Analysis, Wiley, 1983 Nakamura, S., Applied Numerical Methods in C, Prentice-Hall Inc. 1993

Figur

Memperbarui...

Referensi

Memperbarui...

Related subjects :