Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson Turunan Parsial
PAM 252 Metode Numerik Bab 5 Turunan Numerik Mahdhivan Syafwan Jurusan Matematika FMIPA Universitas Andalas
Semester Genap 2013/2014
1
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson Turunan Parsial
Permasalahan Motivasi
Permasalahan
Bagaimana menghitung hampiran dari f ′ (x)? Bagaimana menghitung hampiran dari f ′′ (x), f ′′′ (x), ...f (n) (x)? Bagaimana menghitung hampiran dari turunan parsial, misalnya ∂f (x, t)/∂x?
2
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson Turunan Parsial
Permasalahan Motivasi
Motivasi
Banyak sekali fenomena alam yang dimodelkan oleh persamaan matematika yang melibatkan turunan (persamaan diferensial). Contoh: ... Untuk masalah-masalah yang lebih realistis, model matematika (persamaan diferensial) yang dihasilkan sulit/tidak ada penyelesaian eksaknya. Dengan demikian diperlukan pendekatan numerik untuk menyelesaikan persamaan diferensial tersebut dengan mencari hampiran turunannya terlebih dahulu.
3
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson 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+1) (c) f (n) (˜ x) (x − x˜)n + (x − x˜)n+1 . (1) +···+ n! (n + 1)! Bukti detailnya akan diberikan pada kuliah Analisis Riil.
4
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson 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) + +
h2 ′′ hn f (x) + · · · + f (n) (x) 2! n!
hn+1 (n+1) f (x + θh), (n + 1)!
0 < θ < 1.
(2)
n+1
h Untuk selanjutnya ditulis (n+1)! f (n+1) (x + θh) = O(hn+1 ) dan suku ini disebut galat pemotongan orde hn+1 .
Perhatikan bahwa untuk h ≪ 1, galat O(hn+1 ) → 0 bilamana n→∞
5
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson 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, variabel domain x dipartisi atas sejumlah titik partisi dengan lebar selang yang sama. Misalkan x ∈ [a, b] dipartisi atas N + 1 titik partisi dengan lebar selang h. Dengan demikian titik-titik partisinya adalah xi = a + ih, i = 0, 1, ..., N. Dalam hal ini x0 = a dan xN = b. Selanjutnya nilai fungsi di masing-masing titik partisi ditulis fi = f (xi ). 6
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson Turunan Parsial
Dasar Teori dan Konstruksi Awal Jenis Beda Hingga dan Rumusnya Turunan Tingkat Tinggi
Ilustrasi untuk N = 6
7
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson 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
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson 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
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson 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
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson 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
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson 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 (misalnya 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
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson 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! dan eliminasi f ′′ (x), sehingga diperoleh [tunjukkan!] f (x + h)
= f (x) + hf ′ (x) +
−3f (x) + 4f (x + h) − f (x + 2h) + O(h2 ). 2h Koefisien rumus beda hingga untuk beberapa orde ketelitian dapat dilihat di http://en.wikipedia.org/wiki/Finite difference coefficient f ′ (x) =
Ada beberapa metode alternatif untuk memformulasi hampiran turunan dengan ketelitian yang lebih tinggi tetapi dengan beban komputasi yang lebih ringan, salah satunya adalah metode spektral (tidak dipelajari dalam kuliah ini). 13
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson 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 h2 ′′ h3 f (x) + f ′′′ (x) + O(h4 ), 2! 3! 3 2 h h f (x − h) = f (x) − hf ′ (x) + f ′′ (x) − f ′′′ (x) + O(h4 ), 2! 3! dan eliminasi f ′ (x), sehingga diperoleh [tunjukkan!] f (x + h)
= f (x) + hf ′ (x) +
f ′′ (x) = 14
f (x + h) − 2f (x) + f (x − h) + O(h2 ). h2
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson 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 (metode alternatif untuk mengatasi hal ini tidak dipelajari di kuliah ini). 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]. Beberapa di antaranya dapat dilihat di http://en.wikipedia.org/wiki/Finite difference coefficient.
15
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson Turunan Parsial
Motivasi dan Definisi Teorema dan Penerapan
Ekstrapolasi Richardson - motivasi
Hampiran turunan beda pusat dengan orde O(h2 ) adalah f ′ (x) ≈
f (x + h) − f (x − h) 2h
Hampiran turunan beda pusat dengan orde O(h4 ) adalah ... Hampiran turunan beda pusat dengan orde O(h2n ) adalah ... Apakah ada cara sistematis (iteratif) untuk memperoleh rumus hampiran turunan beda pusat dengan orde O(h2n ) ?
16
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson Turunan Parsial
Motivasi dan Definisi Teorema dan Penerapan
Ekstrapolasi Richardson - ide Hampiran turunan beda pusat dengan orde O(h2 ): Untuk selang h adalah f ′ (x) = D0 (h) − dengan D0 (h) =
h2 f ′′′ (x) + O(h4 ), 6
f (x+h)−f (x−h) . 2h
Untuk selang 2h adalah f ′ (x) = D0 (2h) − dengan D0 (2h) =
4h2 f ′′′ (x) + O(h4 ), 6
f (x+2h)−f (x−2h) , 4h ′′′
Eliminasi suku yang memuat f (x), diperoleh [tunjukkan!] f ′ (x) = D1 (h) + O(h4 ), dengan D1 (h) = 17
f (x−2h)−8f (x−h)+8f (x+h)−f (x+2h) . 12h Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson Turunan Parsial
Motivasi dan Definisi Teorema dan Penerapan
Ekstrapolasi Richardson - definisi
Perhatikan bahwa rumus D1 (h) pada persamaan sebelumnya sama persis dengan rumus hampiran turunan beda pusat orde O(h4 ) yang diperoleh dari deret Taylor. [periksa!] Metode untuk memperoleh rumus hampiran turunan dengan orde yang lebih tinggi dari hampiran dengan orde yang lebih rendah disebut dengan ekstrapolasi. Metode tersebut dikembangkan oleh Lewis Fry Richardson di awal abad 20, sehingga metode tersebut kemudian dikenal dengan ekstrapolasi Richardson
18
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson Turunan Parsial
Motivasi dan Definisi Teorema dan Penerapan
Ekstrapolasi Richardson - teorema Teorema Ekstrapolasi Richardson Misalkan Dk−1 (h) dan Dk−1 (2h) adalah dua hampiran untuk f ′ (x) dengan orde O(h2k ), yaitu f ′ (x) f ′ (x)
= Dk−1 (h) + h2k C (x) + O(h2k+2 ), = Dk−1 (2h) + 4k h2k C (x) + O(h2k+2 ).
Maka perbaikan dari hampiran f ′ (x) diberikan oleh f ′ (x) = Dk (h) + O(h2k+2 ) =
4k Dk−1 (h) − Dk−1 (2h) + O(h2k+2 ). (3) 4k − 1
Perhatikan bahwa rumus (3) melibatkan nilai fungsi pada selang yang semakin menjauh dari x, yaitu menggunakan hampiran pada selang h dan 2h. 19
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson Turunan Parsial
Motivasi dan Definisi Teorema dan Penerapan
Ekstrapolasi Richardson - memperhalus selang partisi Rumus (3) dapat dimodifikasi dengan memperhalus selang. Perhalus selang h menjadi h/2, sehingga diperoleh [tunjukkan!] Dk (h/2) = Dk−1 (h/2) +
Dk−1 (h/2) − Dk−1 (h) . 4k − 1
Perhalus selang h/2 menjadi (h/2)/2 = h/22 , sehingga diperoleh Dk (h/22 ) = Dk−1 (h/22 ) +
Dk−1 (h/22 ) − Dk−1 (h/2) . 4k − 1
Lakukan sampai selang menjadi h/2j , sehingga diperoleh Dk (h/2j ) = Dk−1 (h/2j ) + 20
Mahdhivan Syafwan
Dk−1 (h/2j ) − Dk−1 (h/2j−1 ) . 4k − 1 Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson Turunan Parsial
Motivasi dan Definisi Teorema dan Penerapan
Ekstrapolasi Richardson - penerapan Dalam notasi indeks, persamaan terakhir dapat ditulis D(j, k − 1) − D(j − 1, k − 1) , 4k − 1 dimana k terkait dengan orde dan j terkait dengan lebar selang. D(j, k) = D(j, k − 1) +
Jadi, untuk menghitung f ′ (x) dengan ekstrapolasi Richardson, mulai dengan lebar selang h kemudian diperhalus menjadi setengahnya, dan seterusnya. Turunan diperoleh pada saat j = k. Nilai-nilai D(j, k) dapat disusun dalam bentuk matriks segitiga bawah: D(0, 0) D(1, 0) D(1, 1) D(2, 0) D(2, 1) D(2, 2) .. .. .. .. . . . . Algoritma? 21
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson Turunan Parsial
Motivasi dan Definisi Teorema dan Penerapan
Ekstrapolasi Richardson - algoritma
22
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson Turunan Parsial
Motivasi dan Definisi Teorema dan Penerapan
Ekstrapolasi Richardson - contoh
23
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson 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
24
≈ ≈
f (x + ∆x, y ) − f (x − ∆x, y ) , 2∆x f (x, y + ∆y ) − f (x, y − ∆y ) . 2∆y
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson 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 ∂2f ∂ ∂f = . ∂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 f
2∆x ∂f ∂y (x
(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 25
∂2 f ∂x∂y
≈ ··· Mahdhivan Syafwan
Metode Numerik: Turunan Numerik
Pendahuluan Metode Beda Hingga Ekstrapolasi Richardson Turunan Parsial
Turunan Parsial Pertama Turunan Parsial Kedua (Campuran)
Contoh
Hitunglah ∂f /∂x, ∂f /∂y , dan ∂ 2 f /∂x∂y untuk fungsi berikut di x = y = 1 secara (a) analitik, dan (b) numerik dengan ∆x = ∆y = 0, 0001. f (x, y ) = 3xy + 3x − x 3 − 3y 3 .
26
Mahdhivan Syafwan
Metode Numerik: Turunan Numerik