Anda di halaman 1dari 6

Metoda Spline Kubik.

Metoda ini adalah metoda aproksimasi polynomial sepotong-sepotong (piecewise polynomial


approximatioan) yang paling umum digunakan adalah metoda kubik spiline. Pada metoda ini, setiap
sepasang titik dihubungkan oleh suatu persamaan kubik, dimulai titik pertama dan kedua, t
1
dan t
2
,
titik kedua dan titik ketiga, t
2
dan t
3
, begitu seterusnya hingga pasangan titik terakhir, yaitu titik-titik
t
n
dan t
n+1
. Untuk lebih rinci mengenai metoda ini dan kondisi-kondisi yang harus dipenuhi, dituang
dalam definisi berikut ini.

Definisi. Diberikan suatu fungsi f(t) yang didefinisikan pada interval [a, b] dan sejumlah n titik yang
disebut simpul, sehingga a = t
1
< t
2
< t
3
< . . . t
n+1
= b, jarak dari dua titik yang berdekatan dinyatakan
oleh
h
i
= t
i+1
- t
i
, untuk i = 1, 2, , n (17)

dan kurva persamaan kubik yang menghubungkan dua titik t
i+1
dan t
i
adalah g
i
(t) dan fungsi ini
direpresentasikan sebagai

g
i
(t) = p
i
+ q
i
(t - t
i
) + r
i
(t - t
i
)
2
+ s
i
(t - t
i
)
3
, untuk i = 1, 2, , n (18)

dengan kondisi-kondisi sebagai berikut:
(1) g(t
i
) = f(t
i
) untuk setiap i = 1, 2, , n + 1
(2) g
i+1
(t
i+1
) = g
i
(t
i+1
) untuk setiap i = 1, 2, , n - 1
(3) ( ) ( )
1
,
1
,
1 + + +
=
i i i i
t g t g untuk setiap i = 1, 2, , n - 1
(4) ( ) ( )
1
,,
1
,,
1 + + +
=
i i i i
t g t g untuk setiap i = 1, 2, , n - 1
(5) Salah satu dari kondisi batas berikut dipenuhi, yaitu
untuk batas yang bebas : ( ) ( ) 0
,,
0
,,
= =
n
t g t g (19)
dan
untuk batas yang diklem: ( ) ( ) ( ) ( )
n n
t f t g t f t g
, ,
0
,
0
,
dan = = (20)

Kondisi ini diperlihatkan ini ditunjukkan oleh Gambar


y
S
i
(t)


f(t
i
)
f(t
i+1
)

f(t
i-1
)


t
t
1
t
2
t
3
t
i-1
t
i
t
i+1
t
n
t
n+1

Gambar

Bila kondisi bebas yang diputuskan untuk digunakan, maka kita telah menggunakan metoda spline
kubik alamiah (natural qubic spline). Tetapi bila batas yang diklem yang kita ambil, maka kita telah
menggunakan metoda spline kubik yang diklem (clamped spline qubic).
Pada umumnya, kondisi batas yang diklem (clamped boundary condition) akan menuntun kepada
keakurasian yang baik, karena metoda ini mengikutkan lebih banyak informasi dari fungsi. Untuk
jenis agar kondisi batasnya berlaku adalah perlu untuk mempunyai informasi turunan pada titik-titik
di ujung awal dan akhir atau hampiran yang akurat dari nilai-nilai ini.
Jelas juga terlihat dari kondisi-kondisi yang diberikan dan persamaan (18) kita dapat menuliskan

g
i
(t
i
) = p
i
= f(t
i
) (21)

Jika kondisi (2) diterapkan dan dengan melibatkan persamaan (18), kita akan mendapatkan

p
i+1
= g
i+1
(t
i+1
) = g
i
(t
i+1
)
= p
i
+ q
i
(t
i+1
- t
i
) + r
i
(t
i+1
- t
i
)
2
+ s
i
(t
i+1
- t
i
)
3
(22)

yang berlaku untuk setiap i = 1, 2, , n 2.
Jadi dengan memasukkan persamaan (17) ke dalam persamaan (22) kita akan memperolah:

p
i+1
= p
i
+ q
i
h
i
+ r
i
(h
i
)
2
+ s
i
(h
i
)
3
(23)

berlaku untuk setiap i = 1, 2, , n 1.
Dengan cara yang sama, kita mendefinisikan

