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 Yo Yi y = ( 7.11 ) : Lyn Со C = ( 7.12 ) C1 Kemudian kita mengitung matriks A = FTF dan B = FTy. Solusi untuk co dan cı didapatkan dari solusi per saman Ac = B ( 7.13 ) Referensi yang digunakan dalam penerapan Python untuk Regresi adalah 1. https://github.com/patrickwalls/ mathematical- python [ 1 ] : %matplotlib inline # Import modul -modul import numpy as np import matplotlib.pyplot as plt # Moduł Linier Algebra import numpy.linalg as la 133 | 382


[ 2] : # Contoh Data (ad , yd) xd = np.array ( [ 0.19 , 0.90 , 0.38 , 0.43 , 0 . 483 , 0.84 , 0.38 , 0.59 , 0.74 , 0.08] ) yd np . array ( [5.18 , 1.17 , 3.75 , 3.21 , 2 . 453 , 1.5 , 3.39 , 3.54 , 2.55 , 6.01 ) = > > # Plot grafik data plt.plot (xd ,yd , ' ob ' ) ; plt.show ( ) 6 5 3 1 [ 3] : # Membuat matriks F len ( xd) F = np . column_stack ( [np.ones (n ) ,xd ]) = n 134 382


I Wayan Sudiarta Metode Numerik # Menghitung matriks A = FT . F # B = F *T. yd A = F.T OF B = F.T @ yd print ( A ) print ( B ) [ [ 10 . [ 5.36 [ 32.82 5.36 ] 3.6164] ] 13.9462] = [ 4] : # Solve Mc = N С la . solve ( A , B ) print ( c ) [ 5.91017648 -4.90331432] [ 5] : x = np.linspace ( 0,1,10 ) у c [ 0] + c [ 1 ] * x plt.plot ( x , y , ' -r ' ) plt.plot ( xd , yd , ' ob ' ) ; plt.show (). 135 | 382


6 5 3 2 1 1 10 7.3 Regresi Fourier Umpama diberikan data sebanyak ( n + 1 ) , (x0, yo ), ( x1,41 ) , ... , (Xn, yn ) yang merupakan da ta berulang ( berosilasi) memiliki periode T 27 . Kita menggunkan fungsi pendekatan Fourier Sinus tiga suku yaitu - y = co sin (x ) + Ci sin ( 2x ) + C2 sin ( 3x ) ( 7.14 ) Nilai SSEnya adalah п i =0 SSE = ( [co sin ( xi ) + cı sin ( 2x ;) + C2 sin ( 3x ;)] – yi ) ? ( 7.15) 136 | 382


