Metode Beda Hingga pada Turunan Fungsi

advertisement
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
Download