The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by E-Library IKIP Saraswati, 2024-02-11 18:59:43

Metode Numerik (I Wayan Sudiarta)

Metode Numerik (I Wayan Sudiarta)

I Wayan Sudiarta Metode Numerik ri fungsi y(x). Turunan kedua, ketiga dan seterus nya dari fungsi y(x) dapat diperoleh dari turunan per tamanya. Metode lain untuk menentukan solusi nu merik yaitu dengan menggunakan hasil dari turunan turunannya dan kemudian menggunakan pendekatan Taylor. Pendekatan solusi numerik dengan metode Ta ylor orde ke m berbentuk sebagai berikut. (∆x)m n 2! yn+1 ≈ yn + ∆xyn + (∆x)2yn + ··· + m! y(m) (13.13) Turunan pertama untuk fungsi y(x), dituliskan kem bali supaya komplit yaitu y = f(x, y) (13.14) Turunan kedua, ketiga dan seterusnya didapatkan dengan menggunakan aturan rantai sebagai contoh berikut ini (dapat dibaca di buku kalkulus pada ba gian turunan implisit): y = f = f(x, y) y = fx + fyy = fx + fyg y = fxx [y ]2 + 2fxyy + fyy + fyy + 2fxyf + fyyf2 + fy(fx + fy)f 283 382


y(4 ) = ( fxxx + 3fzxyf + 3fxyy $2 + fyyy $3) + fx (fxx + 2fxyf + fyy $2) +3(fx + fyf ) ( fxy + fyyf) + f2(fx + fyf) dan seterusnya y( n ) = f( n - 1 ) f(x, y ) ( 13.15 ) dengan operator În diberikan oleh п Ôn - Com a a + f дх дуOy) ( 13.16) = Menggunakan contoh seperti sebelumnya y' -Y, turunan-turunan fungsi y ( x) adalah y' = -y Y " = -y' = - ( -y ) = y y " = y' = -Y y( iv ) = -4' = - ( -y ) = y y( u) = y' = -y : y( n) = ( -1) "y ( 13.17) Substitusi turunan - turunan ini pada pendekatan 284382


I Wayan Sudiarta Metode Numerik Taylor menghasilkan , (A2)” (( -1) ºyn) 3 ! (4.x )2 Yn + 1 = Yn + Al( -Yn ) + ( ( -1){ yn) + 2 ! A.x 4 + 4 ! 5 ! ( -A.x)" ] = 4n IΣ n! = Yn exp ( -A.1) Yn + 1 = exp ( -Ax) (( -1)*9m) + (4,7)"(-1)"y.)+ ... É(5473") = ( 13.18 ) Yn Menggunakan hasil metode Taylor ini , kita bisa me neruskan iterasi mulai dari titik awal ( 20 , yo) sehingga mendapatkan solusi analitiknya . y1 = yo exp( -Ar) Y2 = Yi exp ( -Ax) = yo exp ( -2Ax) : Yn = Yn exp( -nAx) = yo exp( -nAx) ( 13.19 ) Hasil ini sesuai dengan solusi analitik dengan yo = 1 yaitu y = exp ( -x ) Pada kasus y' = -y, turunan-turunannya memi liki pola tertentu sehingga mudah diselesaikan dan menghasilkan solusi analitik . Pada kasus yang lebih umum, kita biasanya menerapkan pendekatan Taylor orde 4 . 285 | 382


Jika kita hanya menggunakan pendekatan Taylor orde 4, kita memperoleh persamaan numerik berikut ini. yn+1 ≈ [ 1 yn − ∆x + ] (∆x)2 2! − (∆x)3 3! + (∆x)44! (13.20) Tabel 13.3: Solusi numerik dengan metode Taylor orde 4 untuk y = −y dan y(0) = 1 xn yn y(eksak) Galat Relatif 0.0 1 1 0 0.2 0.818733 0.818731 3.2E-06 0.4 0.670324 0.670320 6.3E-06 0.6 0.548817 0.548812 9.5E-06 0.8 0.449335 0.449329 1.3E-05 1.0 0.367885 0.367879 1.6E-05 1.2 0.301200 0.301194 1.9E-05 1.4 0.246602 0.246597 2.2E-05 1.6 0.201902 0.201897 2.5E-05 1.8 0.165304 0.165299 2.8E-05 2.0 0.135340 0.135335 3.2E-05 13.4 Metode Runge-Kutta Metode Taylor bisa memberikan hasil dengan akurasi tinggi, tetapi diperlukan turunan-turunan orde ting gi. Metode Runge-Kutta (RK) memberikan hasil yang 286 382


I Wayan Sudiarta Metode Numerik setara dengan metode Taylor order tinggi tanpa me nentukan turunan-turunannya. Penurunan persamaan numerik untuk metode RK cukup panjang dan tidak diberikan di buku ini. Selain itu, tujuan buku ini ada lah bagaimana menerapkan metode numerik pada ber bagai aplikasi, sehingga persamaan numerik diberikan tanpa ada penjelasan penurunannya. Bagi pembaca yang tertarik menurunkan persamaan numeriknya da pat membaca buku numerik lain seperti Kuo (1965), Chapra dan Canale (2006) serta Cheney dan Kincaid (1994). Secara umum, metode Runge-Kutta berbentuk, yn+1 = yn + ∆xs(xn,yn;∆x) (13.21) dengan s(xn,yn;∆x) adalah sebuah pendekatan dari rata-rata turunan pertama pada interval [xn,xn+1]. Metode yang sering digunakan untuk mendapatkan solusi PDB adalah metode Runge-Kutta orde 2 (RK2) dan orde 4 (RK4). Persamaan numerik untuk metode RK2 dan RK4 diberikan dibawah ini. 1. Persamaan untuk metode RK2 adalah 1 k1 = f(xn,yn) k2 = f(xn + 1 2∆x, yn + 2∆xk1)) yn+1 = yn + k2∆x (13.22) 287 382