I Wayan Sudiarta Metode Numerik Seperti sebelumnya , kita membentuk matriks F = ( sin ( 20 ) sin (2x ) sin (320) sin ( x1) sin ( 2x1) sin ( 3x1) : : (sin (xn) sin ( 22n) sin (32n )] ( 7.16 ) Yo Yi y = ( 7.17) : Lyn Со C = C1 ( 7.18 ) C2 Kemudian seperti sebelumnya kita menghitung ma triks A = FTF dan B = FTy. Solusi untuk koefisien co , ci dan C2 didapatkan dari solusi persaman Ac = B ( 7.19) Referensi seperti pada kasus sebelumnya adalah 1. https://github.com/patrickwalls/ mathematical- python [ 1 ] : %matplotlib inline # Import modul -modul 137 382


import numpy as np import matplotlib.pyplot as plt # Moduł Linier Algebra import numpy.linalg as la > 1, 1 , 1 , > > [ 2] : # Contoh Data (ad , yd) xd = np.array ( [ 0.5 , 1 , 1.5 , 2.0 , 2.5 , 3.0 , 43.5 , 4.0 , 4.5 , 5 , 5.0 , 5.5] ) yd = np.array ( [ 1 1 , 1 , 4-1 , -1 , -1 -1 , -1 -1 ] ) # Plot grafik data plt.plot ( xd , yd , ' ob ' ) ; plt.xlabel ( ' $ x $ ' ) plt.ylabel ( ' $ y $ ' ) plt.show ( ) 1.00 0.75 0.50 0.25 0.00 -0.25 -0.50 -0.75 -1.00 T 1 3 5 х 138 382


I Wayan Sudiarta Metode Numerik [ 3] : # Membuat matriks F F = np.column_stack ( [np.sin ( xd ) , np . 4sin ( 2 * xd ) , np.sin ( 3 * xd ) ] ) # Menghitung matriks A = FT . F # B = F ^ T . yd A = F.T @ F B = F.T @ yd print ( A) print ( B) [ [ 7.12604679 0.37467405 -0.82867677] [ 0.37467405 6.29737002 -0.7467458 ] [ -0.82867677 -0.7467458 6.15846631 ] ] [ 8.6757858 -0.07368475 1.25548175] [ 4] : # Solve Mc = N c = la solve ( A , B ) print ( c ) [ 1.26259805 -0.0431213 0.36852792] [ 5] : x = np.linspace (0,6,100 ) 139382


y = c[0]*np.sin(x) + c[1]*np.sin(2*x) + ↩→c[2]*np.sin(3*x) plt.plot(x,y, -r ) plt.plot(xd,yd, ob ); plt.show() Soal-Soal Soal 7.1. Dari hasil pengukuran tegangan (V ) dan arus (I) melalui sebuah resistor diperoleh data pada Tabel di bawah ini. Diketahui bahwa tegangan dan arus memiliki hubungan yaitu V = IR dengan R ada lah hambatan dari resistor. Dengan metode regresi linier, tentukan hambatan resistor tersebut. 140 382


I Wayan Sudiarta Metode Numerik V (volt) I (ampere) 1.0 0.57 1.5 0.76 2.0 1.09 2.5 1.27 3.0 1.54 3.5 1.75 4.0 2.05 4.5 2.31 5.0 2.58 5.5 2.77 Soal 7.2. Ilustrasi data pengukuran peluruhan bah an radioaktif (atau bisa juga dengan analogi pengo songan kapasitor) diperoleh data pada Tabel di ba wah ini. Diketahui bahwa jumlah bahan/massa radi oaktif berubah terhadap waktu sesuai dengan N(t) = N0 exp(−λt). Dengan metode regresi, tentukan nilai λ dari bahan tersebut. t (hari) N (g) 0 1500 30 752 60 377 90 189 120 95 150 48 180 24 141 382


Soal 7.3. Diberikan data berupa gambar di bawah ini. Gunakan program digitizer, sebagai contoh Enga uge Digitizer (http://markummitchell.github.io/ engauge-digitizer/) untuk mengubah data gambar menjadi data numerik. Kemudian buatlah regresi non linier dengan fungsi f(x) = aexp[−b(x − x0)2]. 142 382


Bab 8 Turunan Numerik "There is nothing permanent except change." – Heraclitus "Change your thoughts and you change your world." –Norman Vincent Peale Pada bab ini kita menghitung turunan secara nume rik untuk sebuah fungsi satu variabel, f(x). Turun an pertama fungsi f(x) dinotasikan dengan beberapa simbol, supaya lebih terbiasa yaitu f (x), dxdf f. Selain simbolnya kita perlu juga mengerti arti dari tu runan. Turunan fungsi f(x) pada titik x = a, f (a) memiliki arti apa? Untuk itu, mari kita perhatikan grafik fungsi f(x) pada Gambar 8.1. Garis lurus yang menyinggung fungsi f(x) pada posisi x = a adalah y = f(a) + f (a)(x − a). Garis singgung ini memiliki kemiringan f (a). Jadi turunan fungsi, f (a) meru dan Dx 143 382


pakan nilai kemiringan kurva f(x) pada x = a. Kemi ringan kurva menyatakan seberapa besar perubahan y (∆y) terhadap perubahan x (∆x). f (x) merupak an rasio dari perubahan y dan perubahan x, sehingga f (x) ≈ ∆x∆y , ini sesuai dengan notasi turunan dxdy. Ingat huruf d dari kata difference yang berarti perbedaan atau perubahan dan ∆ adalah simbol delta. y y = f(x) y = f(a) + f (a)(x − a) x x = a Gambar 8.1: Ilustrasi sebuah garis singgung pada ku rva f(x). Turunan fungsi banyak digunakan di berbagai bi dang ilmu pengetahuan. Banyak perumusan masalah fisis menggunakan model berupa persamaan - persa maan diferensial biasa ataupun partial seperti contoh nya persamaan pertumbuhan penduduk, persamaan 144 382


I Wayan Sudiarta Metode Numerik gerak, persamaan Maxwell dan persamaan Schrödi nger. Di samping itu pula turunan sebuah fungsi di perlukan juga untuk menentukan sifat-sifat fisis lain nya. Sebagai sebuah contoh, jika perpindahan sebuah benda diketahui sesuai dengan sebuah fungsi x(t), ma ka kecepatan v(t) dan percepatan a(t) bisa didapatkan dengan turunan pertama dan kedua. Dalam experi men atau pengamatan sering juga kita mendapatkan data dalam bentuk diskrit. Untuk menentukan sifat fisis lain yang berupa turunan, kita perlu melakukan pendekatan numerik untuk turunan - turunan meng gunakan data diskrit tersebut. Selain itu, pendekatan numerik turunan diperlukan untuk fungsi-fungsi yang tidak mempunyai turunan atau yang secara numerik sulit dihitung. Untuk mendapatkan pendekatan turunan secara nu merik, kita menggunakan deret Taylor. Nilai pende katan sebuah fungsi f(x) pada titik x + h dapat di aproksimasi dengan pendekatan Taylor (mengganti a dengan x dan (x−a) dengan h pada deret Taylor per samaan (4.5)) yaitu h3 f(x + h) =f(x) + f (x)h + f (x) h2 + f 2! 3! (x) h4 + f(4)(x) + ... (8.1) 4! Deret Taylor untuk fungsi f(x) pada posisi (x −h), 145 382


(x + 2h) dan (x − 2h) adalah f 3! (x)h3 f(x − h) =f(x) − f (x)h + f (x)h2 2! + f(4)(x) 4! h4 + ... − (8.2) f(x + 2h) = f(x)+2f (x)h +4 h3 f (x) h2 + 8 2! f (x) 3! f (4)(x) 4! + 16 h4 + ... (8.3) f(x − 2h) = f(x) − 2f (x)h + 4f (x) h2 −8f (x) f(4)(x) h3 2! 3! + 16 h4 + ... (8.4) 4! Untuk mempermudah penurunan rumus turunan numerik, kita menggunakan fungsi fungsi berikut ini. D1(x, h) = f(x + h) − f(x − h) = 2f (x)h + 2 f h3 + 2 3! (x) f(5)(x) h5 + ... 5! (8.5) S1(x, h) = f(x + h) + f(x − h) f = 2f(x)+2 h2 + 2 f(4)(x) 2! h4 + ... (x) 4! (8.6) 146 382


I Wayan Sudiarta Metode Numerik D2(x, h) = f(x + 2h) − f(x − 2h) = 4f (x)h + 16 f (x) f (5)(x) h3 + 64 3! h5 + ... 5! (8.7) S2(x, h) = f(x + 2h) + f(x − 2h) = 2f(x)+8f h2 + 32 2! (x) f(4)(x) h4 + ... 4! (8.8) 8.1 Turunan Pertama Rumus turunan pertama numerik dapat diperoleh de ngan menggunakan beberapa pendekatan. Mari kita perhatikan persamaan (8.1)-(8.8). Pendekatan perta ma kita menggunakan dua titik data untuk menghi tung turunan pertama secara numerik. Setelah pengaturan dan manipulasi sederhana, per samaan (8.1) dapat diubah menjadi f (x) f (x) = h2 − ... f(x + h) − f(x) f (x) h − h− 2! f (x) ≈ f(x + h) − f(x) h + O(h) 3! (8.9) Persamaan (8.9) dinamakan rumus numerik beda hingga ke depan atau maju (forward finite difference). Kita menggunakan notasi O(···) yang menunjukkan 147 382


"order of magnitude", atau dengan kata lain "besaran kesalahan atau galat sebanding dengan". Dari persamaan (8.2) dapat juga diperoleh f + (x) = f(x) − f(x − h) f (x)h − f h (x)h2 + ... 2! 3! f (x) ≈ f(x) − f(x − h) + O(h) h (8.10) Persamaan (8.10) dinamakan rumus numerik beda hingga ke belakang atau mundur (backward finite di fference). Dari persamaan (8.5), D1(x, h) dapat pula diperoleh f (x) = h2 − ... f(x + h)2h− f(x − h) f 3! f (x) ≈ − f(x + h) − f(x − h) (x) 2h + O(h2) (8.11) Persamaan (8.11) dinamakan rumus beda hingga te ngah atau pusat (central finite difference). Di sini ki ta bisa lihat bahwa kesalahan pendekatan atau galat menpunyai ukuran atau "order of magnitude" O(h2), jadi metode beda hingga tengah lebih akurat daripada persamaan (8.9) dan (8.10). Kesalahan pada rumus turunan numerik terdiri dari dua bagian: (1) kesalahan pembulatan yang disebabk an oleh penggunaan digit yang terbatas dalam kalku lasi dan (2) kesalahan pemotongan yang disebabkan oleh pemotongan pada pendekatan Taylor. 148 382


I Wayan Sudiarta Metode Numerik Umpama nilai yang kita gunakan untuk kalkulasi adalah f(x + ih) = fi + ei yang merupakan jumlah dari nilai sebenarnya dalam kalkulator atau komputer (fi) dan kesalahan pembulatannya (ei). Rumus turunan numerik beda hingga ke depan men jadi f (x) = f1 − f0 h + e1 − e0 h + M1h (8.12) dengan Mn adalah koefisien pada fungsi sisa pendekat an Taylor (persamaan (4.21)) berbentuk [Ref] 1 1)! Mn f(n+1)(c) (n + (8.13) Kesalahan turunan numerik beda hingga ke depan atau maju (ED(h))=adalah e1 ED(h) = − e0 h + M1h (8.14) Nilai |e1| ≤ e dan |e0| ≤ e, sehingga |e1 − e0| ≤ 2e. |ED(h)| ≤ 2e + M1h h (8.15) Dengan cara yang sama, kesalahan pendekatan nu merik beda hingga tengah ET(h) adalah 2e |ET (h)| ≤ + M2h2 (8.16) h 149 382


2e h Untuk nilai M2h2 atau 2eh h yang cukup besar sehingga << M1h, kesalahan beda hingga tengah << sebanding dengan h2 dan kesalahan beda hingga ke depan sebanding dengan h. Ini ditunjukkan dengan jelas pada Gambar 8.2. Ketika h > 10−2, kesalah an metode beda hingga tengah lebih kecil daripada kesalahan metode beda hingga kedepan. Sendangkan untuk nilai h < 10−2 kesalahan pembulatan lebih do minan, metode beda hingga tengah maupun ke depan menunjukkan kesalahan yang sama sebanding dengan 1/h. Turunan dengan orde kesalahan yang lebih tinggi O(h4) dapat diperoleh dengan memperhatikan persa maan (8.5) dan (8.7). Kita perlu mengeliminasi bagian f (x)h33! dengan cara 8×D1(x, h)−D2 (x, h) menghasil kan 8D1(x, h) − D2(x, h) = 8[f(x + h) − f(x − h)] − [f(x + 2h) − f(x − 2h)] h5 5! − ... (8.17) = 12f (x)h − 48 f(5)(x) 150 382


I Wayan Sudiarta Metode Numerik k 10° IIIIIII ED 10-1 ET 10-2 |Error ] 10-3 10-4 10-5 1 1 LIIT 10-4 10-3 10-2 10-1 10° h Gambar 8.2 : Kesalahan pendekatan turunan numerik fungsi sin ( x) untuk x = 1 dengan beda hingga ke dep an ( Ed) dan beda hingga tengah ( ET ). -h4 + ... f' ( x) = 8 [ f ( x + h) – f ( x – h) ] – [ f ( x + 2h ) – f (x – 2h) ] 12h f( 5 ) ( x) +4 5 ! -f ( x + 2h) + 8f(x + h) – 8f ( x – h) + f ( x – 2h) 12h + O( h4 ) ( 8.18 ) 151 | 382


8.2 Turunan Kedua Untuk mendapatkan rumus numerik untuk turunan kedua, kita menggunakan persamaan (8.6), S1(x, h). Setelah sedikit manipulasi kita mendapatkan f(x + h) − 2f(x) + f(x − h) f(4)(x) f (x) = − 2 h2 h2 4! − 2f(6)(x)6! h4 − ... (8.19) f (x) ≈ f(x + h) − 2f(x) + f(x − h) h2 + O(h2) (8.20) 8.3 Metode Integral Cauchy Turunan orde k dapat diperoleh dengan integral Cau chy pada bidang kompleks dengan persamaan berikut ini (Ref. S. Nakamura page 244). f (k)(z0) = f(z) k! 2πi C (z − z0 dz ∫ (8.21) dengan z adalah variabel kompleks dan lintasan inte grasi pada kurva tertutup. Supaya sederhana, kita menggunakan kurva beru pa lingkaran disekitar titik z0 )k+1 dengan jari-jari r = 1? yaitu z(θ) = r exp(iπθ) + z0 (8.22) 152 382


I Wayan Sudiarta Metode Numerik Integral Cauchy menjadi f(k)(z0) = k! ∫ 2π 2πi 0 f(z(θ)) [z(θ) z ]k+1 − 0 dθ (8.23) Persamaan integral ini dapat dihitung secara nume rik metode trapesium (akan dibahas pada bab selan jutnya) yaitu k! f (k)(z0) = 2πi ∆θ N−1∑ n=0 [z(θ f(z(θ n n)) ) − z0]k+1 (8.24) 8.4 Problem Solving Kasus 1: Rumus Turunan Numerik dengan Metode Interpolasi Lagrange Pada kasus pertama ini, kita menurunkan rumus nu merik untuk turunan dengan metode interpolasi La grange. Kita membuat pendekatan turunan kedua menggunakan empat titik dengan metode beda hing ga ke depan (forward) yaitu (0,f0 ) dan (3h, f3 ), ). Kita menggunakan notasi(h,fi f1= ),f(x+ih). (2h, f2 Langkah pertama sebelum mendapatkan rumus turun an numerik adalah menentukan polinom terpolasi un tuk empat titik tersebut. Polinom interpolasi dengan 153 382


( 8.25 ) ++ + ) metode Lagrange yaitu ( x – h) ( x – 2h) ( x – 3h) P3 (x ) = fo ( 0 – h ) (0 – 2h ) (0 – 3h) ( x – 0 ) ( x – 2h )( x – 3h) + fi ( h – 0) ( h – 2h) ( h – 3h) ( x – 0) ( x – h ) ( x – 3h) + f2 ( 2h – 0) ( 2h – h ) ( 2h – 3h ) ( x – 0 ) ( x – h) ( x – 2h) + f3 ( 3h – 0) ( 3h – h ) ( 3h – 2h ) ( x – h) ( x – 2h ) ( x – 3h) P3( x) = fo -6h3 ( x – 0 ) ( x – 2h) ( x – 3h ) + fi 2h3 ( x – 0) ( x – h) ( x – 3h) + f2 -2h3 ( x – 0 ) ( x – h) ( x – 2h) + f3 6h3 ( 23 – 6hx2 + 11h²x – 6h3 ) p3 ( x) = fo -6h3 ( 23 – 5hx2 + 6h2x ) + fi 2h3 ( x03 — 4hx2 + 3h²x) + f2 -2h3 ( 23 – 3hx2 + 2h²x) 6h3 ( 8.26 ) ( 8.27) 154 | 382


