Anda di halaman 1dari 10

Makalah Interpolasi Spline

KKTI4543 - Komputasi Numerik

Disusun Oleh:
Kelompok 1
Andre Febrianto S 141524001
Anggi Nur Dhamayanti 141524002
Eki Fauzi Firdaus 141524003
Eva Danti Rahmanita 141524004

Kelas 3A – D4 Teknik Informatika

PROGRAM STUDI D-IV TEKNIK INFORMATIKA


JURUSAN TEKNIK KOMPUTER DAN INFORMATIKA
POLITEKNIK NEGERI BANDUNG
2016
Interpolasi Spline
Hubungan sederhana yang dapat dibangun oleh 2 titik adalah hubungan spline linier orde 1 .
spline adalah potongan-potongan fungsi polinomial dengan turunan-turunan memenuhi kendala-
kendala kekontinuan tertentu. Misalkan diketahui terdapat titik-titik (x ¿ ¿ 0 , y 0) ,( x ¿ ¿ 1 , y 1 )¿ ¿,....,
(x ¿ ¿ n−1 , y n−1),( x ¿ ¿ n , y n) ¿ ¿pada grafik, interpolasi digunakan untuk mencari nilai Y pada saat
bernilai X, namun X tidak diketahui.

Interpolasi Spline Linear


Interpolasi spline linear adalah interpolasi dua buah titik dengan garis lurus. Misalnya diberikan
dua buat titik (x ¿ ¿ 0 , y 0), dan(x ¿ ¿ 1 , y 1 )¿ ¿ . Maka persamaan yang terbentuk adalah S ⅈ ( x ) = A ⅈx
+B ⅈ . Gambar di bawah ini menunjukkan contoh interpolasi spline linear.

Penjelasan Rumus
Koefisien A dan B dicari dengan proses eliminasi dan substitusi. Titik
(x ¿ ¿ 0 , y 0) , dan( x ¿ ¿ 1 , y 1 )¿ ¿ disubstitusikan ke persamaan S ⅈ ( x ) = A ⅈx +B ⅈ untuk x ϵ { x ⅈ , x ⅈ+1}
ⅈ = 1,2, …, n-1, sehingga diperoleh dua persamaan yaitu:

y 0=Bi+ A i x 0 y 1=Bi+ A i x 1

Persamaan ini kemudian dieliminasi sehingga memberikan nilai


y 1− y 0
Bi= dan
x 1−x 0
x 1 y 0 −x 0 y 1
Ai= Jika disubstitusikan, maka akan didapatkan persamaan seperti beriku:
x1 −x 0
x−x i +1 x−x i +1 y i +1− y
S ⅈ ( x ) = y1 + y ⅈ +1 = y1 (x-xi ) , xϵ [ xi , x i+1 ]
xi−x i +1 xi−x i +1 x i +1−x i ❑
Contoh Soal
Agar lebih jelasnya, berikut contoh soal untuk interpolasi spline linear
1. Terdapat tabel fungsi kecepatan v(t) terhadap waktu

t (s) v (m/s)

0 0

10 227.04

15 362.78

20 517.35

22.5 602.97

30 901.67

i 1 2 3 4 5
x 0 5 7 8 10
y 0 2 -1 -2 20
Tentukan kecepatan ketika t = 16 detik menggunakan linear spline!
t0 = 15 v(t0) = 362,78
t1 = 20 v(t1) = 517,35

v ( t 1) −v( t 0 )
v ( t )=v ( t 0 ) + ( t−t 0 )
t 1−t 0
517,35−362,78
v(t)=362,78+ (t−15)
20−15
v ( 16 ) =362,78+30,913(16−15)
v ( 16 ) =393,7

2. Tentukan Spline Liniear untuk Kumpulan data berikut

Jawab :

x−x i +1 x−x i +1
S ⅈ ( x ) = y1 + y ⅈ +1 , xϵ [ xi , x i+1 ]
xi−x i +1 xi−x i +1

x−5 x−0
S1 ( x ) = 0 +2 = 0.4 , xϵ [0,5 ]
0−5 5−0
x−7 x−5
S2 ( x ) = 2 -1 = -1,5x + 9,5 , xϵ [5,7 ]
5−7 7−5

x−8 x−7
S3 ( x ) = -1 + -2 = -x + 6 , xϵ [7,8]
7−8 8−7

x−10 x−8
S4 ( x ) = -2 + 20 = 11x – 90 , xϵ [8,10 ]
8−10 10−8

Interpolasi Spline Kuadratik


Penjelasan Rumus