2. Persamaan untuk RK4 yaitu 1 1 1 k1 = f(xn,yn) k2 1 2 2∆xk1 k3 )) = f(xn + ∆x, yn 2 + 2 )) = f(xn + ∆x, yn + ∆xk2 k4 = f(xn + ∆x, yn + ∆xk3)) yn+1 = yn + ∆x[k1 + 2k2 + 2k3 + k4] (13.23) 6 Dari persamaan (13.22) dan (13.23), kita dapat per hatikan bahwa jumlah langkah perhitungan yang di kerjakan sesuai dengan orde metode RK. Contoh supaya seragam, kita menggunakan contoh sebelumnya, y = −y untuk dua iterasi saja. Hasil yang lebih lengkap dapat dihitung menggunakan baha sa pemrograman C, python atau program spread sheet seperti MsExcel. Hasil iterasi metode RK2 dan RK4 diberikan pada Tabel 13.4 dan 13.5. Contoh perhitungan dengan metode RK2 dan pa rameter ∆x = 0.2 serta syarat awal x0 = 0, y0 = 1 adalah sebagai berikut: x1 = 0.2 k1 = f(0,1) = −1 k2 = f(0 + 0.2/2,1+0.2(−1)/2) = −0.9 y1 =1+(−0.9)(0.2) = 0.82 (13.24) 288 382


I Wayan Sudiarta Metode Numerik X2 = 0.4 ki = f( 0.2, 0.82) = -0.82 k2 = f ( 0.2 + 0.2/2,0.82 +0.2( -0.82) / 2) = -0.738 Yi = 0.82 + ( -0.738) ( 0.2 ) = 0.6724 ( 13.25 ) Sedangkan dengan metode RK4 menggunakan parameter- parameter yang sama seperti metode RK2 dikerjakan untuk dua iterasi yaitu X1 = 0.2 = ki = f ( 0, 1 ) = -1 k2 = f (0 + 0.2 / 2,1 +0.2 ( -1) /2 ) = -0.9 k3 = f (0+ 0.2 /2,1+0.2 ( -0.9) /2 ) = -0.91 kų = f( 0 + 0.2,1 +0.2( -0.91 ) ) = -0.818 0.2 Y1 = Yo + [ ( -1 ) + 2 ( -0.9 ) + 2 ( -0.91) + ( - 0.818 )] 6 = 0.818733 ( 13.26) x2 = 0.4 kı = f (0.2,0.818733) = -0.818733 k2 = f ( 0.2 + 0.2 / 2 , 0.818733 +0.2 ( -0.818733) / 2) = -0.73686 ( 13.27) 289 382


k3 = f (0.2 + 0.2 / 2 ,0.818733 + 0.2 ( -0.73686 )/ 2 ) = -0.74505 kų = f( 0.2 + 0.2,1 +0.2( -0.74505) ) = -0.66972 0.2 Yi = Yo + ( -0.818733 + 2 ( -0.73686 ) 6 + 2 ( -0.74505) + ( - 0.66972) ] = 0.670324 ( 13.28) Tabel 13.4 : Solusi numerik dengan metode Runge Kutta orde 2 untuk y' = -y dan y ( 0 ) = 1 In Yn y ( eksak ) Galat Relatif 0.0 1 1 0 0.2 0.820000 0.818731 1.6E- 03 0.4 0.672400 0.670320 3.1E- 03 0.6 0.551368 0.548812 4.7E- 03 0.8 0.452122 0.4493296.2E- 03 1.0 0.370740 0.367879 7.8E- 03 1.2 0.304007 0.301194 9.3E- 03 1.4 0.249285 0.246597 1.1E -02 1.6 0.204414 0.201897 1.2E- 02 1.8 0.167620 0.165299 1.4E- 02 2.0 0.137448 0.135335 1.6E -02 Kita perhatikan Galat relatif pada Tabel 13.3 dan Tabel 13.5 untuk metode Taylor orde 4 dan RK4, da pat disimpulkan kedua metode memiliki tingkat akura si yang sama. Kelebihan metode RK4 adalah memiliki 290 382


I Wayan Sudiarta Metode Numerik Tabel 13.5: Solusi numerik dengan metode Runge Kutta orde 4 untuk y = −y dan y(0) = 1 xn yn y(eksak) Galat Relatif 0.0 1 1 0 0.2 0.818733 0.818731 3.2E-06 0.4 0.670324 0.670320 6.3E-06 0.6 0.548817 0.548812 9.5E-06 0.8 0.449335 0.449329 1.3E-05 1.0 0.367885 0.367879 1.6E-05 1.2 0.301200 0.301194 1.9E-05 1.4 0.246602 0.246597 2.2E-05 1.6 0.201902 0.201897 2.5E-05 1.8 0.165304 0.165299 2.8E-05 2.0 0.135340 0.135335 3.2E-05 2.2 0.110807 0.110803 3.5E-05 2.4 0.090721 0.090718 3.8E-05 2.6 0.074277 0.074274 4.1E-05 2.8 0.060813 0.060810 4.4E-05 tingkat akurasi yang sama dengan metode Taylor tan pa menentukan turunan-turunan fungsi. Selain aku rat, metode RK4 telah ditemukan stabil dan cukup mudah dihitung. Oleh sebab itu, metode RK4 biasa nya digunakan sebagai standar minimal dalam pene litian ilmiah. Jika kita ingin mendapatkan hasil yang lebih akurat dengan cara memperkecil interval ∆x tan pa harus meningkatkan orde persamaan metode nume riknya. 291 382