I Wayan Sudiarta Metode Numerik Turunan kedua polinom interpolasi ini yaitu (6x − 12h) (6x p3 (x) =f0 − 10h) −6h3 + f1 2h3 + f2 (6x − 8h) (6x − 6h) + f3 −2h3 (8.28) 6h3 Substitusi x = 0 pada polinom ini menghasilkan −12h −10h p3(0) =f0 −6h 6h3 −6h3 + f1 2h3 + f2 −2h3 −8h + f3 (8.29) p3 (0) = f0h22 + f1−5h2 + f2 4 −1 h2 + f3 h2 (8.30) p3(0) = (8.31) 2f0 − 5f1 + 4f2 − f3 h2 Rumus ini sesuai dengan persamaan (8.61). Kasus 2: Rumus Turunan Numerik dengan Interpolasi Newton Sebelumnya kita menggunakan interpolasi Lagrange dalam menurunkan rumus turunan numerik. Metode interpolasi Newton juga dapat digunakan. Kita akan menurunkan rumus turunan pertama dan kedua untuk metode ke belakang dengan tiga titik (0,f0 ), dan (−2h, f−2 ), (−h, f−1 ). Polinom interpolasi metode Newton untuk tiga titik tersebut adalah p2 (8.32) (x) = a0 + a1x + a2x(x + h) 155 382