Jika pada interpolasi spline linear, yang menghubungkan antara titik satu dengan lainnya adalah
suatu garis lurus, maka pada interpolasi spline linear, penghubung (spline)-nya adalah sebuah
persamaan kuadrat, seperti yang ditunjukkan pada gambar grafik di atas. Sehingga jika dijabarkan,
terdapat persamaan seperti berikut:
Given  x0 , y0 ,  x1 , y1 ,......, x n1 , y n 1 ,  x n , y n  , fit quadratic splines through the data. The splines
are given by
f ( x )  a1 x 2  b1 x  c1 , x 0  x  x1

 a 2 x 2  b2 x  c2 , x1  x  x 2
.
.
.
 a n x 2  bn x  cn , x n1  x  x n

Untuk mencari nilai X dari data yang ada, maka sebelumnya perlu dicari nilai
a i , bi , dan c i , dengan i=¿ 1,2, ... , n. Setiap spline memiliki dua point yang saling terhubung, sehingga
terdapat dua persamaan seperti berikut:
Each quadratic spline goes through two consecutive data points
2
a1 x 0  b1 x 0  c1  f ( x0 )
2
a1 x1  b1 x1  c1  f ( x1 ) .
.
.
2
a i xi 1  bi xi 1  ci  f ( xi 1 )
2
a i xi  bi xi  c i  f ( xi ) .

.
.
2
a n x n1  bn x n1  c n  f ( xn 1 )
2
a n x n  bn xn  cn  f (x n )

This condition gives 2n equations

Sehingga, jika dihitung terdapat persamaan kuadrat sebanyak 2n. Selanjutnya, untuk mencari titik
X, setiap persamaan kuadrat perlu diturunkan (derivatif). Turunan dari dua spline pertama bersifat
kontinyu.

Contoh dari turunannya adalah sebagai berikut:


T he firs t der ivat ives o f two q uad rat ic sp lines a re co nt inuo us at t he inter ior points.
F or exa mple, t he der ivat ive of t he first spline
a1 x 2
 b1 x  c1 is 2 a1 x  b1
T he der ivat ive of the second sp line
a2 x2  b2 x  c 2 is 2 a2 x  b2
and t he two are equa l at x  x1 gi ving
2 a1 x1  b1  2a 2 x1  b2
2 a1 x1  b1  2 a 2 x1  b2  0

Karena bersifat kontinyu, dan kedua spline terhubung pada satu titik yang sama yaitu x=x 1, maka:

Untuk point yang lain berlaku hal yang sama, sehingga turunannya seperti berikut:
Similarly at the other interior points,
2a2 x2  b2  2a3 x2  b3  0
.
.
.
2ai xi  bi  2ai1 xi  bi 1  0
.
.
.
2an1 xn1  bn1  2an xn1  bn  0

We have (n-1) such equations. The total number of equations is (2n)  (n  1)  (3n  1) .
We can assume that the first spline is linear, that is a1  0

Jumlah total dari semua fungsi turunan yaitu sebanyak (n-1). Sehingga jumlah total dari semua
persamaan yang ada (2n) + (n-1) = 3n -1. Dari sana, akhirnya kita bisa menyimpulkan bahwa spline
yang pertama adalah linier, sehingga a 1=0. Sehingga, bisa disimpulkan terdapat persamaan
sebanyak 3n, dan ada sejumlah 3n nilai konstanta yang perlu kita ketahui ( a i , bi , dan c i , ). Jika ketiga
nilai konstanta tersebut sudah diketahui, maka nilai X selanjutnya akan jauh lebih mudah untuk
dicari. Untuk penjelasan lebih lengkapnya, ditunjukkan pada contoh soal.

Contoh Soal
Terdapat tabel fungsi kecepatan v(t) terhadap waktu t

t (s) v (m/s)

0 0

10 227.04

15 362.78

20 517.35

22.5 602.97

30 901.67

Tentukan kecepatan ketika t = 16 detik menggunakan quadratic spline!


v(t) = a1t2 + b1t + c1, 0 ≤ t ≤ 10
= a1t2 + b1t + c1, 10 ≤ t ≤ 15
= a1t2 + b1t + c1, 15 ≤ t ≤ 20
= a1t2 + b1t + c1, 20 ≤ t ≤ 22,5
= a1t2 + b1t + c1, 22,5 ≤ t ≤ 30

Spline untuk dua data titik berurutan


2
a2 (10) +b2 (10 )+c 2 =227 .04
2
a2 (15) + b2 (15 )+c 2 =362. 78
a3 (15)2 +b3 (15)+c 3 =362 .78
2
a3 (20) +b3 (20)+c 3 =517 . 35
2
a 4 (20 ) +b 4 (20)+c 4 =517 .35
2
a 4 (22 .5 ) +b4 (22. 5 )+c 4 =602 . 97
2
a5 (22. 5 ) +b5 (22. 5 )+c5 =602 . 97
a5 (30)2 +b5 (30)+c 5 =901 .67

Setiap persamaan di atas diturunkan untuk menemukan titik temu antarpersamaan kuadrat

