Interpolasi Cubic Spline Bahasa Komputasi Teknis

8.2. INTERPOLASI CUBIC SPLINE 115 ketika x = x j , S ′ j x j = b j + 2c j x j − x j + 3d j x j − x j 2 = b j dan ketika x = x j+1 , b j+1 = S ′ j x j+1 = b j + 2c j x j+1 − x j + 3d j x j+1 − x j 2 Ini dapat dinyatakan sebagai b j+1 = b j + 2c j x j+1 − x j + 3d j x j+1 − x j 2 dan dinyatakan dalam h j b j+1 = b j + 2c j h j + 3d j h 2 j 8.5 Berikutnya, kita hitung turunan kedua dari persamaan 13.7 S ′′ j x = 2c j + 6d j x − x j 8.6 tapi dengan ketentuan tambahan yaitu S ′′ x2, sehingga persamaan ini dimodifikasi menjadi S ′′ j x = c j + 3d j x − x j dengan cara yang sama, ketika x = x j S ′′ j x j = c j + 3d j x j − x j = c j dan ketika x = x j+1 c j+1 = S ′′ j x j+1 = c j + 3d j x j+1 − x j c j+1 = c j + 3d j h j 8.7 dan d j bisa dinyatakan d j = 1 3h j c j+1 − c j dari sini, persamaan 8.4 dapat ditulis kembali a j+1 = a j + b j h j + c j h 2 j + d j h 3 j = a j + b j h j + c j h 2 j + h 2 j 3 c j+1 − c j = a j + b j h j + h 2 j 3 2c j + c j+1 8.8 116 BAB 8. INTERPOLASI sementara persamaan 8.5 menjadi b j+1 = b j + 2c j h j + 3d j h 2 j = b j + 2c j h j + h j c j+1 − c j = b j + h j c j + c j+1 8.9 Sampai sini masih bisa diikuti, bukan? Selanjutnya, kita coba mendapatkan b j dari persamaan 8.8 b j = 1 h j a j+1 − a j − h j 3 2c j + c j+1 8.10 dan untuk b j−1 b j−1 = 1 h j−1 a j − a j−1 − h j−1 3 2c j−1 + c j 8.11 Langkah berikutnya adalah mensubtitusikan persamaan 8.10 dan persamaan 8.11 kedalam persamaan 8.9, h j−1 c j−1 + 2h j−1 + h j c j + h j c j+1 = 3 h j a j+1 − a j − 3 h j−1 a j − a j−1 8.12 dimana j = 1, 2, ..., n − 1. Dalam sistem persamaan ini, nilai {h j } n−1 j=0 dan nilai {a j } n j=0 su- dah diketahui, sementara nilai {c j } n j=0 belum diketahui dan memang nilai inilah yang akan dihitung dari persamaan ini. Sekarang coba perhatikan ketentuan nomor 6, ketika S ′′ x = S ′′ x n = 0, berapakah nilai c dan c n ? Nah, kita bisa evaluasi persamaan 8.6 S ′′ x = 2c + 6d x − x = 0 jelas sekali c harus berharga nol. Demikian halnya dengan c n harganya harus nol. Jadi untuk natural boundary , nilai c = c n = 0. Persamaan 8.12 dapat dihitung dengan operasi matrik Ax = b dimana A =            1 . . . . . . . . . h 2h + h 1 h 1 . . . . . . h 1 2h 1 + h 2 h 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . h n−2 2h n−2 + h n−1 h n−1 . . . . . . . . . 1            x =       c c 1 .. . c n       8.2. INTERPOLASI CUBIC SPLINE 117 b =          3 h 1 a 2 − a 1 − 3 h a 1 − a .. . 3 h n−1 a n − a n−1 − 3 h n−2 a n−1 − a n−2          Sekarang kita beralih ke clamped boundary dimana S ′ a = f ′ a dan S ′ b = f ′ b. Nah, kita bisa evaluasi persamaan 8.10 dengan j = 0, dimana f ′ a = S ′ a = S ′ x = b , sehingga f ′ a = 1 h a 1 − a − h 3 2c + c 1 konsekuensinya, 2h c + h c 1 = 3 h a 1 − a − 3f ′ a 8.13 Sementara pada x n = b n dengan persamaan 8.9 f ′ b = b n = b n−1 + h n−1 c n−1 + c n sedangkan b n−1 bisa didapat dari persamaan 8.11 dengan j = n − 1 b n−1 = 1 h n−1 a n − a n−1 − h n−1 3 2c n−1 j + c n Jadi f ′ b = 1 h n−1 a n − a n−1 − h n−1 3 2c n−1 j + c n + h n−1 c n−1 + c n = 1 h n−1 a n − a n−1 + h n−1 3 c n−1 j + 2c n dan akhirnya kita peroleh h n−1 c n−1 + 2h n−1 C n = 3f ′ b − 3 h n−1 a n − a n−1 8.14 Persamaan 8.13 dan persamaan 8.14 ditambah persamaan 8.12 membentuk operasi matrik Ax = b dimana A =            2h h . . . . . . . . . h 2h + h 1 h 1 . . . . . . h 1 2h 1 + h 2 h 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . h n−2 2h n−2 + h n−1 h n−1 . . . . . . . . . h n−1 2h n−1            118 BAB 8. INTERPOLASI Gambar 8.3: Profil suatu object x =       c c 1 .. . c n       b =          3 h a 1 − a − 3f ′ a 3 h 1 a 2 − a 1 − 3 h a 1 − a .. . 3 h n−1 a n − a n−1 − 3 h n−2 a n−1 − a n−2 3f ′ b − 3 h n−1 a n − a n−1          8.2. INTERPOLASI CUBIC SPLINE 119 Gambar 8.4: Sampling titik data Gambar 8.5: Hasil interpolasi cubic spline j x j a j b j c j d j 0,9 1,3 5,4 0,00 -0,25 1 1,3 1,5 0,42 -0,30 0,95 2 1,9 1,85 1,09 1,41 -2,96 3 2,1 2,1 1,29 -0,37 -0,45 4 2,6 2,6 0,59 -1,04 0,45 5 3,0 2,7 -0,02 -0,50 0,17 6 3,9 2,4 -0,5 -0,03 0,08 7 4,4 2,15 -0,48 0,08 1,31 8 4,7 2,05 -0,07 1,27 -1,58 9 5,0 2,1 0,26 -0,16 0,04 10 6,0 2,25 0,08 -0,03 0,00 11 7,0 2,3 0,01 -0,04 -0,02 12 8,0 2,25 -0,14 -0,11 0,02 13 9,2 1,95 -0,34 -0,05 -0,01 14 10,5 1,4 -0,53 -0,1 -0,02 15 11,3 0,9 -0,73 -0,15 1,21 16 11,6 0,7 -0,49 0,94 -0,84 17 12,0 0,6 -0,14 -0,06 0,04 18 12,6 0,5 -0,18 -0,45 19 13,0 0,4 -0,39 -0,54 0,60 20 13,3 0,25 Gambar 8.6: Hasil interpolasi lagrange Bab 9 Diferensial Numerik ✍ Objektif : ⊲ Mengenalkan metode Euler ⊲ Mengenalkan metode Runge Kutta orde 4 ⊲ Mengenalkan metode Finite Difference ⊲ Mengenalkan Persamaan Diferensial Parsial Eliptik ⊲ Mengenalkan Persamaan Diferensial Parsial Hiperbolik ⊲ Mengenalkan Persamaan Diferensial Parsial Parabolik