dengan ao = ( 8.33) a1 = = ( 8.34) fo fo – f - 1 fo - f - 1 0 - ( -h ) h fo - f - 1 f -1-1-2 0 - ( -h) -h - ( - 2h ) 0 - ( -2h) fo – 2f - 1 + f - 2 2h2 A2 = = ( 8.35) Turunan pertama polinom p2 ( x ) yaitu p' ( x) = a1 + a2x + a2 ( x + h) p' ( 0 ) = a1 + a2h fo - f - 1 fo – 2f - 1 + f - 2 h 2h 3fo – 4f- 1 + f - 2 2h + ( 8.36 ) Turunan kedua polinom p2( x ) adalah p " (x ) = 2a2 = fo – 2f -1 + f -2 h2 ( 8.37) Kasus 3: Rumus Turunan Numerik dengan metode Undetermined Coefficients Selain metode interpolasi , kita juga dapat menentuk an rumus turunan dengan metode undetermined co efficient. Pada kasus ini kita menurunkan rumus turunan pertama numerik menggunakan tiga titik 156 | 382


I Wayan Sudiarta Metode Numerik {(0,f0),(h, f1),(2h, f2)}. Rumus numerik untuk tu runan pertama berbentuk f (x) ≈ Af(x) + Bf(x + h) + Cf(x + 2h) (8.38) koefisien A, B and C adalah koefisien yang akan di tentukan dengan menggunakan syarat yang sesuai. Substitusi deret Taylor, persamaan (8.1) dan (8.3), pada persamaan (8.38) diperoleh f (x) ≈(A + B + C)f(x)+(B + 2C)f (x)h + (B + 4C)f h2 2! (8.39) (x) Supaya bagian sisi kiri sama dengan sisi kanan, kon stanta A, B, dan C memenuhi persamaan A + B + C = 0 (B + 2C)h = 1 koefisien f(x) koefisien f (x) B + 4C = 0 koefisien f (x) (8.40) Solusi persamaan ini adalah A = −3/(2h), B = 4/(2h), dan C = −1/(2h), sehingga diperoleh rumus turunan pertama metode ke depan adalah f (x) ≈ −3f0 + 4f1 − f2 2h (8.41) Persamaan (8.41) sesuai dengan persamaan (8.4). 157 382