( ) ( ) ( )
3 ,
3 2
i i i i i i
x x s x x r q t g + + = (24)

Ini mengimplikasikan bahwa ( )
i i i
q t g =
,
untuk setiap i = 2, 3, , n 2. Sekarang, dengan menerapkan
kondisi (3), kita akan memperoleh


2
1
3 2
i i i i i i
h s h r q q + + =
+
(25)

Ini berlaku untuk setiap i = 1, 2, , n 1.
Hubungan lain yang dapat di kembangkan adalah hubungan antara koefisien-koefisien dari g
i
() yang
diperoleh dari mendefinisikan ( ) . 2 /
,,
n i n
t g r = Dan dengan menerapkan kondisi (4), akan kita peroleh:


i i i i
h s r r 3
1
+ =
+
(26)

yang berlaku untuk setiap i = 1, 2, , n 1.
Dengan menyelesaikan persamaan (26) untuk s
i
dan memasukkan nilai ini ke dalam persamaan-
persamaan (23) dan (25) akan memberikan suatu persamaan baru, yaitu:

( )
1
2
1
2
3
+ +
+ + + =
i i
i
i i i i
r r
h
h q p p (27)
Dan
( )
1 1 + +
+ + =
i i i i i
r r h q q (28)

Untuk persamaan-persamaan (27) dan (28) berlaku untuk setiap i = 1, 2, , n 1.
Hubungan lain yang dapat kita peroleh juga adalah hubungan yang melibatkan koefisien-koefisien
yang diperoleh dengan menyelesaikan persamaan yang sesuai dalam bentuk persamaan (27), pertama
untuk q
i
,
| | | |
1 1
2
3
1
+ +
+ =
i i
i
i i
i
i
r r
h
p p
h
q (29)

Sekarang, dengan mengurangi indeks dari setiap suku dalam persamaan (29) kita akan memperoleh

| | | |
i i
i
i i
i
i
r r
h
p p
h
q + =

1
1
1
1
1
2
3
1
(30)

Dengan mensubtitusikan nilai-nilai ini ke dalam persamaan (28), kita akan memperoleh persamaan
berikut ini yang menjadi inti dari metoda ini, yaitu

( ) | | | |
1
1
1 1 1 1 1
3 3
2

+ +
= + + +
i i
i
i i
i
i i i i i i i
r r
h
p p
h
r h r h h r h (31)

Persamaan (31) ini berlaku untuk i = 1, 2, , n 1. Sekarang, kalau kita memasukkan semua indeks
yang berlaku untuk persamaan ini, maka kita akan mendapatkan suatu sistem persamaan linear yang
mengikuti

Tx = d (32)

Dengan A, adalah matriks