d d
dt ( a1 t 2 +b1 t+c1 )|t=10= ( a2 t 2 +b2 t +c 2 )|t=10
dt
( 2a1 t +b1 )|t=10=(2 a2 t +b 2 )|t=10
2 a1 ( 10 ) +b1 =2 a2 ( 10 )+b2
20 a1 +b1 −20 a2 −b2 =0

Ketika t = 10 2 a1 (10 )+b1 −2 a2 (10 )−b 2 =0

Ketika t = 15 2 a2 (15 )+b2 −2 a3 (15)−b3 =0


Ketika t = 20
2 a3 (20 )+b3 −2 a 4 (20)−b4 =0
Ketika t = 22,5
2 a4 (22 .5 )+b4 −2 a5 (22 .5 )−b 5 =0

Untuk a1 nilainya adalah 0 (nol) sehingga dapat dikatakan bahwa titik pertama terhubung secara
linier.
Dari hasil perhitungan tersebut didapatlah sebuah matriks
[ ][ [ ]
a1
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 b1 0
100 10 1 0 0 0 0 0 0 0 0 0 0 0 0 c1 227 . 04
0 0 0 100 10 1 0 0 0 0 0 0 0 0 0 a2 227 . 04
0 0 0 225 15 1 0 0 0 0 0 0 0 0 0 362. 78
b2
0 0 0 0 0 0 225 15 1 0 0 0 0 0 0 362. 78
0 0 0 0 0 0 400 20 1 0 0 0 0 0 0
c2 517 . 35
0 0 0 0 0 0 0 0 0 400 20 1 0 0 0 a3 517 . 35
0 0 0 0 0 0 0 0 0 506 . 25 22 . 5 1 0 0 0 b3 = 602. 97
0 0 0 0 0 0 0 0 0 0 0 0 506 .25 22. 5 1 c3 602. 97
0 0 0 0 0 0 0 0 0 0 0 0 900 30 1
a4 901. 67
20 1 0 −20 −1 0 0 0 0 0 0 0 0 0 0 0
b4
0 0 0 30 1 0 −30 −1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 40 1 0 −40 −1 0 0 0 0 c4 0
0 0 0 0 0 0 0 0 0 45 1 0 − 45 −1 0 a5 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b5 0
c5

Hasil dari matriks tersebut dieliminasi satu persatu untuk mendapatkan nilai koefisien spline

i ai bi ci
1 0 22,704 0
2 0,8888 4,928 88,88
3 -0,1356 35,66 -141,61
4 1,6048 -33,956 554,55
5 0,20889 28,86 -152,13

2
v ( t )=−0,1356 t +35,956 t +554,55
2
v ( 16 ) =−0,1356 ( 16 ) +35,956(16)+554,55
v ( 16 ) =394,24
Mengapa Menggunakan Spline Jauh Lebih Baik?

1.2

0.8

0.4
y

0
-1 -0.5 0 0.5 1
-0.4

-0.8
x
19th Order Polynomial f (x) 5th Order Polynomial

Pada gambar di atas terdapat beberapa kurva, yaitu kurva fungsi asli, kurva interpolasi polinomial
orde ke-19, dan kurva interpolasi polinomial orde ke-5. Terlihat bahwa orde ke-19 hampir
mendekati nilai dari fungsi asli di bagian tengah kurva, tetapi di bagian ujung kurva nilai yang
dihasilkan dari polinomial tersebut berbeda sangat jauh. Pada polinomial orde ke-5 terlihat bahwa
pada bagian tengah kurva terdapat selisih nilai yang relatif jauh tetapi pada bagian ujung kurva
nilainya tidak begitu berbeda jauh. Jika menggunakan spline, kurva hanya dibentuk di antara 2 titik
sehingga tidak akan menimbulkan selisih nilai yang jauh.

Program
Program yang kami buat untuk mendemokan interpolasi spline ini hanya mencakup interpolasi
spline linear, karena kami masih belum bisa mengimplementasikan interpolasi spline kuadratik.
Berikut source code dan hasil dari eksekusi program:

Source Code
#include <stdio.h>

float function(float x)
{
return (float) 7 * x + 32;
}

int main()
{
float t0, t1, t, v0, v1, vt;

printf("Masukkan data point t0 dan t1\n");


scanf("%f %f", &t0, &t1);
printf("Masukkan nilai x\n");
scanf("%f", &t);

v0 = 362.78;
v1 = 517.35;

if(t<t0 && t>t1)


{
printf("Nilai y tidak dapat dicari karena nilai t tidak berada di
antara t0 dan t1\n");
}
else
{
vt = v0 + (v1 - v0) / (t1 - t0) * (t - t0);
printf("Nilai y pada saat x : %f adalah %f\n", t, vt);
}
return 0;
}

Contoh Hasil Eksekusi Program


Misalnya program digunakan untuk mencari nilai Y pada saat X = 16 detik. Data point yang
diketahui adalah t0 = 15 dan t1 = 20.

Anda mungkin juga menyukai