8.5 Penggunaan Python Penggunaan Python untuk menghitung turunan secara numerik. Pada bagian ini kita menentukan turunan secara numerik menggunakan data fungsi f(x) pada posisi posisi dengan interval yang sama. Diberikan Tabel data seperti berikut ini. xi f(x) x − 2h x − h x f−2 f−1 f0 f1 f2 x + h x − 2h Kita menggunakan Notasi nilai fungsi fk = f(x + kh). Sebagai contoh: Rumus turunan pertama secara nu merik dengan metode tengah adalah f (x) ≈ f1 − f−1 2h Turunan kedua numerik metode tengah yaitu f (x) ≈ f1 − 2f0 + f−1 h2 158 382


I Wayan Sudiarta Metode Numerik [ 1 ] : %matplotlib inline import matplotlib.pyplot as plt import numpy as np from sympy import * [ 2] : X symbols ( ' x ' ) [3] : # Fungsi yang dikerjakan fx = sin ( x ) [ 4] : # Substitusi x = 1 dan cek hasilnya fx.subs ( x , 1 ) sin ( 1 ) [ 5] : # Posisi untuk menghitung turunan numerik xO = 1.0 = [ 6] : # Membuat Data # Interval / Spasi antara titik data h = 0.1 = # Membuat 5 data { f ( oc_ < ) } # fm1 f _ { - 1 } dst fm2 = fx . subs ( x , x0 2 *h) fm1 = fx . subs ( x , x0 h) fo fx . subs ( x , x0 ) f1 fx.subs ( x , x0 + h) f2 fx.subs ( x , x0 + 2 * h) = = 159 | 382


Turunan Pertama Eksak [ 7] : # Turunan Pertama Eksak dfx = diff ( fx , x , 1 ) [ 8] : dfx cos ( 2) [ 9] : df = dfx.subs (x , x0 ) df 0.54030230586814 Turunan Pertama Numerik Metode Tengah ( Central) gc( x) = f' ( xo ) fi – f - 1 2h [ 10] : gc = ( f 1 fm1 ) / ( 2 * h) gc 0.53940225216976 [ 11 ] : # Kesalahan relatif ec ( gc df ) / df = ec -0.0016658335317181 160382


I Wayan Sudiarta Metode Numerik Turunan Pertama Numerik Metode Maju ( Forward ) fi – fo gf ( x ) = f' (xo) ~ h [ 12] : gf = ( f1 - f0 ) /h gf 0.497363752535389 [ 13] : # Kesalahan relatif ef ( gf df ) /df ef = -0.0794713494027356 Turunan Pertama Numerik Metode Mundur (Backward ) fo - f- 1 gb( x) = f' ( xo ) h [ 14] : gb = ( fo fm1 ) /h gb 0.581440751804131 [ 15] : # Kesalahan relatif eb ( gb df ) /df eb = 0.0761396823392994 161 | 382


Turunan Kedua Eksak [ 16] : d2fx = diff (fx , x , 2 ) d2fx – sin ( 2) [ 17] : d2f d2fx . subs ( x , x0 ) = d2f -0.841470984807897 Turunan Kedua Metode Tengah (Central) fi - 2 fo + f - 1 pc( x) = f ' (x ) = h2 [ 18] : pc = ( f1 - 2 * fo + fm1 ) / ( h*h ) pc -0.840769992687418 [ 19] : # Kesalahan relatif ec2 ( pc d2f ) / d2f ec2 -0.000833055605165907 8.6 Perbandingan Kesalahan Turunan Numerik [ 20] : xd = np.linspace (0,10,100 ) 162 | 382


I Wayan Sudiarta Metode Numerik [21]: # Mengubah persamaan Sympy menjadi fungsi ↩→Python dengan lamddify() df = lambdify(x, dfx) ff = lambdify(x, fx) dfd = df(xd) [22]: # Hitung Turunan Numerik gc = (ff(xd + h) - ff(xd - h))/(2*h) gf = (ff(xd + h) - ff(xd))/h gb = (ff(xd) - ff(xd - h))/h [23]: fig, (ax1, ax2) = plt.subplots(nrows=2, ↩→ncols=1, figsize=(6, 6)) ax1.plot(xd, gc, or , label= Central ) ax1.plot(xd, gc, xg , label= Forward ) ax1.plot(xd, gc, +r , label= Backward ) ax1.plot(xd, dfd, -k , label= Eksak ) ax1.set_ylabel( Turunan Pertama ) ax1.legend(loc= upper right ) ax2.plot(xd, gc - dfd, -k , ↩→label= Central ) ax2.plot(xd, gf - dfd, :b , ↩→label= Forward ) ax2.plot(xd, gb - dfd, --r , ↩→label= Backward ) ax2.set_ylabel( Kesalahan ) ax2.set_xlabel( x ) 163 382


ax2.legend(loc= upper right ) fig.tight_layout(); 8.7 Rumus-Rumus Turunan Numerik Rumus-rumus beda hingga (finite difference) untuk tu runan orde yang lebih tinggi bisa didapatkan dengan prosedur yang hampir sama. Rumus-rumus turunan 164 382


