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

(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

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 ð

-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

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

(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

(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)

(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)

(10)

Äfisika-komputasi ⊇

95

dimana dari aturan trapesium pendekatan untuk integral:

[

]

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

]

atau dalam bentuk yang lebih standar

]

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

,

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

)

kemudian metode Runge Kutta orde dua menjadi:

)

Komputasi untuk dua langkah diperlihatkan sebagai berikut:

:

Hasil akhir komputasi (sampai 10 langkah) sebagai berikut:

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

Penggunaan metode Runge Kutta pada persamaan diferensial orde yang lebih

tinggi, mudah. Sebagai ilustrasi, ditinjau persamaan diferensial orde kedua berikut:

),

dimana a dan b adalah koefisien dan q(t) adalah fungsi yang diketahui, dan dua

keadaan awal diberikan. Dengan definisi

(12)

Äfisika-komputasi ⊇

97

persamaan (5.24) bisa direduksi menjadi sepasang persamaan diferensial orde

pertama:

,

sehingga metode Runge Kutta orde kedua untuk persamaan diatas dituliskan sebagai

berikut:

)

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:

,

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

kedua untuk persamaan (5.27) menjadi bentuk persamaan (5.26) (a) Untuk n=1: t=0,025

(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:

(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++) {

(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

(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

Gambar 5.1 Rangkaian Listrik
Gambar 5 1 Rangkaian Listrik . View in document p.10

Referensi

Memperbarui...