( )
( )
( )
(
(
(
(
(
(
(
(
(

+
+
+
=

1 0 0 0
2
0
2 0
0 0 2
0 0 0 1
1 1
3 3 2 2
2 2 1 1
n n n n
h h h h
h h h h
h h h h
T (33)

dan vektor solusi adalah


x = [r
1
r
2
r
n+1
]
T
(34)


Sedangkan vektor d dihitung dari persamaan berikut ini.


( ) ( )
( ) ( )
( ) ( )
( ) ( )
(
(
(
(
(
(
(
(
(
(
(
(
(
(

0
3 3
3 3
.
.
3 3
3 3
0
1
1
1
2 1
2
1
1
2 3
2
3 4
3
1 2
1
2 3
2
n n
n
n n
n
n n
n
n n
n
p p
h
p p
h
p p
h
p p
h
p p
h
p p
h
p p
h
p p
h
d (35)


Dengan menggunakan algoritma Thomas yang sudah dibahas dalam Bab 3, kita dapat menhitung
vektor jawaban, yaitu persamaan (34) berdasarkan persamaan-persamaan (33) dan (35).
Perlu kita catat di sini bahwa nilai h
i
untuk i = 1, 2, , n, dihitung dengan menggunakan persamaan
(17). Sedangkan p
i
untuk i = 1, 2, , n + 1 dihitung dari persamaan (21) dan nilai-nilai q
i
untuk
semua i = 1, 2, , n dengan menggunakan persamaan (29). Nilai-nilai s
k
untuk i = 1, 2, , n,
dihitung berdasarkan persamaan (26) yang telah disusun kembali menjadi


i
i i
i
h
r r
s
3
1

=
+
(36)

Dari pembahasan yang kita lakukan di atas kita dapat menyusun algoritama yang terdiri dari lima
bagian utama. Pertama, menghitung h
i
dengan menggunakan persamaan (17) dan p
i
dengan
menggunakan persamaan (21). Kedua, menghitung elemen-elemen dari matriks tridiagonal; ketiga,
menghitung vektor d, keempat menyelesaikan sistem persamaan linear dengan algoritma Thomas
untuk menghitung vektor x = [r
1
r
2
r
n+1
]
T
. Kelima, menghitung q
i
dengan persamaan (29) dan s
i

dengan persamaan (36).

Algoritma 7. Spline Kubik

Step 1. Set i = 1
Step 2. Hitung h
i
= t
i+1
- t
i

Hitung p
i
= f(t
i
)
Output(h
i
, p
i
)
Step 3. Apakah i = N?
Jika tidak, naikkan counter i satu point, yaitu i = i + 1 dan kembali ke Step 2.
Jika ya, Set a
1
= 1; a
n+1
= 1; b
1
= 0; b
n+1
= 0; c
1
= 0; c
n
= 0; Set i =2 lanjutkan ke Step 4.
Step 4. Hitung a
i
= 2(h
i
h
i-1
); b
i
= h
i-1
; c
i
= h
i
;
Step 5. Apakah i = n?
Jika tidak, naikkan counter i satu point, yaitu i = i + 1 dan kembali ke Step 4.
Jika ya, Set d
1
= 0 dan d
n+1
= 0; Set i = 2, Lanjutkan ke Step 6.
Step 6. Hitung ( ) ( )
1
1
1
3 3

+
=
i i
i
i i
i
i
p p
h
p p
h
d
Step 7. Apakah i = n?
Jika tidak, naikkan counter i satu point, yaitu i = i + 1 dan kembali ke Step 6.
Jika ya, lanjutkan ke Step 8.
Step 8. Panggil algoritma Thomas untuk menghitung vektor x masukkan harga ini ke dalam vektor
[r
1
r
2
r
n+1
]
T
= x. Set i = 1 dan lanjut ke Step 9.
Step 9. Hitung | | | |
1 1
2
3
1
+ +
+ =
i i
i
i i
i
i
r r
h
p p
h
q ; Hitung
i
i i
i
h
r r
s
3
1

=
+

OUTPUT(p
i
, q
i
, r
i
, s
i
)
Step 10. Apakah i = n?
Jika tidak, naikkan counter i satu point, yaitu i = i + 1 dan kembali ke Step 9.
Jika ya, Proses komputasi selesai. STOP

Berdasarkan Algoritma ini kita bisa menyusun file script yang diberi nama kubikspline.m dengan
listing program script Matlab seperti yang ditunjukkan berikut ini.

Clamped Cubic Spline. Jenis spline ini adalah problema spline dengan kondisi batas g(t
1
) dan
g(t
n+1
) = 0 dan dapat diperoleh dari teorema berikut ini.

Teorema. Jika suatu fungsi f yang didefinisikan pada [a, b] mempunyai interpolan spline yang
memenuhi syarat konidisi batas yang terklem (clamped boundary conditions), yaitu g(a) = f(a) dan
g(b) = f(b).
Bukti. Dapat dilihat dengan menggunakan fakta bahwa dari persamaan (20) dengan i = 1
mengimplikasikan bahwa
( ) ( )
2 1
1
1
1 2
2
3
' r r
h
h
p p
a f +

= (37)
Dan ini mengisyaratkan bahwa
( ) ( ) a f p p
h
r h r h ' 3
3
2
1 2
1
2 1 1 1
= + (38)
Dengan cara yang sama

( ) ( )
1 1
'
+ +
+ + = =
n n n n n
r r h q q b f (39)

Dengan demikian, persamaan (29) dengan indeks i = n memberikan implikasi


( ) ( ) ( )
( )
1
1
1 1
1
2
3
2
3
'
+
+
+ +
+
+

=
+ + +

=
n n
n
n
n n
n n n n n
n
n
n n
r r
h
h
p p
r r h r r
h
h
p p
b f
(40)

Dan

( ) ( )
n n
n
n n n n
p p
h
b f r h r h = +
+ + 1 1
3
' 3 2 (41)
Kemudian, persamaan (30) bersama-sama dengan persamaan-persamaan

( ) ( ) a f p p
h
r h r h ' 3
3
2
1 2
1
2 1 1 1
= + (42)

dan persamaan (41) akan memberikan sistem linear seperti yang dinyatakan oleh persamaan (32),
yaitu Tx = d, dengan


( )
( )
( )
(
(
(
(
(
(
(
(
(

+
+
+
=

n n
n n n n
h h
h h h h
h h h h
h h h h
h h
2 0 0
2
0
2 0
0 0 2
0 0 2
1 1
3 3 2 2
2 2 1 1
1 1
T (43)

dan vektor solusi seperti yang dinyatakan oleh persamaan (34), yaitu x = [r
1
r
2
r
n+1
]
T
.
Sedangkan vektor d dihitung dari persamaan berikut ini.


( ) ( )
( ) ( )
( ) ( )
( ) ( )
( ) ( )
( ) ( )
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(







=
+

n n
n
n n
n
n n
n
n n
n
n n
n
p p
h
b f
p p
h
p p
h
p p
h
p p
h
p p
h
p p
h
p p
h
p p
h
a f p p
h
1
1
1
1
2 1
2
1
1
2 3
2
3 4
3
1 2
1
2 3
2
1 2
1
3
' 3
3 3
3 3
.
.
3 3
3 3
' 3
3
d (44)

Dari pembahasan yang kita lakukan di atas kita dapat menyusun algoritama yang terdiri dari lima
bagian utama. Pertama, menghitung h
i
dengan menggunakan persamaan (17) dan p
i
dengan
menggunakan persamaan (21). Kedua, menghitung elemen-elemen dari matriks tridiagonal; ketiga,
menghitung vektor d, keempat menyelesaikan sistem persamaan linear dengan algoritma Thomas
untuk menghitung vektor x = [r
1
r
2
r
n+1
]
T
. Kelima, menghitung q
i
dengan persamaan (29) dan s
i

dengan persamaan (36).

Algoritma 8. Spline Kubik yang ujung-ujungnya diklem (clamped cubic spline)

Step 1. Set i = 1
Step 2. Hitung h
i
= t
i+1
- t
i

Hitung p
i
= f(t
i
)
Output(h
i
, p
i
)
Step 3. Apakah i = N?
Jika tidak, naikkan counter i satu point, yaitu i = i + 1 dan kembali ke Step 2.
Jika ya, Set a
1
= h
1
; a
n+1
= h
n
; b
1
= h
1
; b
n+1
= h
n
; c
1
= h
1
; c
n
= h
n
; Set i =2 lanjutkan ke Step 4.
Step 4. Hitung a
i
= 2(h
i
h
i-1
); b
i
= h
i-1
; c
i
= h
i
;
Step 5. Apakah i = n?
Jika tidak, naikkan counter i satu point, yaitu i = i + 1 dan kembali ke Step 4.
Jika ya, Set ( ) ( ) a f p p
h
d ' 3
3
1 2
1
1
= dan ( ) ( )
n n
n
n
p p
h
a f d =
+ + 1 1
3
' 3 ; Set i = 2,lanjut ke
Step 6.
Step 6. Hitung ( ) ( )
1
1
1
3 3

+
=
i i
i
i i
i
i
p p
h
p p
h
d
Step 7. Apakah i = n?
Jika tidak, naikkan counter i satu point, yaitu i = i + 1 dan kembali ke Step 6.
Jika ya, lanjutkan ke Step 8.
Step 8. Panggil algoritma untuk menghitung vektor x = [r
1
r
2
r
n+1
]
T
. Set i = 1 lanjut ke Step 9.
Step 9. Hitung | | | |
1 1
2
3
1
+ +
+ =
i i
i
i i
i
i
r r
h
p p
h
q ; Hitung
i
i i
i
h
r r
s
3
1

=
+

OUTPUT(p
i
, q
i
, r
i
, s
i
)
Step 10. Apakah i = n?
Jika tidak, naikkan counter i satu point, yaitu i = i + 1 dan kembali ke Step 9.
Jika ya, Proses komputasi selesai. STOP

Berdasarkan Algoritma ini kita bisa menyusun file script yang diberi nama clampedcubicspline.m
dengan listing program script MATLAB seperti yang ditunjukkan berikut ini.

Anda mungkin juga menyukai