I Wayan Sudiarta Metode Numerik numerik diberikan pada Tabel 8.2, 8.3 dan 8.4. Cara cara penurunan rumus-rumus ini dibahas pada bagian problem solving. Soal-Soal Soal 8.1. Gunakan metode interpolasi Lagrange un tuk menentukan turunan numerik untuk f (x) dengan metode ke belakang tiga titik. Soal 8.2. Gunakan metode interpolasi Lagrange un tuk menentukan turunan numerik untuk f (x) dengan metode tengah lima titik. Soal 8.3. Diberikan data fungsi f(x) = x4−x+1 pada tabel di bawah ini. Tentukan nilai turunan pertama, kedua, ketiga dan keempat untuk posisi x = 1 dengan (a) metode beda hingga ke depan, (b) metode beda hingga ke tengah dan (c) metode beda hingga ke be lakang. Bandingkan nilai turunan secara numerik dan secara analitik. Metode manakah yang lebih akurat. 165 382


Tabel 8.2 : Rumus -rumus beda hingga ke belakang ( backward finite difference). Notasi fi = f ( x + ih ) ( 8.42 ) fo – f - 1 f' ( x) = + O( h ) h 3fo – 4f- 1 + f - 2 f '(x ) ~ + O (h ) 2h ( 8.43 ) ( 8.44) fo – 2f -1 + f-2 f " (x ) = + O( h ) h2 2 fo – 5f-1 + 4f - 2 – 4-3 f " (x ) = + O( ha) h2 ( 8.45) fo – 3f- 1 + 34-2 – f-3 f '' (x ) = + O( h) ( 8.46) h3 f ' ( x ) = 5f0 – 18f- 1 + 24f- 2 – 149-3 + 3f -4 + O( ha ) 2h3 ( 8.47) h4 fo – 4f-1 + 6f_2 – 4f-3 + f-4 + 0 (h) ( 8.48) f( 4 ) (x) = 3fo – 14f-1 + 26f_2 – 24f-3 + 11f-4 – 2f-5 + 0(h?) f( 4) ~ ( 8.49) h4 166 | 382


I Wayan Sudiarta Metode Numerik x f(x) 0.0 1.0000 0.2 0.8016 0.4 0.6256 0.8 0.6096 1.0 1.0000 1.2 1.8736 1.4 3.4416 1.6 5.9536 1.8 9.6976 2.0 15.0000 Soal 8.4. Diberikan data fungsi f(x) pada tabel di so al sebelumnya. Tentukan nilai turunan pertama, ke dua, ketiga dan keempat untuk posisi x = 1 tetapi dengan menggunakan persamaan numerik yang lebih akurat atau memiliki orde kesalahan yang lebih kecil (lihat Tabel 8.2-8.4). Soal 8.5. Gunakan data sebelumnya. Tentukan nilai turunan pertama, kedua x = 1.0 dengan metode beda hingga tengah dengan nilai h = 0.2, h = 0.4 dan h = 0.6. Bandingkan hasilnya. Soal 8.6. Tentukan persamaan numerik untuk tu runan kedua f (x) jika interval x tidak sama, seba gai contoh diberikan tiga titik data {(x − h, f(x − h)),(x, f(x)),(x+ k,f(x+ k))} dengan interval h dan k. 167 382


Tabel 8.3 : Rumus- rumus beda hingga tengah ( central finite difference ). Notasi fi = f( x + ih) ( 8.50) fi - f - 1 f' ( x) = + O( h ) 2h - f2 + 8f1 – 8f - 1 + f - 2 + O( h4 ) 12h f' (x ) = ( 8.51 ) fi - 2 fo + f - 1 f " ( x ) = + O( ha ) ( 8.52 ) h2 –f2 + 16f1 - 30fo + 16f-1 - f - 2 + O (h ) 12h2 ( 8.53 ) f " (x ) - 2 = f2 – 2f1 + 2f- 1 - 1-2 f '' (x ) + O( ha ) ( 8.54) 2h3 f'' ( x) = — f3 + 8f2 – 13f1 + 13f-1 – 8f-2 + f-3 + 0 (14) ( 8.55 ) 8h3 f( 4) (2) f2 – 4f1 + 6 fo – 4f- 1 + f - 2 + O( ha ) ( 8.56) h4 = f(1) = -f3 + 3+0( 44 ) 12 f2 – 39f1 + 56fo – 39f-1 + 12f_2 – f-3 ( 8.57) 6h4 168 | 382


I Wayan Sudiarta Metode Numerik Tabel 8.4 : Rumus-rumus beda hingga ke depan ( for ward finite difference ). Notasi fi = f ( x + ih ) ( 8.58 ) fi – fo f' ( x) = + O( h ) h -3f2 + 4fi - fo f' ( x) = + O( ha) 2h ( 8.59) ( 8.60) $2 – 2f1 + fo f " ( x ) = +0( h) h2 -f3 + 4f2 – 5f1 + 2fo f " ( x) = + O( h ) h2 ( 8.61 ) $ 3 – 3f2 + 3f1 – fo f '' (x ) = + O (h ) ( 8.62 ) h3 -3f4 + 14f3 – 24f2 + 18f1 – 5fo f' ( x) = + O( ha) 2h3 ( 8.63 ) f( 4 ) ( x) = f4 – 463 + 6f2 – 4f1 + fo +0 ( h ) h4 ( 8.64 ) f( 4) -2f5 + 11f4 – 24f3 + 26 f2 – 14f1 + 3fo + O( ha ) h4 ( 8.65 ) 169 | 382