13.5 Sistem Persamaan Diferensial Biasa Pada banyak aplikasi, beberapa variabel berubah seca ra bersamaan dan saling kopel satu sama lain. Biasa nya masing-masing variabel memiliki persamaan dife rensial tersendiri. Pada bagian ini kita menyelesaikan secara numerik sebuah sistem persamaan diferensial. Agar lebih sederhana, pada buku ini kita hanya per timbangkan sebuah sistem persamaan yang terdiri dari dua persamaan diferensial. Penyelesaian untuk bebe rapa persamaan diferensial dapat mengikuti cara yang sama. Dua persamaan diferensial untuk fungsi x(t) dan y(t) yaitu dx f(t, x, y) (13.29) dtdy = g(t, x, y) (13.30) dt = Dengan pendekatan turunan seperti pada metode Euler, menggunakan interval h = ∆t, diperoleh xn+1 = xn + hf(tn,xn,yn) yn+1 = yn + hg(tn,xn,yn) (13.31) (13.32) Untuk metode lain juga diperoleh persamaan yang hampir sama tetapi untuk dua fungsi. Untuk metode 292 382


I Wayan Sudiarta Metode Numerik RK4: 1 1 1 1 1 1 kı = f ( tn , In , yn) li = g( tn , Xn , yn ) 1 1 1 k2 = f ( tn + 5h, In +5hk1,yn + zhli ) l2 = g ( tn + h , In + Ehki, Yn tahli ) , + k3 = f(tn + 5h,, xn + 2 5hk2, yn + 5hlz ) 1 1 lz = g ( tn + h, 2n + 3 hk2 , Yn + z hla ) k4 = f ( tn + h, Xn + hk3, yn + hlz ) l4 = g ( tn + h , Xn + hk3 , yn + hl3 ) h Xn+ 1 = In + ölki + 2k2 + 2k3 + ka] ( 13.33) h Yn + 1 = Yn + [li +212 +213 + ]la] ( 13.34 ) Contoh aplikasi pada persamaan Newton yang me nyatakan bahwa percepatan sebuah benda bergantung pada jumlah gaya yang bekerja pada benda tersebut dibagi dengan massanya. Umpama total gaya total per massa adalah f ( t , x, v ) yang bergantung pada waktu, posisi dan kecepatan benda. Dari persamaan Newton diperoleh persamaan diferensial orde dua yaitu. dax f ( t , x, v ) ( 13.35 ) dt2 Persamaan diferensial orde dua ini dapat diubah menjadi dua persamaan diferensial dengan menggu = 293 382


nakan definisi kecepatan v = dx/dt. (13.36) dv dt = f(t, dx x, v) dt = v = g(t, x, v) (13.37) Jadi pada persamaan ini g(t, x, v) = v. 13.6 Penggunaan Python Bentuk persamaan diferensial yang diselesaikan adalah dx dy = f(x, y) Metode Euler Rumus iterasi Euler adalah yn+1 = y(xn + ∆x) = y(xn) + f(xn ,yn)∆x yn+1 = yn + f(xn,yn)∆x Sebagai contoh sederhana kita menyelesaikan persa maan peluruhan yaitu dx dy = −y dengan solusi eksaknya y = exp(−x). [1]: import numpy as np import matplotlib.pyplot as plt %matplotlib inline 294 382


I Wayan Sudiarta Metode Numerik [2]: # Nilai awal x0 = 0 y0 = 1 dx = 0.2 [3]: # definisi fungsi f(x,y) -y def f(x,y): return -y = [4]: x = dx*np.arange(11) + x0 y[0]= np.zeros(11) = y0 # Iterasi Euler for n in range(0,10): y[n+1] = y[n] + dx*f(x[n],y[n]) # cetak hasil print(x[n+1], y[n+1]) 0.2 0.8 0.4 0.64 0.6000000000000001 0.512 0.8 0.4096 1.0 0.32768 1.2000000000000002 0.26214400000000004 1.4000000000000001 0.20971520000000005 1.6 0.16777216000000003 1.8 0.13421772800000004 2.0 0.10737418240000003 295 382


[ 5] : # Eksak yeksak = np . exp ( -x ) [ 6] : # Buat Grafik plt.plot ( x , y , ' or ' ) plt.plot ( x , yeksak , ' -b ' ) plt.xlabel ( ' $ x$ ' ) plt.ylabel ( ' $ y$ ' ) plt.legend ([ " Metode Euler" , " Eksak " ] ). plt.show ( ) 10 Metode Euler Eksak 0.8 0.6 y 0.4 0.2 0.00 0.25 0.50 0.75 100 125 150 175 200 х 296 | 382


I Wayan Sudiarta Metode Numerik Metode Heun Rumus iterasi Heun adalah z = Yn + f( Xn , yn )A.x 1 Yn+ 1 = Yn + žlf(Xn,Yn ) + f( xn+1 , 2 ) Ax = - [7 ] : x dx* np.arange ( 11) + xo у np.zeros ( 11 ) y [ 0] = yo # Iterasi Heun for n in range ( 0,10 ) : z = y [ n] + dx * f ( x [n] , y [n] ) y [n + 1 ] = y [ n] + 0.5 *dx * ( f ( x [n] , y [n] ) +u 4f ( x [n+ 1 ] , z ) ) #cetak hasil print (x [n + 1 ] , y [n + 1 ]) 0.2 0.82 0.4.4 0.6723999999999999 0.6000000000000001 0.5513679999999999 0.8 0.4521217599999999 1.0 0.37073984319999986 1.2000000000000002 0.3040066714239999 1.4000000000000001 0.2492854705676799 1.6 0.20441408586549753 1.8 0.16761955040970797 2.0 0.13744803133596054 297 | 382


[ 8] : # Buat Grafik plt.plot ( x , y , ' or ' ) plt.plot ( x , yeksak , ' -b ' ) plt.xlabel ( ' $ X$ ' ) plt.ylabel ( ' $y$ ' ) plt.legend ( [" Metode Heun " , " Eksak " ] ) plt.show ( ) 10 Metode Heun Eksak 0.8 0.6 0.4 02 0.00 0.25 0.50 0.75 100 125 150 175 200 Х Metode Runge-Kutta Orde 4 (RK4) Supaya mempersingkat rumus kita menggunakan h = Ac. Rumus iterasi metode RK4 yaitu 298 382


