interpolasi
-
Upload
gallant-agna -
Category
Documents
-
view
6 -
download
1
description
Transcript of interpolasi
Interpolasi Cubic Spline
Dr. Eng. Supriyanto, M.Sc
Lab. Komputer, Departemen Fisika, Universitas Indonesia
email: [email protected] atau [email protected]
December 13, 2006
Figure 1: Fungsif(x) dengan sejumlah titik data
Diketahui suatu fungsif(x) (Figure 1) yang dibatasi oleh intervala danb, dan memiliki se-
jumlah titik dataa = x0 < x1 < ... < xn = b. Interpolasi cubic splineS(x) adalah sebuah
potongan fungsi polinomial kecil-kecil (Figure 2) berderajat tiga (cubic) yang menghubungkan
dua titik data yang bersebelahan dengan ketentuan sebagai berikut:
1. Sj(x) adalah potongan fungsi yang berada pada sub-interval darixj hinggaxj+1 untuk
nilai j = 0, 1, ..., n − 1;
2. S(xj) = f(xj), artinya pada setiap titik data (xj), nilai f(xj) bersesuaian denganS(xj)
dimanaj = 0, 1, ..., n;
1
Figure 2: Pendekatan dengan polinomial cubic spline
3. Sj+1(xj+1) = Sj(xj+1). Perhatikan titikxj+1 pada Figure 2. Ya.. tentu saja jika fungsi
itu kontinyu, maka titikxj+1 menjadi titik sambungan antaraSj danSj+1.
4. S ′
j+1(xj+1) = S ′
j(xj+1), artinya kontinyuitas menuntut turunan pertama dariSj danSj+1
pada titikxj+1 harus bersesuaian.
5. S ′′
j+1(xj+1) = S ′′
j (xj+1), artinya kontinyuitas menuntut turunan kedua dariSj danSj+1
pada titikxj+1 harus bersesuaian juga.
6. Salah satu syarat batas diantara 2 syarat batasx0 danxn berikut ini mesti terpenuhi:
• S ′′(x0) = S ′′(xn) = 0 ini disebutnatural boundary
• S ′(x0) = f ′(x0) danS ′(xn) = f ′(xn) ini disebutclamped boundary
Polinomial cubic splineS (polinomial pangkat 3) untuk suatu fungsif berdasarkan ketentuan
di atas adalah
Sj(x) = aj + bj(x − xj) + cj(x − xj)2 + dj(x − xj)
3 (1)
dimanaj = 0, 1, ..., n − 1. Maka ketikax = xj
Sj(xj) = aj + bj(xj − xj) + cj(xj − xj)2 + dj(xj − xj)
3
Sj(xj) = aj = f(xj)
Itu artinya,aj selalu jadi pasangan titik data darixj. Dengan pola ini maka pasangan titik data
xj+1 adalahaj+1, konsekuensinyaS(xj+1) = aj+1. Berdasarkan ketentuan (3), yaitu ketika
2
x = xj+1 dimasukan ke persamaan (1)
aj+1 = Sj+1(xj+1) = Sj(xj+1) = aj + bj(xj+1 − xj) + cj(xj+1 − xj)2 + dj(xj+1 − xj)
3
dimanaj = 0, 1, ..., n − 2. Sekarang, kita nyatakanhj = xj+1 − xj, sehingga
aj+1 = aj + bjhj + cjh2
j + djh3
j (2)
Kemudian, turunan pertama dari persamaan (1) adalah
S ′
j(x) = bj + 2cj(x − xj) + 3dj(x − xj)2
ketikax = xj,
S ′
j(xj) = bj + 2cj(xj − xj) + 3dj(xj − xj)2 = bj
dan ketikax = xj+1,
bj+1 = S ′
j(xj+1) = bj + 2cj(xj+1 − xj) + 3dj(xj+1 − xj)2
Ini dapat dinyatakan sebagai
bj+1 = bj + 2cj(xj+1 − xj) + 3dj(xj+1 − xj)2
dan dinyatakan dalamhj
bj+1 = bj + 2cjhj + 3djh2
j (3)
Berikutnya, kita hitung turunan kedua dari persamaan (1)
S ′′
j (x) = 2cj + 6dj(x − xj) (4)
tapi dengan ketentuan tambahan yaituS ′′(x)/2, sehingga persamaan ini dimodifikasi menjadi
S ′′
j (x) = cj + 3dj(x − xj)
dengan cara yang sama, ketikax = xj
S ′′
j (xj) = cj + 3dj(xj − xj) = cj
dan ketikax = xj+1
cj+1 = S ′′
j (xj+1) = cj + 3dj(xj+1 − xj)
cj+1 = cj + 3djhj (5)
3
dandj bisa dinyatakan
dj =1
3hj
(cj+1 − cj)
dari sini, persamaan (2) dapat ditulis kembali
aj+1 = aj + bjhj + cjh2
j + djh3
j
= aj + bjhj + cjh2
j +h2
j
3(cj+1 − cj)
= aj + bjhj +h2
j
3(2cj + cj+1) (6)
sementara persamaan (3) menjadi
bj+1 = bj + 2cjhj + 3djh2
j
= bj + 2cjhj + hj(cj+1 − cj)
= bj + hj(cj + cj+1) (7)
Sampai sini masih bisa diikuti, bukan? Selanjutnya, kita coba mendapatkanbj dari persamaan
(6)
bj =1
hj
(aj+1 − aj) −hj
3(2cj + cj+1) (8)
dan untukbj−1
bj−1 =1
hj−1
(aj − aj−1) −hj−1
3(2cj−1 + cj) (9)
Langkah berikutnya adalah mensubtitusikan persamaan (8) dan persamaan (9) kedalam per-
samaan (7),
hj−1cj−1 + 2(hj−1 + hj)cj + hjcj+1 =3
hj
(aj+1 − aj) −3
hj−1
(aj − aj−1) (10)
dimanaj = 1, 2, ..., n − 1. Dalam sistem persamaan ini, nilai{hj}n−1
j=0 dan nilai{aj}nj=0 sudah
diketahui, sementara nilai{cj}nj=0 belum diketahui dan memang nilai inilah yang akan dihitung
dari persamaan ini.
Sekarang coba perhatikan ketentuan nomor (6), ketikaS ′′(x0) = S ′′(xn) = 0, berapakah nilai
c0 dancn? Nah, kita bisa evaluasi persamaan (4)
S ′′(x0) = 2c0 + 6d0(x0 − x0) = 0
jelas sekalic0 harus berharga nol. Demikian halnya dengancn harganya harus nol. Jadi untuk
natural boundary, nilai c0 = cn = 0.
4
Persamaan (10) dapat dihitung dengan operasi matrikAx = b dimana
A =
1 0 0 . . . . . . . . . 0
h0 2(h0 + h1) h1 0 . . . . . . 0
0 h1 2(h1 + h2) h2 0 . . . 0
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . hn−2 2(hn−2 + hn−1) hn−1
0 . . . . . . . . . 0 0 1
x =
c0
c1
...
cn
b =
03
h1
(a2 − a1) −3
h0
(a1 − a0)...
3
hn−1
(an − an−1) −3
hn−2
(an−1 − an−2)
0
Sekarang kita beralih keclamped boundarydimanaS ′(a) = f ′(a) danS ′(b) = f ′(b). Nah, kita
bisa evaluasi persamaan (8) denganj = 0, dimanaf ′(a) = S ′(a) = S ′(x0) = b0, sehingga
f ′(a) =1
h0
(a1 − a0) −h0
3(2c0 + c1)
konsekuensinya,
2h0c0 + h0c1 =3
h0
(a1 − a0) − 3f ′(a) (11)
Sementara padaxn = bn dengan persamaan (7)
f ′(b) = bn = bn−1 + hn−1(cn−1 + cn)
sedangkanbn−1 bisa didapat dari persamaan (9) denganj = n − 1
bn−1 =1
hn−1
(an − an−1) −hn−1
3(2cn−1j + cn)
Jadi
f ′(b) =1
hn−1
(an − an−1) −hn−1
3(2cn−1j + cn) + hn−1(cn−1 + cn)
=1
hn−1
(an − an−1 +hn−1
3(cn−1j + 2cn)
5
dan akhirnya kita peroleh
hn−1cn−1 + 2hn−1Cn = 3f ′(b) −3
hn−1
(an − an−1) (12)
Persamaan (11) dan persamaan (12) ditambah persamaan (10 membentuk operasi matrikAx =
b dimana
A =
2h0 h0 0 . . . . . . . . . 0
h0 2(h0 + h1) h1 0 . . . . . . 0
0 h1 2(h1 + h2) h2 0 . . . 0
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . hn−2 2(hn−2 + hn−1) hn−1
0 . . . . . . . . . 0 hn−1 2hn−1
x =
c0
c1
...
cn
b =
3
h0
(a1 − a0) − 3f ′(a)3
h1
(a2 − a1) −3
h0
(a1 − a0)...
3
hn−1
(an − an−1) −3
hn−2
(an−1 − an−2)
3f ′(b) − 3
hn−1
(an − an−1)
6
Figure 3: Profil suatu object
Figure 4: Sampling titik data
7
Figure 5: Hasil interpolasi cubic spline
8
Figure 6: Hasil interpolasi lagrange
9
j xj aj bj cj dj
0 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 -0,45
19 13,0 0,4 -0,39 -0,54 0,60
20 13,3 0,25
10