Bab 9 Integrasi Numerik "There are going to be priorities and multiple dimen sions of your life, and how you integrate that is how you find happiness." –Denise Morrison Pada bab ini kita akan belajar menghitung secara numerik nilai integral tentu dari suatu fungsi, f(x), pada interval [a, b] atau secara simbol dituliskan seba gai berikut: I = ∫ b a f(x)dx (9.1) Sebelum kita mengerti metode integrasi numerik, kita perlu tahu apa arti nilai I integral tentu ini. Mari kita perhatikan Gambar 9.1. Secara geometri, nilai integral tentu merupakan luas di antara kurva fungsi f(x) dan sumbu x pada interval [a, b]. Perlu kita ingat dan perhatikan bahwa nilai luas bergantung pada nilai 171 382


fungsi f(x). Sehingga nilai luas dapat bernilai negatif jika nilai fungsi bernilai negatif. Pada Gambar 9.1, pada daerah [a, c] integral tentu fungsi f(x) bernilai positif, dan pada daerah [c, b] integral tentu bernilai negatif. y b O c f(x) x a Gambar 9.1: Integral tentu pada daerah [a, b]. Berhubungan dengan arti geometri dari integral ten tu, simbol ∫ merupakan huruf s yang ditarik/diperpanjang. Huruf s merupakan singkatan dari kata sum yang berarti jumlah. Dengan kata-kata, kita mem bahasakan simbol integral pada persamaan 9.1 seba gai berikut : integral f(x)dx adalah jumlah perkalian f(x) dengan dx dari posisi x = a sampai posisi x = b. Perkalian f(x) dan dx adalah luas sebuah persegipan jang. Dengan interpretasi integral ini, kita perlu selalu mengingat bahwa kita dapat mengubah simbol integral menjadi simbol jumlah seperti berikut ini. 172 382


I Wayan Sudiarta Metode Numerik I = ∫ba ≈ x<b∑ i f(x)dx f(xi)dx (9.2) xi=a Untuk lebih jelas, mari kita perhatikan Gambar 9.2. Jika kita bagi luas daerah antara kurva fungsi dan sumbu x menjadi banyak persegi dengan panjang f(xi) dan lebar dx. Integral fungsi pada interval [a, b] meru pakan jumlah luas semua persegi panjang. Tentunya pendekatan ini akan akurat ketika lebar persegi pan jang cukup kecil. y b O x a f(x) Gambar 9.2: Luas daerah dibagi menjadi banyak luas persegi panjang. Pendekatan numerik pertama yang paling sederha na untuk integral tentu yaitu dengan membagi dae rah/luasan menjadi N persegi dengan lebar/interval yang sama yaitu h = (b − a)/N. Untuk memper mudah kita akan menggunakan posisi titik-titik pada 173 382


batas-batas persegi panjang adalah xi = a + ih de ngan i = 0,1,2,...,N dan nilai fungsi pada titik-titik tersebut adalah fi = f(a + ih). Pendekatan integra si numerik seperti yang ditunjukkan pada Gambar 9.2 adalah I = ∫ba N−1∑ f(x)dx = i=0 fih = (b − a) 1 N−1∑ N fi (9.3) i=0 Selain cara ini, kita bisa juga menggunakan persegi panjang dengan panjang pada sisi yang lainnya seper ti yang ditunjukkan pada Gambar 9.3. Pendekatan integrasi numerik menjadi I= ∫ab f(x)dx = N∑ fih N∑ i=1 = (b − a) 1 N fi (9.4) i=1 y O b x a f(x) Gambar 9.3: Luas daerah dibagi menjadi banyak luas persegi panjang. 174 382


I Wayan Sudiarta Metode Numerik 9.1 Metode Trapesium Metode yang lebih akurat daripada metode persegi panjang sebelumnya adalah metode trapesium. Luas fungsi dibagi menjadi banyak trapesium dengan inte rval yang sama, h = (b − a)/N, perhatikan Gambar 9.4. Mari kita tinjau satu bagian saja pada wilayah integral. Untuk mempermudah kita ambil bagian per tama. f(x) y f f1 0 f2 f3 x4 x5 x6 O x x0 x1 x2 x3 f4 f6 f5 Gambar 9.4: Luas daerah dibagi menjadi banyak luas trapesium. Pendekatan paling pertama, dengan mengasumsik 175 382