I Wayan Sudiarta Metode Numerik ki = f (xn , yn) k2 = f (xn + Yn + żki ) k3 = f( In + , Yn + äk2) k4 = f ( xn + h, Yn + hk3 ) h Yn+1 = Yn + a [ki + 2k2 + 2k3 + kal 6 [ 9] : x = dx * np.arange (11) + xo y = np.zeros ( 11 ) y [o] yo h = dx # Iterasi Runge -Kutta Orde 4 for n in range ( 0,10 ) : k1 f ( x [n] , y [n] ) k2 f ( x [n] +h/ 2 , y [n] +h* k1 / 2 ) k3 = f ( x [n] +h/ 2 , y [n] +h* k2/ 2 ) k4 f ( x [n] + h , y [n ] +h* k3 ) y [ n + 1 ] = y [ n] + ( h/ 6 ) * ( k1 + 2 *k2 +u 42* k3 + k4) = #cetak hasil print ( x [n+ 1 ] , y [n+ 1 ] ) 0.2 0.8187333333333333 0.4 0.670324271111111 299 | 382


0.6000000000000001 0.548816824901037 0.8 0.44933462844064237 1.0 0.36788523812530194 1.2000000000000002 0.30119990729445556 1.4000000000000001 0.24660240409888057 1.6 0.20190160831589016 1.8 0.1653035767818298 2.0 0.13533954843051013 [10]: # Buat Grafik plt.plot(x,y, or ) plt.plot(x,yeksak, -b ) plt.xlabel( $x$ ) plt.ylabel( $y$ ) plt.legend(["Metode RK4", "Eksak"]) plt.show() 300 382


I Wayan Sudiarta Metode Numerik Soal-Soal Soal 13.1. Gunakan metode Euler dan Heun untuk menyelesaikan persamaan diferensial berikut ini. dy = −xy dx (13.38) dengan nilai awal y(0) = 1. Kemudian bandingkan dengan solusi eksaknya. Soal 13.2. Gunakan metode Runge-Kutta orde 4 un tuk menyelesaikan persamaan diferensial berikut ini. dy dx = y + x (13.39) dengan syarat awal y(0) = 2. Seperti soal sebelum nya, hasil numerik dapat dibandingkan dengan solusi eksaknya. Soal 13.3. Ubah persamaan diferensial orde dua di bawah ini menjadi dua persamaan diferensial orde sa tu. Kemudian gunakan metode Runge-Kutta orde 4 untuk menyelesaikan persamaan diferensialnya. d2x −y dt2 = (13.40) dengan syarat awal y(0) = 1 dan y (0) = 0. Bandingk an juga dengan solusi eksaknya. 301 382


Bab Analisis 14 Fourier “The deep study of nature is the most fruitful source of mathematical discoveries. By offering to resear ch a definite end, this study has the advantage of excluding vague questions and useless calculations; besides it is a sure means of forming analysis itself and of discovering the elements which it most con cerns us to know, and which natural science ought always to conserve.” – Jean Baptiste Joseph Fourier 14.1 Fungsi Sin dan Cos Perhatikan sebuah titik P pada sebuah lingkaran de ngan jari-jari satu (r = 1) ditunjukkan pada Gambar 14.1. Sesuai dengan definisi fungsi trigonometri, kita men 303 382


y 1 P -1 y θ x -1 O x1 Gambar 14.1: Sebuah titik P berada pada sebua ling karan dengan jari-jari satu. dapatkan bahwa x = cos(θ) (14.1) dan y = sin(θ) (14.2) Fungsi cos(θ) dan sin(θ) merupakan suatu fungsi yang periodik (atau berulang) dengan periode 2π. Hal ini berarti bahwa penambahan kelipatan 2π pada θ ti dak mengubah nilai fungsi cos(θ) dan sin(θ). Sebagai contoh sin(θ) = sin(2π +θ). Sekarang kita tinjau atau perhatikan sebuah titik P bergerak pada lingkaran pada Gambar 14.1 dengan ke cepatan konstan. Waktu yang dibutuhkan untuk me nempuh satu keliling lingkaran (satu putaran atau re 304 382


I Wayan Sudiarta Metode Numerik volusi, siklus) atau kembali pada posisi yang sama ada lah satu periode T. Banyaknya putaran dalam satuan waktu dinamakan frekuensi f. Kita memiliki hubung an antara periode dan frekuensi yaitu f = 1/T. Kece patan sudut atau perubahan sudut per satuan waktu, ω diberikan oleh [sudut satu lingkaran] 2π 2πf [waktu satu lingkaran] = T = (14.3) Jika kita asumsikan pada waktu t = 0 sudut awalnya adalah θ0 = 0 dan karena kecepatan sudut konstan, maka sudut pada waktu t adalah θ = θ0 + ωt = ωt = 2πft. Perubahan posisi titik P terhadap waktu merupakan sebuah fungsi terhadap t yaitu ω = x(t) = cos(2πft) dan y(t) sin(2πft) (14.4) Dengan menggunakan identitas trigonometri dan rumus integral untuk fungsi cos dan sin, kita dapat membuktikan integral berikut ini. ∫ (14.5) ∫ π (14.6) −π π−π cos(nθ)dθ = 0 sin(nθ)dθ = 0 ∫π−π ∫π−π sin(mθ) sin(nθ)dθ =   cos(mθ) sin(nθ)dθ = 0 (14.7) π  jika m = n jika m =n (14.8) 0 305 382


π  ∫ π  −π  cos(mθ) cos(nθ)dθ = 0 jika m = n jika m =n (14.9) dengan m dan n adalah bilangan bulat. 14.2 Deret Fourier Pada deret Taylor, sebuah fungsi dapat direpresenta sikan atau ditulis dengan sebuah deret pangkat, terdi ri dari pangkat-pangkat variabel. Untuk kasus fungsi yang periodik, deret Taylor tidak memberikan repre sentasi yang baik. Untuk kasus ini kita menggunakan deret Fourier yaitu merepresentasikan fungsi dengan deret fungsi cos dan sin. Deret Fourier untuk fungsi dengan periode 2π berbentuk f(θ) = 1 a0 + a1 cos(θ) + a2 cos(2θ) + a3 cos(3θ) + ... 2 + b1 sin(θ) + b2 sin(2θ) + b3 sin(3θ) + ... (14.10) f(θ) = 12a + 0 n=1 ∞∑ an cos(nθ) + n=1 ∞∑ bn sin(nθ) (14.11) Bagaimana mendapatkan koefisien a0, an dan bn? Kita mendapatkan koefisien a0 dengan menginte gralkan fungsi f(θ), kedua sisi persamaan (14.11) pada 306 382


I Wayan Sudiarta Metode Numerik interval ( -7, 7] , ingat periode fungsi adalah 27. An cos (no)de ( so)do = L" 50αράθ + ΣÈ /L. + È l "bn sin (no)de ♡ ( 14.12 ) -TT n=1 Menggunakan identitas pada persamaan ( 14.5 ) dan ( 14.6 ) diperoleh f ( )do = tao ( 14.13 ) Sehingga didapatkan koefisien do yaitu * TT 1 7 Ao = | f ( 0) do ( 14.14 ) ♡ TT + -TT n= 1 Untuk mendapatkan an, kedua sisi persamaan ( 14.11 ) dikalikan dengan cos ( mo) dan kemudian di integralkan , kita mendapatkan * 1 [f( ) cos ( mo) dA = L. ao cos(md) de 2 Σ An cos( ne) cos (me)do + Ž [ b , sin ( n6 ) cos ( mo) de ( 14.15 ) Menggunakan identitas trigonometri pada persama an ( 14.5) , ( 14.7) dan ( 14.9) , kita memperoleh [f ( e) cos ( no) de ( 14.16) -TT n=1 = παη 307 | 382


Sehingga koefisien an adalah 1 An = [ f ( 0 ) cos (ne)de ( 14.17) TT TT Dengan proses yang sama untuk mendapatkan bn, kita mengalikan kedua sisi dengan sin ( mo) dan kemu dian kita mengintegralkannya, diperoleh " T 1 ao sin (md)de TT -TT f( ) sin( 10)do = + Ž "an cos(no) sin (mo)de + Ž [ b, sin ( no) sin( mo)de -TT n= ♡ -TT n=1 ( 14.18 ) Menggunakan identitas trigonometri pada persama an ( 14.6) , ( 14.7) dan ( 14.8) , kita mendapatkan |f( ) sin ( no) do = won ( 14.19) Sehingga koefisien bn adalah 1 bn - [r ( e ) sin ( no) de ( 14.20 ) * Representasi fungsi f ( t ) dengan periode T meng gunakan deret Fourier didapatkan setelah substitusi variabel 0 = wot = ( 2 / T )t dan do = ( 2/T)dt yaitu ою 1 f ( t ) = 520 + an cos( nwot) + bn sin( nwot) n=1 n=1 ( 14.21 ) 308 382


I Wayan Sudiarta Metode Numerik = 2π/T dan dengan frekuensi koefisien dasar ω0 koefisien diberikan oleh 2 an (14.22) T ∫T/2 −T/2 t)dt f(t) cos(nω 0 ∫−T/2T/2f(t) sin(nω = 0t)dt 2 bn = (14.23) T Karena fungsi f(t) mempunyai periode T interval in tegral di atas sepanjang satu periode, interval integrasi dapat digeser tanpa mengubah nilai integral sehingga kita dapat menghitung integral pada interval [0,T], an f(t) t)dt cos(nω0 (14.24) 2∫ T T 0 = T2 ∫0T bn f(t) sin(nω0t)dt = (14.25) 2 [eiθ Kita selanjutnya dapat mengubah deret Fourier di atas ke bentuk eksponensial dengan menggunakan identitas cos(θ) = 1 + sin(θ) = 1 −e−iθ] (14.26) (14.27) 2i Setelah substitusi dan penggantian koefisien, sehing ga didapatkan bentuk eksponensial dari deret Fourier yaitu f(t) = ∞∑ −∞ cneinω0t (14.28) [eiθ 309 382


= T 1 ∫−T/2T/2 T 0 dengan f(t)e−inω0tdt cn (14.29) atau cn = 1 ∫ f(t)e−inω0tdt T (14.30) Dapat dibuktikan bahwa hubungan antara koefisien koefisien adalah c±n /2. = (an ∓ ibn)/2 dan c0 = a0  Sebagai contoh sebuah fungsi periodik dengan peri ode T = 1 dan fungsi tersebut pada interval satu per iode [0,1] diberikan oleh (lihat juga Gambar 14.2). f(t) = 1  untuk t ≤ 1/2 untuk t > 1/2 (14.31) −1 1.00 y 0.75 0.50 0.25 0.00 0.25 0.50 0.75 1.00 0.0 0.2 0.4 0.6 0.8 1.0 t f(t) Gambar 14.2: Fungsi periodik pada interval [0,1]. Dengan menggunakan persamaan untuk koefisien koefisien deret Fourier diperoleh deret berikut ini. 2 a0 = 1 f(t)dt = 0 0 (14.32) 1 ∫ 310 382


I Wayan Sudiarta Metode Numerik an = il f(t)cos(nwot)dt= 0 ( 14.33) 2 bn = 'f( t ) sin(nwot) dt = $ 4/ ( nn) untuk n ganjil ( 14.34 ) 0 untuk n genap dengan wo = 27. Deret Fourier untuk fungsi tersebut adalah 4 11 f (t) - T sin(wot) + sin(3wot) + sin(5wot)+ ... ( 14.35 ) Penggunaan Python [ 1 ] : %matplotlib inline [ 2] : from sympy import * import numpy as np import matplotlib.pyplot as plt init_printing ( ) = n = = True , positiveu [ 3] : t symbols ( ' t ' ) symbols ( ' n ' , integer 4= True ) k symbols ( ' k ' , integer = 4= True ) True , positiveu 311 | 382


[4] : # Definisi fungsi f (t ) f Piecewise ( ( 1 , t <= 1/2 ) , ( -1 , t > 1/2 ) ) T = 1 [ 5] : # Plot f (t ) dengan modul Sympy plot ( f , ( t , 0,1 ) , nb_of_points 50 , ylim = u 4 (-1,1) , title= 'Sinyal Kotak ' ) = Sinyal Kotak E 100 0.75 0.50 0.25 0.00olo 0.2 0.4 0.6 0.8 10t -0.25 -0.50 -0.75 -1.00 [ 6] : # Hitung koefisien a_O ao integrate ( f , ( t , 0,1) ) ao 0 [7] : # Hitung koefisine a_n ( 2/ 41) * integrate ( f * cos ( n * 2 * pi* t ) , ( t ,0,1)) an an 312 382


I Wayan Sudiarta Metode Numerik 0 [ 8] : # Hitung koefisien b_n bn ( 2/ 41 ) * integrate ( f * sin ( n* 2 *pi * t ) , ( t , 0,1) ) = bn 2.0 ( -1) ^ 2.0 + πη πη [ 9 ] : # Definisi deret Fourier m = 7 ff = a0 / 2 + Sum ( cos(k * 2* pi* t ) * an . 4 subs ( n , k ) , ( k , 1 , m) ) +u Sum (sin (k * 2 * pi* t ) * bn . subs ( n , k ) , ( k , 1 , m) ) ff Skal ( - 2.0-3.)* + 2*) + 2,0 ) sin (27 kt) + EX = 0 [ 10] : ff2 simplify ( ff ) ff2 2.0 ( 2sin (2nt)+ 2 sin (67t ) 2 sin ( 107t ) 2 sin ( 147t) + + 3 5 TT [ 11 ] : g h lambdify ( t , f ) lambdify ( t , ff2 ) [ 12] : # Buat array data untuk visualisasiu + dengan modul Matplotlib tt = np.arange ( 100 ) * 0.01 gg g ( tt ) hh h ( tt ) = = 313 | 382


[13]: plt.plot(tt, gg) plt.plot(tt, hh) plt.xlabel( $t$ ) plt.ylabel( $y$ ) plt.legend([ $f(t)$ , Deret Fourier ]) plt.savefig( fourier01.pdf ) plt.show() 14.3 Transformasi Fourier Pada kasus fungsi yang tidak periodik, kita perlu mengubah deret Fourier menjadi transformasi Fouri er. Hal ini dapat dilakukan dengan membuat periode T →∞. Persamaan sebelumnya dapat dikalikan de = 1 untuk persamaan (14.28) dan T untuk ngan ∆n 314 382


I Wayan Sudiarta Metode Numerik persamaan ( 14.29) , kita memperoleh f( t) = cneinwot An ( 14.36 ) dan T / 2 [CnT ] = f (t)e -inwotdt ( 14.37) -T / 2 = nwo diperoleh An = Menggunakan w [ T/ ( 26) ] Aw, f( t ) Σ [cnT]]eiwtAw ( 14.38 ) dan [ („ T) = L100etat de ( 14.39 ) Selanjutnya kita mendefinisikan F( W) = [ cnT] dan menggunakan T + , Aw → dw , I + S, Kita men dapatkan sepasang transformasi Fourier yaitu F ( w ) - Lºf(t)e-tutdi ( 14.40) dan 1 f (t ) 2. LF(w)eiut down ( 14.41 ) Persamaan ( 14.40) merupakan rumus integral tran sformasi Fourier, sedangkan persamaan ( 14.41) meru pakan inversnya. 315 | 382


Sebuah contoh transformasi Fourier untuk fungsi ko tak yang berbentuk 1 f( t ) = untuk – a < t < a untuk 1t | > a ( 14.42 ) 0 Transformasi Fourier fungsi ini didapatkan dengan cara berikut ini. 1 F( W) - 277 [f(t)e-iat dit L. = -iwt dt eе - -iwa – eiwa ) 27 1 1 (e 27 -iw -iwa 1 (e- - eiwa ) -2i 1 sin (wa) sin (wa) πω = = ( 14.43 ) πω πω Untuk analisis frekuensi dari data yang biasanya berbentuk diskrit , kita perlu mengubah transforma si Fourier menjadi bentuk diskrit . Umpamanya data diambil dalam rentang waktu T dan data disampel se tiap At = T/N. Jadi kita memiliki data fo, f1,..., fn pada waktu t = 0 , At, ... , NAT. Untuk transformasi Fourier diskrit , data ke N, În tidak digunakan. Transformasi Fourier diskrit diberikan oleh N- 1 Fk = fre - ikwon ( 14.44) n=0 316 382


I Wayan Sudiarta Metode Numerik dan inversnya adalah N- 1 1 fin - Fre - ikwon ( 14.45 ) N k=0 dengan wo = 27/N. Dengan kata lain , transformasi Fourier diskrit meng ubah data { fn } ke data { Fk }. Penggunaan Python [ 1 ] : %matplotlib inline import numpy as np import matplotlib.pyplot as plt from numpy import exp , pi [ 2] : # Set N N - 100 # Create Array f = np.zeros ( N+ 1 , dtype = np . cdouble) F = np.zeros ( N + 1 , dtype = np . cdouble) # Fill array for n in range ( 40,60) : f [n] = 1 + Oj N- 1 Fk = fme - ikwon ( 14.46 ) n=0 317 | 382


S = [ 3] : omegao 2 *pi /N for k in range ( N + 1) : Oj for n in range ( n ) : s += f [n] * exp ( -1j *k* omega0* n) F [k] ( 1 / ( 2 *pi ) ) * s = [4] : index = np.arange ( N + 1) [ 5] : plt.plot ( index , np.abs( F ) ) plt.show (). 3.0 25 20 15 10 0.5 0.0 Mm mil 20 40 60 80 100 [ 1 ] : %matplotlib inline 318 | 382


I Wayan Sudiarta Metode Numerik [ 2] : import numpy as np import matplotlib.pyplot as plt from numpy.fft import fft , fftfreq [ 3] : # Buat data waktu sampling n = 100 dt 0.1 ts = np.arange (n ) * dt f ( t ) = exp(i21 fit) + 0.2exp(i2m f2t) [ 4] : # Membuat data sebuah sinyal yang terdiri +dari dua frekuensi harmonik f1 0.2 = f2 1 ft np . exp (2j*np.pi* f1 * ts ) + 0.2*np . Hexp (2j* np .pi* f2* ts) [ 5] : # Sinyal bagian Riił plt.stem ( ts , ft.real , use_line_collectionu = True ) plt.title ( ' Bagian Riil ' ) plt.xlabel ( ' $ t $ ' ) plt.ylabel ( ' $ f ( t ) $ ' ) plt.show ( ) 319 | 382


Bagian Riil 10 0.5 0.0 -0.5 -1.0 2 8 10 t [ 6] : # Sinyal bagian imajiner plt.stem ( ts , ft.imag , use_line_collectionu 4= True ) plt.title ( ' Bagian Imajiner ' ) plt.xlabel ( ' $ t $ ' ) plt.ylabel ( ' $ f ( t ) $ ' ) plt.show ( ) 320 | 382


I Wayan Sudiarta Metode Numerik [7]: # Frekuensi Sampling Fs = 1/dt [8]: # Transformasi Fourier Diskrit dengan FFT ff = fft(ft) [9]: # Menentukan posisi frekuensi freq = fftfreq(100, 0.1) [10]: # Visualisasi hasil FFT plt.stem(freq, np.abs(ff), ↩→use_line_collection = True) #plt.xlim(0,2) plt.xlabel( $f$ ) 321 382


plt.ylabel( $Abs[F(f)]$ ) plt.show() 14.4 Aplikasi Transformasi Fourier untuk Analisis Bunyi Format media untuk perekaman bunyi biasanya dalam bentuk format MP3 karena memiliki ukuran file yang kecil dibandingkan dengan format WAV. Supaya lebih sederhana dalam proses pembacaan, kita menggunakan format WAV pada bagian ini. Konversi format media dapat menggunakan program Audacity (https://www.audacityteam.org/). Untuk pemba 322 382


I Wayan Sudiarta Metode Numerik caan file, kita menggunakan fungsi wavfile.read yang ada di modul scipy.io. Penjelasan lebih detil dapat dibaca di https://docs.scipy.org/doc/scipy 0.14.0/reference/generated/scipy.io.wavfile. read.html Pada contoh kasus berikut ini, digunakan sebuah file rekaman bunyi dengan frekuensi 440Hz. [1]: %matplotlib inline [2]: from scipy.io import wavfile import numpy as np import matplotlib.pyplot as plt from numpy.fft import fft, fftfreq [3]: fs, data = wavfile.read( bunyi440Hz.wav ) [4]: dt = 1/fs [5]: n = len(data) [6]: ts = np.arange(n)*dt [7]: plt.plot(ts,data) plt.xlim(0,1) plt.show() 323 382


20000 10000 0 -10000 -20000 0.0 0.2 0.4 0.6 0.8 10 [ 8] : # Transformasi Fourier Diskrit dengan FFT ff = fft ( data) # Menentukan posisi frekuensi freq fftfreq ( len ( data) , dt ) = [ 9] : # Visualisasi hasil FFT plt.stem (freq , np.abs ( ff) او -use_line_collection = True ) # plt.alim (0,2 ) plt.xlabel ( ' $f $ ' ) plt.ylabel ( ' $Abs (F ( f ) ] $ ' ) plt.xlim ( [ -600,600] ) plt.show ( ) 324 | 382


I Wayan Sudiarta Metode Numerik Soal-Soal Soal 14.1. Tentukan deret Fourier untuk sebuah si nyal segitiga periode T = 2 dengan fungsi pada interval [−1,1] sebagai berikut. f(x) = x (14.47) Soal 14.2. Sama seperti Soal 14.1, tetapi dengan fung si pada interval [−1,1] berikut ini. f(x) = |x| (14.48) Soal 14.3. Tentukan transformasi Fourier untuk fung si s(x) di bawah ini. s(x) =    (14.49) 1 − |x| untuk 0 <x< 1 0 untuk |x| ≥ 1 325 382


Soal 14.4. Buatlah data diskrit untuk fungsi pada Soal 14.3 dengan ∆x = 0.1, interval bisa disesuaikan. Kemudian gunakan transformasi Fourier diskrit untuk data tersebut. Bandingkan hasil ini dengan jawaban pada Soal 14.3. Soal 14.5. Buatlah rekaman suara Anda ketika meng ucapkan huruf A da B. Dengan transformasi Fourier diskrit, tentukan dan bandingkan konten frekuensi un tuk suara A dan B. 326 382


Bab 15 Persamaan Diferensial Parsial “If you define the problem correctly, you almost have the solution.” – Steve Jobs "We cannot solve problems with the same mindset that created them." – Albert Einstein Persamaan diferensial parsial (PDP) ditemukan aplikasinya diberbagai bidang. Khususnya di bidang fisika contohnya, persamaan fisis untuk perambatan gelombang, difusi materi, aliran fluida, dan perambat an panas berbentuk PDP. Sebelum kita mempelajari metode numerik untuk solusi persamaan diferensial parsial (PDP), kita ter 327 382


lebih dahulu mengklasifikasikan jenis persamaan dife rensial. Dalam aplikasi dibidang fisika maupun di bi dang lain, persamaan diferensial biasanya mempunyai bagian dengan turunan orde dua. Agar lebih sederha na, kita akan membahas persamaan diferensial dengan dua variabel bebas atau pada ruang dimensi dua. Per samaan diferesial yang lebih umum dapat mengikuti prosedur untuk dua variabel ini. Bentuk persamaan diferensial parsial orde dua de ngan dua variabel bebas (x, y) berbentuk AUxx + BUxy + CUyy = f(x,y,Ux ,Uy) (15.1) Kita telah menggunakan notasi subscript untuk turun an parsial seperti contohnya Uxx ≡ ∂2U/∂x2. PDP dapat diklasifikasikan dengan kriteria yang bergantung pada nilai parameter A, B, dan C. PDP dibagi menjadi tiga jenis yaitu 1. PDP eliptik jika B2 − 4AC < 0. 2. PDP parabolik jika B2 − 4AC = 0. 3. PDP hiperbolik jika B2 − 4AC > 0. Supaya lebih jelas, mari kita perhatikan tiga persa maan diferensial parsial berikut ini. 1. Persamaan Laplace untuk potensial listrik V ya itu ∇2V = 0 (15.2) 328 382


I Wayan Sudiarta Metode Numerik Untuk permasalahan pada ruang dimensi dua, diperoleh persamaan Vxx + Vyy = 0 (15.3) Dari persamaan (15.3) kita mendapatkan A = 1, B = 0 dan C = 1 sehingga nilai B2−4AC = −4 atau lebih kecil dari nol. Jadi persamaan Laplace termasuk pada kelompok jenis PDP eliptik. 2. Persamaan difusi untuk suatu penyebaran kon sentrasi gas diberikan oleh persamaan Ut = D∇2U (15.4) dengan konstanta difusi D. Untuk kasus pada ruang dimensi satu, persama an difusi menjadi Ut = DUxx (15.5) Dari persamaan (15.5), kita memperoleh nilai A = D, B = 0 dan C = 0 sehingga nilai B2 − 4AC = 0. Jadi persamaan difusi tergolong jenis PDP parabolik. 3. Persamaan untuk gelombang skalar berbentuk U (15.6) tt = c2∇2U 329 382


dengan c adalah laju rambat gelombang di dalam medium. Untuk gelombang bidang yang merambat ke arah sumbu ±x atau pada ruang dimensi satu, persa maan gelombangnya menjadi Utt = c2Uxx (15.7) Persamaan gelombang ini mempunyai nilai A = 1, B = 0 dan C = −c2 sehingga nilai B2−4AC = 4c2. Jadi persamaan gelombang merupakan jenis PDP hiperbolik. 15.1 Persamaan Tanpa Dimensi Penjelasan pada bagian ini mengikuti Fowkes and Ma hony (1994), dan Sudiarta di buku catatan Fisika Komputasi (akan diterbitkan). Sebelum kita menyelesaikan permasalahan dengan metode analitik maupun numerik, kita perlu terlebih dahulu menyederhanakan persamaan matematis supa ya komputasinya lebih mudah dengan jumlah simbol atau variabel yang lebih sedikit, dapat mereduksi kesa lahan, dan menghasilkan solusi lebih umum. Kita akan menyederhanakan persamaan dengan cara mengubah persamaannya menjadi persamaan tanpa dimensi. Untuk memahami lebih lanjut tentang cara menda patkan persamaan tanpa dimensi, kita akan menggu nakan persamaan gelombang materi (atau persamaan 330 382


I Wayan Sudiarta Metode Numerik Schrödinger) untuk sebuah partikel berada pada po tensial dimensi satu V (x) yaitu ih∂Ψ(x, t) h2 = − ∂2Ψ(x, t) ∂t + V (x)Ψ(x, t) (15.8) 2m ∂x2 dengan i adalah bilangan imajiner, h adalah konstanta Planck terreduksi dan m adalah massa partikel. Kita dapat mengubah persamaan (16.15) menjadi persamaan tanpa dimensi dengan substitusi menggu nakan variabel baru yaitu x = Lξ t = Tτ (15.9) (15.10) V = V0W (15.11) dengan konstanta L, T dan V0 merupakan skala pan jang, skala waktu dan skala energi. Faktor skala dapat juga diartikan sebagai satuan yang digunakan untuk variabel-variabel tersebut. Dengan skala atau satuan yang berbeda menghasilkan nilai numerik yang berbe da pula. Sebagai contoh laju cahaya c pada satuan MKS bernilai c ≈ 3 × 108 m/s, atau c≈ 3 × 105 km/s atau c ≈ 0.3 km/µs. Tentunya dalam komputasi kita cenderung memilih pengunaan nilai numerik c = 0.3, karena kita menghindari penggunaan nilai-nilai besar dalam perhitungan sehingga mengurangi kesalahan. Perlu kita perhatikan dan ingat bahwa dimensi va riabel berada pada skala atau satuan yang digunakan. 331 382


Jadi , Š , T dan W merupakan variabel-variabel tanpa dimensi . Menggunakan aturan rantai untuk turunan, kita memperoleh av ( x, t ) ət ƏY ( Š , T) dr дт dt 1 ƏY ( , T) T ƏT = = ( 15.12 ) = av ( x , t ) at ( $, T) dg 1 OT( $ , T) ( 15.13) ar as dx L οξ Pada persamaan ( 15.12 ) dan ( 15.13), kita telah menggunakan hubungan pada persamaan ( 15.9) dan ( 15.10) untuk mendapatkan de 1 = ( 15.14 ) dx L = dan dr 1 ( 15.15 ) dt T Jika kita lakukan proses pada persamaan ( 15.13) dua kali untuk mendapatkan turunan kedua d2v /2x2 yaitu 22V (x , t ) 1 ( , T ) ( 15.16) Әr2 L2 ag2 Setelah substitusi persamaan ( 15.12 ) dan ( 15.16) ke persamaan Schrödingr ( 16.15 ) , kita memperoleh per = samaan iħ ƏY ($ , T T ƏT = ħ2 22V(6,7) + VW (E) ( , T) 2mL2 as2 ( 15.17) 332 | 382


Click to View FlipBook Version