Pendahuluan Turunan Biasa Turunan Parsial PAM 573 Persamaan Diferensial Parsial Topik: Metode Beda Hingga pada Turunan Fungsi Mahdhivan Syafwan Program Magister Jurusan Matematika FMIPA Universitas Andalas Semester Genap 2016/2017 1 Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Motivasi Permasalahan Motivasi Banyak sekali fenomena alam yang dimodelkan oleh persamaan diferensial (biasa atau parsial). Contoh: ... Untuk masalah-masalah yang lebih realistis, model matematika (persamaan diferensial) yang dihasilkan seringkali tidak dapat dicari penyelesaian eksaknya. Perlu pendekatan numerik untuk menyelesaikan persamaan diferensial tersebut dengan mencari hampiran turunannya terlebih dahulu. 2 Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Motivasi Permasalahan Permasalahan 3 1 Hampiran untuk f ′ (x)? (turunan biasa orde 1) 2 Hampiran untuk f ′′ (x), ..., f (n) (x)? (turunan biasa orde > 1) 3 Penyelesaian numerik dari persamaan diferensial biasa? 4 Penyelesaian numerik dari persamaan diferensial parsial? Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Dasar Teori dan Konstruksi Awal Jenis Beda Hingga dan Rumusnya Turunan Tingkat Tinggi Teorema Taylor Teorema Taylor Misalkan n ∈ N, I = [a, b], dan f : I → R sedemikian sehingga f dan turunannya f ′ , f ′′ , ..., f (n) kontinu pada I dan f (n+1) ada pada (a, b). Jika x̃ ∈ I , maka untuk sebarang x ∈ I terdapat titik c di antara x dan x̃ sedemikian sehingga f ′′ (x̃ ) (x − x̃)2 f (x) = f (x̃) + f ′ (x̃)(x − x̃) + 2! f (n) (x̃) f (n+1) (c) +···+ (x − x̃)n + (x − x̃)n+1 . (1) n! (n + 1)! Bukti detailnya ada di buku Analisis Riil. 4 Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Dasar Teori dan Konstruksi Awal Jenis Beda Hingga dan Rumusnya Turunan Tingkat Tinggi Teorema Taylor Pers. (1) dapat juga ditulis dengan [tunjukkan!] f (x + h) = f (x) + hf ′ (x) + + hn h2 ′′ f (x) + · · · + f (n) (x) 2! n! hn+1 (n+1) f (x + θh), (n + 1)! Untuk selanjutnya, tulis O(hn+1 ) = O(hn+1 ) disebut galat pemotongan 0 < θ < 1. hn+1 (n+1) (x (n+1)! f orde hn+1 . (2) + θh). Perhatikan bahwa untuk h ≪ 1, O(hn+1 ) → 0 bilamana n → ∞. 5 Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Dasar Teori dan Konstruksi Awal Jenis Beda Hingga dan Rumusnya Turunan Tingkat Tinggi Konstruksi awal metode beda hingga Salah satu metode yang biasa digunakan untuk menghitung hampiran turunan adalah metode beda hingga (finite difference). Pada metode ini, domain f (x) dipartisi atas sejumlah titik partisi dengan lebar selang yang sama. Domain f (x), misalkan [a, b], dipartisi atas N + 1 titik partisi dengan lebar selang h. Dengan demikian titik-titik partisinya adalah xi = a + (i − 1)h, i = 1, ..., N + 1. Dalam hal ini x1 = a dan xN+1 = b. Selanjutnya nilai fungsi di masing-masing titik partisi ditulis fi = f (xi ). 6 Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Dasar Teori dan Konstruksi Awal Jenis Beda Hingga dan Rumusnya Turunan Tingkat Tinggi Ilustrasi untuk N = 6 7 Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Dasar Teori dan Konstruksi Awal Jenis Beda Hingga dan Rumusnya Turunan Tingkat Tinggi Jenis beda hingga Ada tiga jenis beda hingga yang biasa digunakan: 8 1 Beda maju (forward difference) Hampiran menggunakan informasi di titik xi dan beberapa titik di kanannya, yaitu xi +1 , xi +2 , .... 2 Beda mundur (back difference) Hampiran menggunakan informasi di titik xi dan beberapa titik di kirinya, yaitu ..., xi −2 , xi −1 . 3 Beda pusat/tengah (central difference) Hampiran menggunakan informasi di titik xi dan beberapa titik di kiri dan kanannya secara simetris (sama banyak). Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Dasar Teori dan Konstruksi Awal Jenis Beda Hingga dan Rumusnya Turunan Tingkat Tinggi Beda maju Dari pers. (2) dapat ditulis f (x + h) = f (x) + hf ′ (x) + O(h2 ), atau f (x + h) − f (x) + O(h). h Jadi rumus beda maju untuk f ′ (x) diberikan oleh f ′ (x) = f ′ (x) ≈ f (x + h) − f (x) , h dengan galat O(h). Dalam notasi partisi, ekspresi di atas dapat ditulis fi +1 − fi . fi ′ ≈ h 9 Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Dasar Teori dan Konstruksi Awal Jenis Beda Hingga dan Rumusnya Turunan Tingkat Tinggi Beda mundur Dari pers. (2) dapat ditulis f (x − h) = f (x) − hf ′ (x) + O(h2 ), atau f (x) − f (x − h) + O(h). h Jadi rumus beda mundur untuk f ′ (x) diberikan oleh f ′ (x) = f ′ (x) ≈ f (x) − f (x − h) , h dengan galat O(h). Dalam notasi partisi, ekspresi di atas dapat ditulis fi − fi −1 . fi ′ ≈ h 10 Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Dasar Teori dan Konstruksi Awal Jenis Beda Hingga dan Rumusnya Turunan Tingkat Tinggi Beda pusat Perhatikan bahwa h2 ′′ f (x) + O(h3 ), 2! h2 f (x − h) = f (x) − hf ′ (x) + f ′′ (x) + O(h3 ). 2! Kurangkan persamaan atas dengan persamaan bawah, diperoleh f (x + h) = f (x) + hf ′ (x) + f (x + h) − f (x − h) + O(h2 ). 2h Jadi rumus beda pusat untuk f ′ (x) diberikan oleh f ′ (x) = f (x + h) − f (x − h) , 2h dengan galat O(h2 ). Dalam notasi partisi, ekspresi di atas dapat ditulis f ′ (x) ≈ fi ′ ≈ 11 fi +1 − fi −1 . 2h Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Dasar Teori dan Konstruksi Awal Jenis Beda Hingga dan Rumusnya Turunan Tingkat Tinggi Catatan (1) Dalam hal galat yang dihasilkan, beda pusat lebih baik daripada beda maju dan beda mundur. Namun untuk beberapa kasus tertentu pada masalah nilai batas, beda maju atau beda mundur lebih tepat digunakan daripada beda pusat. Untuk memperkecil galat atau meningkatkan orde ketelitian, tambahkan deret Taylor untuk titik-titik sebelum atau sesudahnya dua tingkat atau lebih, dan eliminasi suku-suku yang sesuai. Semakin banyak ’keterlibatan’ titik-titik sebelum dan sesudahnya, semakin kecil galat yang dihasilkan. Tetapi hal itu harus dibayar dengan semakin berat beban komputasi yang dibutuhkan. 12 Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Dasar Teori dan Konstruksi Awal Jenis Beda Hingga dan Rumusnya Turunan Tingkat Tinggi Catatan (2) Sebagai contoh, beda maju untuk f ′ (x) dengan galat O(h2 ) dapat diformulasi dengan menggunakan kedua persamaan h2 ′′ f (x) + O(h3 ), 2! 4h2 ′′ f (x) + O(h3 ), f (x + 2h) = f (x) + 2hf ′ (x) + 2! f (x + h) = f (x) + hf ′ (x) + dan eliminasi f ′′ (x), sehingga diperoleh [tunjukkan!] f ′ (x) = −3f (x) + 4f (x + h) − f (x + 2h) + O(h2 ). 2h Ada beberapa metode alternatif untuk memformulasi hampiran turunan dengan ketelitian yang lebih tinggi tetapi dengan beban komputasi yang lebih ringan, salah satunya adalah metode pseudo-spektral (dipelajari dalam kuliah Metode Numerik Lanjut). 13 Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Dasar Teori dan Konstruksi Awal Jenis Beda Hingga dan Rumusnya Turunan Tingkat Tinggi Beda hingga untuk turunan tingkat tinggi Hampiran turunan tingkat tinggi dari f (x), yaitu f ′′ , f ′′′ , f (4) , dst dapat dicari dengan menambahkan deret Taylor untuk titik-titik sebelum atau sesudahnya dua tingkat atau lebih, dan mengikutsertakan suku-suku turunan yang lebih tinggi, serta mengeliminasi suku-suku yang sesuai. Sebagai contoh, beda pusat untuk f ′′ (x) diformulasi dengan menggunakan kedua persamaan f (x + h) f (x − h) h2 ′′ f (x) + 2! 2 h = f (x) − hf ′ (x) + f ′′ (x) − 2! = f (x) + hf ′ (x) + h3 ′′′ f (x) + O(h4 ), 3! h3 ′′′ f (x) + O(h4 ), 3! ′′′ dan eliminasi f ′ (x) dan f (x), sehingga diperoleh [tunjukkan!] f ′′ (x) = 14 f (x + h) − 2f (x) + f (x − h) + O(h2 ). h2 Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Dasar Teori dan Konstruksi Awal Jenis Beda Hingga dan Rumusnya Turunan Tingkat Tinggi Catatan (3) Sama halnya pada turunan pertama, hampiran turunan tingkat tinggi dapat ditingkatkan orde ketelitiannya dengan memperbanyak ’keterlibatan’ titik-titik sebelum dan sesudahnya, namun hal itu mengakibatkan semakin berat beban komputasi yang dibutuhkan. Secara umum, algoritma untuk membangkitkan rumus beda hingga (maju, mundur, dan pusat) untuk turunan ke-n dari f (x) dan untuk orde ketelitan ke-m diberikan oleh Bengt Fornberg [Fornberg, Bengt (1988), Generation of Finite Difference Formulas on Arbitrarily Spaced Grids, Mathematics of Computation 51 (184): 699706]. Selain itu, bentuk tutup dari rumus beda hingga (maju, mundur, dan pusat) untuk turunan ke-n dari f (x) dengan orde ketelitan ke-m juga sudah dikembangkan oleh Khan dan Ohba [Khan, Ishtiaq Rasool and Ohba, Ryoji. 1999. Closed form expressions for the finite difference approximations of first and higher derivatives based on Taylor series. J. Comput. Appl. Math. 107: 179-193]. 15 Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Dasar Teori dan Konstruksi Awal Jenis Beda Hingga dan Rumusnya Turunan Tingkat Tinggi Koefisien Beda Hingga 16 Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Turunan Parsial Pertama Turunan Parsial Kedua (Campuran) Turunan parsial pertama Turunan parsial pertama dapat dihitung secara numerik dengan menggunakan metode beda hingga dengan cara yang serupa dengan perhitungan pada turunan biasa. Misalkan kita ingin menentukan turunan parsial pertama untuk fungsi dua variabel f (x, y ). Dengan menggunakan beda pusat, diperoleh ∂f ∂x ∂f ∂y 17 ≈ ≈ f (x + ∆x, y ) − f (x − ∆x, y ) , 2∆x f (x, y + ∆y ) − f (x, y − ∆y ) . 2∆y Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik Pendahuluan Turunan Biasa Turunan Parsial Turunan Parsial Pertama Turunan Parsial Kedua (Campuran) Turunan parsial kedua (campuran) Misalkan kita ingin menentukan turunan parsial dari f (x, y ) terhadap x dan y , yaitu ∂ ∂f ∂2f . = ∂x∂y ∂x ∂y Bentuk terlebih dahulu ekspresi beda hingga (dalam hal ini beda pusat) untuk turunan parsial terhadap x dari turunan parsial terhadap y , yaitu ∂ 2f ≈ ∂x∂y ∂f ∂y (x Selanjutnya turunan parsial + ∆x, y ) − ∂f ∂y (x 2∆x ∂f ∂y (x − ∆x, y ) . ± ∆x, y ) dapat diaproksimasi oleh ∂f f (x ± ∆x, y + ∆y ) − f (x ± ∆x, y − ∆y ) (x ± ∆x, y ) ≈ . ∂y 2∆y Jadi 18 ∂2 f ∂x∂y ≈ ··· Mahdhivan Syafwan Persamaan Diferensial Parsial: Turunan Numerik