R. S. Lasijo
Fitting Kurva
Dengan Menggunakan Spline
Kubik
Intisari
Metode interpolasi spline kubik adalah salah satu cara untuk fitting kurva pada data eksperimental yang bentuk dari fungsinya maupun turunannya tidak diketahui. Metode ini menggunakan polinomial pangkat tiga yang diasumsikan berlaku pada titik-titik yang terletak di antara dua titik data yang diketahui. Fungsi yang bersangkutan kemudian diaplikasikan pada semua titik-titik data yang ada, sehingga didapatkan persamaan simultan, yang selanjutnya dapat diselesaikan dengan menggunakan metode matriks. Metode ini dapat pula dipergunakan untuk menentukan turunan dari fungsinya pada titik-titik yang terletak di dalam daerah yang diinterpolasi.
Kata kunci :
fitting kurva, spline kubik, persamaan simultan, matriks.
Abstract
Cubic spline interpolation method is one of the curve fitting methods used for experimental data whose shape of the function and its derivatives are not known. This method is using third power polynomial as the assumed function, which can be applied to points located between two given points. If the function is applied to all available experimental data, simultaneous equation will be obtained, which subsequently can be solved using matrix method. This method can also be used to determine the derivatives of the function for points located inside the interpolated area.
Keywords :
I. Pendahuluan
Fitting data pada umumnya dapat dilakukan dengan metode kuadrat terkecil (least squares fitting method). Metode ini pada umumnya dapat dilakukan dengan mudah bila bentuk dari fungsi kurvanya diketahui dan sederhana, tetapi bilamana bentuk dari fungsi kurvanya sendiri belum diketahui, maka metode pendekatan atau aproksimasi dapat dilakukan dengan berbagai cara, misalnya dengan menguraikan fungsinya dalam deret, misalnya deret Taylor bilamana fungsi dan turunannya pada titik-titik
tertentu diketahui, atau menggunakan interpolasi Lagrange, bilamana hanya fungsinya saja yang diketahui pada beberapa titik. Metode lain adalah menguraikan fungsinya dalam fungsi-fungsi yang sifatnya telah diketahui, misalnya fungsi Bessel atau polinomial Hermit, dan sebagainya [1].
Metode-metode tersebut di atas pada umumnya dapat berhasil dengan baik, tetapi ada kalanya dapat pula mengalami kegagalan, terutama untuk kedua titik data yang berada di ujung data, sangat sukar untuk menentukan turunannya. Dalam tulisan ini akan dibahas penggunaan interpolasi polinomial yang dikenal dengan nama spline kubik yang sangat berguna untuk fitting data-data yang bentuk fungsinya maupun turunannya tidak diketahui.
II. Teori
Spline kubik adalah metode aproksimasi dengan melakukan interpolasi pada titik-titik x yang terletak antara dua titik xj dan xj+1
dengan mengasumsikan fungsinya berbentuk polinomial pangkat tiga
j j j p (x) = a + b ( x - x ) + 2 3 j j j j c ( x - x ) + d ( x - x ) untuk xj ≤x ≤x j+1 ( 1 ) dengan aj, bj, cj , dan dj konstanta,
dengan syarat bahwa pada x = x j
harus dipenuhi bahwa
p (x ) j ≡ p = f (j x ) =j a ( 2 ) j
dan pada x = x j+1 harus pula dipenuhi bahwa p (x j+1 ) ≡ p j+1 = p + j b j h + j c j hj 2 + d j hj3 ( 3 ) , di mana h = j x j+1 - x . (3.a) j Turunan pertama dari fungsi
persamaan ( 1 ) adalah
( )
xp' = b + 2 j c )j (x -xj +
3dj(x -xj )2 ( 4 ), dan turunan keduanya
p"(x ) = 2 c + 6 j d )j (x -xj .
( 5 )
Untuk x = x , turunan keduanya j
berharga
p" (x ) j ≡p"j = 2 c ( 6 ), j
sehingga didapat
c = p"j j /2 ( 6.a)
Dari persamaan ( 5 ) dan ( 6a ) juga
p"j+1 = 2 c + 6 j d (j x j+1 - x ) j = p"j + 6 d j h j ( 7 ) atau d = j j j 1 j h 6 p" -p" + ( 7.a) , sehingga dari persamaan ( 3 ) didapat
b = j 6 p" h 2 p" h -h p -p j j 1 j j j j 1 j+ + + . ( 8 )
Dengan harga-harga konstanta seperti didapat dalam persamaan-persamaan ( 2 ), ( 6a ), (7a ) dan (8 ), persamaan ( 1 ) dapa t ditulis
p(x)=p + j + + 3 p" h -6 p" h -h p -p j j 1 j j j j 1 j . (x -xj ) + 2 1 p"j (x -xj ) 2 + j j 1 j h 6 p" -p" + ) x -x ( j 3 untuk xj ≤x ≤x j+1 ( 9 )
Dari persamaan ( 4 ) dan ( 9 ) didapat p' ( x ) = j 1 j j j 1 j p - p h p" - - h 6 + + h p"j j 3 +p"j(x -xj )+ j j 1 j h 2 p" -p" + ) x -x ( j 2 untuk xj ≤x ≤x j+1 (10 )
Pada persamaan ( 10 ) bila indeks j+1 diganti dengan j dan indeks j diganti dengan j-1, jadi berarti membuat hubungan antara titik j dan
titik j-1 yang berada didepannya, didapat p'(x)= 3 p" h -6 p" h -h p -p j-1 j j-1 j-1 1 j 1 j j +p" j-1(x -x j-1) + 1 j 1 j j h 2 p" -p" ) x -x ( j-1 2 untuk xj−1 ≤x ≤xj ( 11 )
Pada persamaan ( 10 ) dan ( 11 ) harus menghasilkan harga yang sama untuk p'(x ), sehingga harus j dipenuhi 3 p" h -6 p" h -h p -p j j 1 j j j j 1 j+ + = 3 p" h -6 p" h -h p -p j-1 j j-1 j-1 1 j 1 j j + p" j-1 h j-1+ 2 j-1 1 j 1 j j h h 2 p" -p" atau 1 j j j 1 j j 1 j 1 j p" (2h 2h )p" h p" h + + + + = 6 [ 1 j 1 j j j j 1 j h p -p -h p -p + ] dengan j = 2, ... , n-1. ( 12 ) Persamaan ( 12 ) memberikan sebanyak (n-2) persamaan dari n buah variabel yang harus dicari, jadi perlu 2 persamaan lagi supaya solusi unik dapat diperoleh. Kedua persamaan yang diperlukan ini dapat diperoleh dari kedua titik yang berada diujung data, yaitu titik x = x1
dan titik x = xn. Dari persamaan (10 )
3 p" h -6 p" h -h p -p p' 1 2 1 1 1 1 2 1= atau 2 1 1 1 p" h p" h 2 + = 6 ( 1 1 1 2 p" -h p -p ) (13 ) dan dari persamaan ( 11 ) untuk x = xn didapat p'n = n n - 1 n - 1 n n - 1 p - p h p" - - h 6 n - 1 n - 1 n - 1 n - 1 h p p" h 3 + + n n - 1 2 n - 1 n - 1 p" - p" h 2 h atau p" h 2 p" hn−1 n-1 + n-1 n = 6 ( n 1 1 -n n p' -p -p − n h ). (14 ) Persamaan ( 13 ) dan (14) dapat ditulis dalam bentuk matriks, yaitu
+ + + 1 -n 1 -n 1 -n 1 -n 2 -n 2 -n 3 3 2 2 2 2 1 1 1 1 h 2 h h ) h h ( 2 h ... h ) h h ( 2 h h ) h h ( 2 h h h 2 − n 1 3 2 1 p" " p ... p" p" p" n = − ) p' -h p -p ( 6 -) h p -p -h p -p ( 6 ... ) h p -p -h p -p ( 6 h p p -h p -p ( 6 ) p' -h p -p ( 6 n 1 -n 1 -n n 2 -n 2 -n 1 -n 1 -n 1 -n n 2 2 3 3 3 4 1 1 2 2 2 3 1 1 1 2 (15 )
Pada persamaan ( 15 ), sebelah kiri tanda sama dengan, matriks pertama merupakan matriks tridiagonal, sedangkan matriks kedua merupakan
matriks kolom atau suatu vektor n-dimensi, demikian pula sebelah kanan tanda sama dengan merupakan matriks kolom atau suatu vektor n-dimensi. Turunan pertama pada titik-titik ujung
data, yaitu p' dan 1 p' , tidak selalu n
dapat diperoleh. Pada umumnya dipergunakan bentuk spline alami, yaitu mengasumsikan bahwa turunan
pertama tersebut sama dengan nol, yaitu p' = 1 p' = 0, sehingga persamaan n
( 15 ) dapat ditulis menjadi
+ + + 1 ) h h ( 2 h ... ... ) h h ( 2 h h ) h h ( 2 1 1 -n 2 -n 2 -n 3 2 2 2 2 1 n 1 -n 3 2 1 p" p" ... p" p" p" = 0 ) h p -p -h p -p ( 6 ... ) h p -p -h p -p ( 6 ) h p -p -h p -p ( 6 0 2 -n 2 -n 1 -n 1 -n 1 -n n 2 2 3 3 3 4 1 1 2 2 2 3 ( 16)
Bilamana matriks pertama sebelah kiri tanda sama dengan pada persamaan (16) disebut matriks H, matriks yang kedua disebut P" dan matriks di sebelah kanan tanda sama dengan disebut matriks P, maka persamaan ( 16 ) dapat ditulis
HP"=P. ( 16a ) Pada persamaan ini matriks H dan P telah diketahui, sehingga yang harus dicari adalah matriks P". Persamaan ( 16 ) atau ( 16a ) dapat diselesaikan misalnya dengan menguraikan matriks H menjadi perkalian dua matriks
segitiga bawah L dan matriks segitiga atas U, yaitu [2]
H=L·U. ( 17 ) Karena H merupakan matriks tridiagonal, maka matriks L akan merupakan matriks dengan elemen-elemen yang tidak sama dengan nol hanya pada diagonal utamanya dan satu diagonal di bawah diagonal utama , sedangkan matriks U akan merupakan matriks dengan elemen-elemen yang tidak sama dengan nol hanya pada diagonal utama dan satu diagonal di atas diagonal utama. Maka persamaan (16) atau (16a) sekarang berbentuk
L·U·P"=P. ( 18 ) Bila dimisalkan U·P" = Y, maka persamaan ( 18 ) menjadi
L·Y=P. ( 20 )
Karena L berupa matriks segitiga bawah, maka Y dapat diperoleh dengan metode eliminasi Gauss atau eliminasi Gauss maju. Selanjutnya dari hubungan
U·P"=Y, ( 21 ) karena U merupakah matriks segitiga atas, maka P" dapat diperoleh dengan metode eliminasi Gauss mundur. Setelah P" diperoleh, maka fungsi yang dicari yaitu p(x) dapat dihitung dengan menggunakan persamaan ( 9 ). III. CONTOH TERAPAN DAN DISKUSI
Dalam contoh terapan ini penghitungan dilakukan dengan menggunakan bahasa FORTRAN-77 pada PC dengan prosesor Pentium. Sebagai contoh terapan pertama diambil suatu kurva yang telah dikenal, yang berbentuk sinus, yaitu data yang mempunyai absis dan ordinat sebagai berikut :
Absis (derajat) 0 45 90 135 180 225 270 315 360 Ordinat 0 0.7071 1 0.7071 0 -0.7071 1 -0.7071 0
Bila data tersebut kita masukkan sebagai input dengan menggunakan metode spline kubik alami, yaitu dengan menganggap turunan pertama fungsi pada titik data pertama dan terakhir sama dengan nol, maka akan diperoleh hasil penghitungan yang menurun ke harga yang negatif sedikit setelah titik data yang pertama. Tetapi bilamana turunan pertama dari titik
data yang pertama dan terakhir diberi harga 1, sesuai dengan harga cosinus(0o) dan cosinus (360o), maka akan didapat kurva yang secara kualitatif sesuai dengan bentuk sinus, sekalipun secara kuanntitatif untuk titik-titik diluar titik-titik data yang diberikan sedikit menyimpang dari yang seharusnya. Hasil plot ditunjukkan pada Gambar 1.
Sebagai contoh kedua diberikan data sebarang sebagai berikut :
Absis (derajat) 1 2 3 4 5 6 7 8 9 10
Ordinat 2 4 6 8 10 12 10 9 4 1
Dengan menggunakan spline kubik alami didapatkan plot seperti terlihat pada Gambar 2. Dari plot dapat dilihat bahwa fungsi yang didapat dari metode spline kubik ini pada titik-titik data yang diberikan fungsinya tidak kontinu, artinya turunan pertamanya dari kiri tidak sama dengan turunannya dari kanan titik yang bersanggkutan, contohnya seperti terlihat pada titik data yang ke-enam di mana turunan pertamanya dari sebelah kiri titik tersebut tidak berimpit dengan turunan pertamanya dari sebelah kanan.
Bagaimanapun juga metode ini sangat berguna untuk fitting banyak data yang fungsi maupun turunannya tidak diketahui. Makin banyak titik-titik data yang diberikan, maka makin baik mutu dari plotnya.
IV. KESIMPULAN DAN SARAN Spline kubik merupakan salah satu metode yang cukup baik untuk fitting data eksperimental yang bentuk fungsi maupun turunannya tidak diketahui. Makin banyak titik data yang dapat diberikan, maka metode ini akan makin memberikan hasil yang lebih baik, asal saja data yang diberikan merupakan hasil eksperimental yang baik, yaitu pengumpulan data serta reduksinya dilakukan dengan kontrol kualitas yang cukup baik. Metode ini sebaiknya dipergunakan bilamana bentuk serta turunan dari fungsi datanya tidak diketahui.
- 1 .5 - 1 - 0 .5 0 0 .5 1 1 .5 0 1 0 2 0 3 0 4 0 5 0
G
am
bar1Plotberbentuksinusterhadapsudutteta(radian)K
otak
segiem
dkk idlhhil hi
pathorisontalm
enunjukkantitiktitikdatayangdiberikan
Referensi
1. De VRIES, P.L., " A First Course in Computational Physics", John Wiley & Sons, Inc., 1994.
2. JENNINGS, Alan, "Matrix Computation for Engineers and
Scientists", John Wiley & Sons, Ltd., Reprinted, 1978.
Penulis
Dr. R. S. Lasijo adalah staf peneliti pada Puslitbang Teknik Nuklir, Badan Tenaga Nuklir Nasional (BATAN) Bandung. 0 5 1 0 1 5 0 1 0 2 0 3 0 4 0 5 0 G a m b a r 2 . P lo t d a ta s e b a r a n g . S e g ie m p a t h o r is o n ta l a d a la h titi k -titik d a ta y a n g d i b e r i k a n , s e d a n g k a n k u r va g a r is a d a la h h a s i l p e n g h i tu n g a n d e n g a n m e to d e s p lin e k u b i k a la m i .