Disusun Oleh:
Kelompok 1
Andre Febrianto S 141524001
Anggi Nur Dhamayanti 141524002
Eki Fauzi Firdaus 141524003
Eva Danti Rahmanita 141524004
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
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
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
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 n1 , 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 n1 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 n1 bn x n1 c n f ( xn 1 )
2
a n x n bn xn cn f (x n )
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.
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 2ai1 xi bi 1 0
.
.
.
2an1 xn1 bn1 2an xn1 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
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
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;
v0 = 362.78;
v1 = 517.35;