an bahwa kurva fungsi dianggap sebuah garis lurus . Kurva garis lurus , garis vertikal pada posisi xo dan Xi dan sumbu x membentuk sebuah trapesium. Sehingga pendekatan untuk integral dengan menggunakan luas trapesium . 10 = [ f(x)dx== fo + Pi) ( 9.5 ) Jadi setiap bagian memiliki luas , In = [*** f ( x )dx = s. + fu+ 1 ) ( 9.6 ) In Jika semua luas bagian dijumlahkan menghasilkan pendekatan integral, 1 = 1° f (a )dx = ; ( Š( fu + funt ( 9.7) in=0 atau 1 = [° (ade = 1(fo +8x +2ŽM.) ( 9.8 ) atau 1 = 1° (x)dx = (8 +251+ 2 % 3 + --- + 2fx -1 +fx) ( 9.9 ) 176 | 382


I Wayan Sudiarta Metode Numerik 9.2 Metode Simpson Formula 1/3 Selanjutnya, kita ingin memperbaiki metode trapesi um yang menggunakan pendekatan kurva garis lurus. Pendekatan integral selanjutnya adalah dengan pende katan kurva fungsi polinom kuadrat seperti ditunjukk an pada Gambar 9.5. Untuk mendapatkan pendekatan kuadrat, kita perlu menggunakan tiga titik pada kurva atau dua bagian luas. Seperti sebelumnya, mari kita tinjau dua bagian pertama saja pada wilayah integral. Agar lebih jelas, Luas atau integral dibagi menjadi 2M bagian sehingga ada 2M +1 titik data. Luas dua bagian pertama I1 dapat diperoleh dengan menginte gralkan polinom interpolasi atau dengan metode un determined coefficients. Penjelasan lengkap diberikan pada bagian Problem Solving. Hasil yang diperoleh untuk luas dua bagian pertama adalah I1 = ∫ x x01 f(x)dx = h 3 (f0 + 4f1 + f2) (9.10) Jadi setiap dua bagian memiliki luas, In = ∫ x x2n−22n f(x)dx = h3 (f 2n−2 + 4f2n−1 + f2n) (9.11) Jika semua luas bagian dijumlahkan menghasilkan 177 382


Y fi fo { 1 ( x) £3 x4 25 X6 O х Xo X1 X2 X3 f( x) $ 2( ad) S3( x) fo f5 Gambar 9.5 : Ilustrasi pendekatan polinom kuadrat untuk integrasi numerik. pendekatan integral, n = 0 + f2n) h f( x) dx (f2n -2 + 4f2n- 1 + f2n ) 3 ( 9.12 ) dengan 2M adalah jumlah bagian. atau dijabarkan menjadi I = a h ( fo + 4f1 +252 + 4f3 + 2f4 ... + fn ) 2 ( 9.13 ) 178 | 382


I Wayan Sudiarta Metode Numerik Formula 3/8 Selanjutnya, kita ingin memperbaiki metode Simpson yang menggunakan pendekatan kurva kuadrat. Pen dekatan integral selanjutnya adalah dengan pendekat an kurva fungsi polinom orde tiga. Untuk mendapatk an pendekatan polinom orde tiga, kita perlu menggu nakan empat titik pada kurva atau tiga bagian luas. Seperti sebelumnya, mari kita tinjau tiga bagian per tama saja pada wilayah integral. Dengan cara integral fungsi polinom orde tiga atau metode undetermined coefficients diperoleh persamaan, I1 = ∫ x3 x f(x)dx = h3(f 0 + 3f1 +3f2 + f3) (9.14) 0 Jadi setiap tiga bagian memiliki luas, In = ∫xx3n f(x)dx = 3n−3 3h 8 (f3n−3 +3f3n−2 +3fn−1 +f3n) (9.15) Jika semua luas bagian dijumlahkan menghasilkan pendekatan integral, I = ∫ b a f(x)dx = h 2 (f0 +3f1+3f2+2f3+···+3fN−1+fN) (9.16) 179 382


9.3 Metode Gauss-Legendre Sebelumnya, secara umum, pendekatan numerik untuk integral berbentuk I = ∫ab f(x)dx = N∑ wnfn n=0 (9.17) dengan nilai fn = f(xn) = f(x0 + nh) dan wn adalah nilai weight atau bobot. Kita menggunakan xn de ngan interval yang seragam dan wn disesuaikan agar integralnya akurat. Pendekatan integral dapat diper baiki dengan menggunakan xn yang disesuaikan. Jadi dengan mengubah nilai wn dan xn pendekatan akan menjadi lebih akurat dibandingkan dengan xn yang merata. Untuk mempermudah penggunaan metode Gauss Legendre, mari kita tinjau integral yang berbentuk IG = ∫−11 f(x)dx (9.18) a x = Integrasi pada interval [a, b] dapat diubah ke inte grasi pada interval [−1,1] dengan mengubah variabel, a + b + b − y 2 (9.19) 2 dan dx = b − a (9.20) 2 Sehingga integral menjadi I = ∫ b a dy f(x)dx = (b −2 a) ∫1 g(y)dy −1 (9.21) 180 382


I Wayan Sudiarta Metode Numerik a + b b − a dengan g(y) = f( + 2 y) (9.22) 2 Sekarang akan kita jabarkan penurunan rumus in tegrasi numerik Gauss-Legendre untuk dua titik saja. Pendekatan integral dengan dua titik yaitu IG = ∫ −1 1 f(x)dx = w1f(x1) + w2f(x2) (9.23) Karena ada empat variable yang dapat diubah (x1, x2, w1, dan w2), maka kita berharap dapat menda patkan integrasi numerik untuk fungsi polinom orde tiga yang eksak. Jadi nilai empat parameter ini dise suaikan sehingga integral polinom orde tiga menjadi eksak. Mari kita tinjau integral bagian polinom satu per satu. Jika f(x)=1 maka kita memperoleh persamaan ∫ 1 −1 1dx =2= w1 + w2 (9.24) Jika f(x) = x maka ∫ 1 −1 xdx =0= w1x1 + w2x2 (9.25) Jika f(x) = x2 maka ∫1−1 x2dx = 2 3 = w1x21 + w2x22 (9.26) 181 382


Jika f(x) = x3 maka ∫ 1−1 x3dx =0= w1x31 + w2x32 (9.27) Kita memperoleh empat persamaan nonlinier, w1 + w2 = 2 (9.28) w1x1 + w2x2 = 0 (9.29) w1x21 + w2x22 = w1x31 + w2x32 = 0 23 (9.30) (9.31) Dengan substitusi persamaan (9.31) dengan meng gunakan persamaan (9.29) diperoleh x21 = x22 atau x1 = −x2 (9.32) Menggunakan hasil ini dan substitusi kembali ke persamaan (9.29) didapatkan bahwa w1 = w2 (9.33) Menggunakan persamaan (9.28), diperoleh w1 = w2 = 1. Dengan persamaan (9.30), kemudian kita mempero leh w1x21 + w2x22 = x21 + x21 = 23 (9.34) Sehingga dihasilkan x1 √ √ = −1/ 3 ≈ −0.57735027 dan x2 = +1/ 3 ≈ 0.57735027. 182382


Click to View FlipBook Version