9.1 Metode Euler

Suatu persamaan diferensial dy dt dinyatakan dalam fungsi f t, y, dimana yt adalah per- samaan asalnya dy dt = f t, y, a ≤ t ≤ b, ya = α 9.1 Nilai t dibatasi dari a hingga ke b. Sementara, syarat awal telah diketahui yaitu pada saat t = a maka y bernilai α. Akan tetapi kita sama sekali tidak tahu bentuk formulasi persamaan asalnya yt. Gambar 9.1 memperlihatkan kurva persamaan asal yt yang tidak diketahui ben- tuk formulasinya. Tantangannya adalah bagaimana kita bisa mendapatkan solusi persamaan diferensial untuk setiap nilai yt yang t-nya terletak diantara a dan b ? Tahap awal solusi pendekatan numerik adalah dengan menentukan point-point dalam jarak yang sama di dalam interval [a,b]. Jarak antar point dirumuskan sebagai h = b − a N 9.2 dengan N adalah bilangan integer positif. Nilai h ini juga dikenal dengan nama step size . Selanjutnya nilai t diantara a dan b ditentukan berdasarkan t i = a + ih, i = 0, 1, 2, ..., N 9.3 121 122 BAB 9. DIFERENSIAL NUMERIK t =a t 1 t 2 ..... h t N = b t yt = b N y yt 1 yt 2 yt = a ya=a y’=ft,y y yt t =a t 1 t 2 ..... h t N = b t a ya=a y’=ft,y y w 1 y’a=fa, a yt Gambar 9.1: Kiri: Kurva yt dengan pasangan titik absis dan ordinat dimana jarak titik absis sebe- sar h. Pasangan t 1 adalah yt 1 , pasangan t 2 adalah yt 2 , begitu seterusnya. Kanan: Garis singgung yang menyinggung kurva yt pada t=a, kemudian berdasarkan garis singgung tersebut, ditentukan pasangan t 1 sebagai w 1 . Perhatikan gambar itu sekali lagi w 1 dan yt 1 beda tipis alias tidak sama persis. Metode Euler diturunkan dari deret Taylor. Misalnya, fungsi yt adalah fungsi yang kon- tinyu dan memiliki turunan dalam interval [a,b]. Dalam deret Taylor, fungsi yt tersebut diru- muskan sebagai yt i+1 = yt i + t i+1 − t i y ′ t i + t i+1 − t i 2 2 y ′′ ξ i 9.4 dengan memasukkan h = t i+1 − t i , maka yt i+1 = yt i + hy ′ t i + h 2 2 y ′′ ξ i 9.5 dan, karena yt memenuhi persamaan diferensial 9.25, dimana y ′ t i tak lain adalah fungsi turunan f t i , yt i , maka yt i+1 = yt i + hf t i , yt i + h 2 2 y ′′ ξ i 9.6 Metode Euler dibangun dengan pendekatan bahwa suku terakhir dari persamaan 9.6, yang memuat turunan kedua, dapat diabaikan. Disamping itu, pada umumnya, notasi penulisan bagi yt i diganti dengan w i . Sehingga metode Euler diformulasikan sebagai w i+1 = w i + hf t i , w i dengan syarat awal w = α 9.7 dimana i = 0, 1, 2, .., N − 1. Contoh Diketahui persamaan diferensial y ′ = y − t 2 + 1 batas interval: 0 ≤ t ≤ 2 syarat awal: y0 = 0, 5 9.8 dimana N = 10. Disini terlihat bahwa batas awal interval, a = 0; dan batas akhir b = 2. 9.1. METODE EULER 123 Dalam penerapan metode euler, pertama kali yang harus dilakukan adalah menghitung step-size h, caranya h = b − a N = 2 − 0 10 = 0, 2 kemudian dilanjutkan dengan menentukan posisi titik-titik t i berdasarkan rumus t i = a + ih = 0 + i0, 2 sehingga t i = 0, 2i serta menetapkan nilai w yang diambil dari syarat awal y0 = 0, 5 w = 0, 5 Dengan demikian persamaan euler dapat dinyatakan sebagai w i+1 = w i + hw i − t 2 i + 1 = w i + 0, 2w i − 0, 04i 2 + 1 = 1, 2w i − 0, 008i 2 + 0, 2 dimana i = 0, 1, 2, ..., N − 1. Karena N = 10, maka i = 0, 1, 2, ..., 9. Pada saat i = 0 dan dari syarat awal diketahui w = 0, 5, kita bisa menghitung w 1 w 1 = 1, 2w − 0, 0080 2 + 0, 2 = 0, 8000000 Pada saat i = 1 w 2 = 1, 2w 1 − 0, 0081 2 + 0, 2 = 1, 1520000 Pada saat i = 2 w 3 = 1, 2w 2 − 0, 0082 2 + 0, 2 = 1, 5504000 Demikian seterusnya, hingga mencapai i = 9 w 10 = 1, 2w 9 − 0, 0089 2 + 0, 2 = 4, 8657845 Berikut ini adalah script matlab untuk menghitung w 1 , w 2 , sampai w 10 1 clear all 2 clc 3 4 format long 5 6 b=2; batas akhir interval 7 a=0; batas awal interval 8 N=10; bilangan interger positif 9 h=b-aN; nilai step-size 10 w0=0.5; nilai w awal 11 t0=0; nilai t awal 12 13 perubahan t sesuai step-size h adalah: 14 t1=a+1h;