Contoh soal
Tentukan spline linear yang menginterpolasikan data berikut.
𝑥 −2 −1 0 1 2 3
𝑓(𝑥) 16 5 −3 −2 10 −10
2. Pada Command Window, definisikan nilai dari 𝑥 dan 𝑓(𝑥) pada tabel, kemudian panggil
fungsi spliner sehingga akan muncul tampilan seperti berikut
>> x=[-2 -1 0 1 2 3]
x =
-2 -1 0 1 2 3
>> [a,b]=spliner(x,f)
a =
-11 -8 1 12 -20
b =
-6 -3 -3 -14 50
Dari hasil perhitungan di atas diperoleh bahwa pline linear yang dicari adalah :
𝑆1 (𝑥) = −11𝑥 − 6 , −2 ≤ 𝑥 ≤ −1
𝑆2 (𝑥) = −8𝑥 − 3 , −1 ≤𝑥 ≤ 0
𝑆(𝑥) = 𝑆3 (𝑥) = 𝑥 − 3 , 0≤𝑥≤1
𝑆4 (𝑥) = 12𝑥 − 14 , 1≤𝑥≤2
{ 𝑆5 (𝑥) = −20 + 50 , 2≤𝑥≤3
Langkah-langkah Menentukan Polinomial Interpolasi dengan Spline Kuadratik
Contoh soal
Carilah suatu spline kuadratik interpola nuntuk data yang diberikan pada label berikut ini.
𝑥 −1 0 0.5 1 2 2.5
𝑓 2 1 0 1 2 3
seperti berikut
𝑚2 − 𝑚1
𝑆1 (𝑥) = (𝑥 − 𝑥1 )2 + 𝑚1 (𝑥 − 𝑥1 ) + 𝑓1
2(𝑥2 − 𝑥1 )
−2 − 0
= (𝑥 − (−1))2 + 0(𝑥 − (−1)) + 2 = −(𝑥 + 1)2 + 2
2(0 − (−1))
𝑚3 − 𝑚2
𝑆2 (𝑥) = (𝑥 − 𝑥2 )2 + 𝑚2 (𝑥 − 𝑥2 ) + 𝑓2
2(𝑥3 − 𝑥2 )
−2 − (−2)
= (𝑥 − 0)2 − 2(𝑥 − 0) + 1 = −2𝑥 + 1
2(0.5 − 0)
𝑚4 − 𝑚3
𝑆3 (𝑥) = (𝑥 − 𝑥3 )2 + 𝑚3 (𝑥 − 𝑥3 ) + 𝑓3
2(𝑥4 − 𝑥3 )
6 − (−2)
= (𝑥 − 0.5)2 − 2(𝑥 − 0.5) + 0 = 8(𝑥 − 0.5)2 − 2(𝑥 − 0.5)
2(1 − 0.5)
𝑚5 − 𝑚4
𝑆4 (𝑥) = (𝑥 − 𝑥4 )2 + 𝑚4 (𝑥 − 𝑥4 ) + 𝑓4
2(𝑥5 − 𝑥4 )
−4 − 6
= (𝑥 − 1)2 + 6(𝑥 − 1) + 1 = −5(𝑥 − 1)2 + 6(𝑥 − 1) + 1
2(2 − 1)
𝑚6 − 𝑚5
𝑆5 (𝑥) = (𝑥 − 𝑥5 )2 + 𝑚5 (𝑥 − 𝑥5 ) + 𝑓5
2(𝑥6 − 𝑥5 )
8 − (−4)
= (𝑥 − 2)2 − 4(𝑥 − 2) + 2 = 12(𝑥 − 2)2 − 4(𝑥 − 2) + 2
2(2.5 − 2)
>> f=[2 1 0 1 2 3]
f =
2 1 0 1 2 3
>> m=spline2(x,f)
m =
0 -2 -2 6 -4 8
3. Dari output tersebut, diperoleh nilai-nilai 𝑚𝑘 yaitu 𝑚1 = 0, 𝑚2 = −2, 𝑚3 = −2, 𝑚4 = 6,
𝑚5 = −4, dan 𝑚6 = 8
𝑚 −𝑚
4. Substitusikan 𝑚𝑘 ke 𝑆𝑘 (𝑥) = 2(𝑥𝑘+1 −𝑥 𝑘) (𝑥 − 𝑥𝑘 )2 + 𝑚𝑘 (𝑥 − 𝑥𝑘 ) + 𝑓𝑘 untuk 𝑥𝑘 ≤ 𝑥 ≤ 𝑥𝑘+1
𝑘+1 𝑘
Dari hasil perhitungan di atas diperoleh bahwa spline kuadratik yang dicari adalah :
𝑆1 (𝑥) = −(𝑥 + 1)2 + 2 , −1≤𝑥 ≤0
𝑆2 (𝑥) = −2𝑥 + 1 , 0 ≤ 𝑥 ≤ 0.5
𝑆(𝑥) = 𝑆3 (𝑥) = 8(𝑥 − 0.5)2 − 2(𝑥 − 0.5) , 0.5 ≤ 𝑥 ≤ 1
𝑆4 (𝑥) = −5(𝑥 − 1)2 + 6(𝑥 − 1) + 1 , 1≤𝑥≤2
{ 𝑆5 (𝑥) = 12(𝑥 − 2)2 − 4(𝑥 − 2) + 2 , 2 ≤ 𝑥 ≤ 2.5
Langkah-langkah Menentukan Polinomial Interpolasi dengan Spline Kubik
1 ≤ 𝑘 ≤ (𝑛 − 1)
2. Menentukan ℎ𝑘 = 𝑥𝑘+1 − 𝑥𝑘 dan 𝑑𝑘 = (𝑓𝑘+1 − 𝑓𝑘 )/ℎ𝑘 untuk 𝑥𝑘 ≤ 𝑥 ≤ 𝑥𝑘+1 dan 1 ≤ 𝑘 ≤
(𝑛 − 1)
3. Menentukan 𝑢𝑘 = 2(ℎ𝑘−1 + ℎ𝑘 ) dan 𝑣𝑘 = 𝑑𝑘 − 𝑑𝑘−1 ) untuk 2 ≤ 𝑘 ≤ (𝑛 − 1)
4. Menentukan 𝑢𝑘∗ dan 𝑣𝑘∗ sesuai dengan jenis Spline Kubik
5. Substitusikan nilai 𝑢𝑘∗ dan 𝑣𝑘∗ ke dalam matriks tridiagonal berukuran (𝑛 − 2) × (𝑛 − 2)
𝑢2∗ ℎ2∗ 0 0 … 0 𝑚2 𝑣2∗
ℎ2 𝑢3 ℎ3 0 … 0 𝑚3 𝑣3
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ = ⋮
0 0 ⋯ ℎ𝑛−3 𝑢𝑛−2 ℎ𝑛−2 𝑚𝑛−2 𝑢𝑛−2
∗
) (𝑚𝑛−1 ) (𝑣𝑛−1 )
∗ ∗
(0 0 … 0 ℎ𝑛−2 𝑢𝑛−1
6. Menyelesaikan SPL Am=V dengan metode eliminasi Gauss atau dengan faktorisasi LU
sehingga diperoleh nilai 𝑚2 , 𝑚3 , … , 𝑚𝑛−1
7. Menentukan nilai 𝐶𝑘 untuk 𝑥𝑘 ≤ 𝑥 ≤ 𝑥𝑘+1 dan 1 ≤ 𝑘 ≤ (𝑛 − 1)
𝑓𝑘+1 𝑥𝑘+1 − 𝑥𝑘
𝐶𝑘 = − 𝑚𝑘+1
𝑥𝑘+1 − 𝑥𝑘 6
8. Menentukan nilai 𝐷𝑘 untuk 𝑥𝑘 ≤ 𝑥 ≤ 𝑥𝑘+1 dan 1 ≤ 𝑘 ≤ (𝑛 − 1)
𝑓𝑘 𝑥𝑘+1 −𝑥𝑘
𝐷𝑘 = 𝑥 − 𝑚𝑘 ,
𝑘+1 −𝑥𝑘 6
9. Substitusikan 𝑚𝑘 , 𝐶𝑘 , 𝐷𝑘 ke
𝑚𝑘+1 (𝑥 − 𝑥𝑘 )3 𝑚𝑘 (𝑥𝑘+1 − 𝑥)3
𝑆𝑘 (𝑥) = + + 𝐶𝑘 (𝑥 − 𝑥𝑘 ) + 𝐷𝑘 (𝑥𝑘+1 − 𝑥)
6(𝑥𝑘+1 − 𝑥𝑘 ) 6(𝑥𝑘+1 − 𝑥𝑘 )
Contoh soal
Carilah spline kubik alami yang melewati titik-titik pada tabel berikut,
𝑥 1 2 3 4 5
𝑦 0 1 0 1 0
𝑓2 − 𝑓1 1 − 0
𝑑1 = = =1
ℎ1 1
𝑓3 − 𝑓2 0 − 1
𝑑2 = = = −1
ℎ2 1
𝑓4 − 𝑓3 1 − 0
𝑑3 = = =1
ℎ3 1
𝑓5 − 𝑓4 0 − 1
𝑑4 = = = −1
ℎ4 1
2. Menentukan 𝑢2 , 𝑢3 , 𝑢4 dan 𝑣2 , 𝑣3 , 𝑣4
𝑢2 = 2(ℎ1 + ℎ2 ) = 2(1 + 1) = 4
𝑢3 = 2(ℎ2 + ℎ3 ) = 2(1 + 1) = 4
𝑢4 = 2(ℎ3 + ℎ4 ) = 2(1 + 1) = 4
3. Menentukan 𝑢2∗ , 𝑢3∗ , 𝑢4∗ , 𝑣2∗ , 𝑣3∗ , 𝑣4∗ , dan ℎ2∗ , ℎ3∗ , ℎ4∗
𝑢2∗ = 𝑢2 = 4
𝑢3∗ = 𝑢3 = 4
𝑢4∗ = 𝑢4 = 4
𝑣2∗ = 𝑣2 = −12
𝑣3∗ = 𝑣3 = 12
𝑣4∗ = 𝑣4 = −12
ℎ2∗ = ℎ2 = 1
ℎ3∗ = ℎ3 = 1
ℎ4∗ = ℎ4 = 1
𝐷1 = 0
−30/7 12
𝐷2 = 1 − =
6 7
36/7 6
𝐷3 = 0 − =−
6 7
−30/7 12
𝐷4 = 1 − =
6 7
7. Substitusikan 𝑚𝑘 , 𝐶𝑘 , 𝐷𝑘 ke
𝑚𝑘+1 (𝑥 − 𝑥𝑘 )3 𝑚𝑘 (𝑥𝑘+1 − 𝑥)3
𝑆𝑘 (𝑥) = + + 𝐶𝑘 (𝑥 − 𝑥𝑘 ) + 𝐷𝑘 (𝑥𝑘+1 − 𝑥)
6(𝑥𝑘+1 − 𝑥𝑘 ) 6(𝑥𝑘+1 − 𝑥𝑘 )
diperoleh :
−30/7 12 5 12
𝑆1 (𝑥) = (𝑥 − 1)3 + 0 + (𝑥 − 1) + 0 = − (𝑥 − 1)3 + (𝑥 − 1)
6×1 7 7 7
30
36/7 − 7 6 12
3 (3 − 𝑥)3 − (𝑥 − 2) + (3 − 𝑥)
𝑆2 (𝑥) = (𝑥 − 2) +
6 6 7 7
6 5 6 12
= (𝑥 − 2)3 − (3 − 𝑥)3 − (𝑥 − 2) + (3 − 𝑥)
7 7 7 7
36
−30/7 6 6
𝑆3 (𝑥) = (𝑥 − 3)3 + 7 (4 − 𝑥)3 − (𝑥 − 3) − (4 − 𝑥)
6×1 6 7 7
5 6 12 6
= − (𝑥 − 3)3 + (4 − 𝑥)3 + (𝑥 − 3) − (4 − 𝑥),
7 7 7 7
−30/7 12 5 12
𝑆4 (𝑥) = 0 + (5 − 𝑥)3 + 0 + (5 − 𝑥) = − (5 − 𝑥)3 + (5 − 𝑥).
6 7 7 7
5 12
− (𝑥 − 1)3 + (𝑥 − 1) ,1 ≤ 𝑥 ≤ 2
7 7
6 5 6 12
(𝑥 − 2)3 − (3 − 𝑥)3 − (𝑥 − 2) + (3 − 𝑥) ,2 ≤ 𝑥 ≤ 3
𝑆(𝑥) = 7 7 7 7
5 6 12 6
− (𝑥 − 3)3 + (4 − 𝑥)3 + (𝑥 − 3) − (4 − 𝑥)
7 7 7 7 ,3 ≤ 𝑥 ≤ 4
5 3
12 ,4 ≤ 𝑥 ≤ 5
{ − 7 (5 − 𝑥) + 7 (5 − 𝑥)
Langkah-langkah penyelesaian dengan matlab
1. Tuliskan fungsi berikut pada Matlab dan simpan dengan nama spline3
function s3=spline3(x,y,z,st,b1,bn)
n=length(x);
h=x(2:n)-x(1:n-1);
d=(y(2:n)-y(1:n-1))./h;
u=2*(h(1:n-2)+h(2:n-1));
v=6*(d(2:n-1)-d(1:n-2));
V=v';
dia=h(2:n-2);dib=dia;
if st==1,
u(1)=3/2*h(1)+2*h(2); V(1)=V(1)-3*(d(1)-b1);
u(n-2)=2*h(n-2)+3/2*h(n-1); V(n-2)=V(n-2)-3*(bn-d(n-1));
A=diag(u)+diag(dib,-1)+diag(dia,1)
m=A\V;m=[0;m;0];
m(1)=3/h(1)*(d(1)-b1)-m(2)/2;
m(n)=3/h(n-1)*(bn-d(n-1))-(n-1)/2;
V
m
end
if st==2,
A=diag(u)+diag(dib, -1)+diag(dia,1)
V
m=A\V;m=[0;m;0]
end
if st==3,
u(1)=3*h(1)+2*h(2)+h(1)^2/h(2);
u(n-2)= 2*h(n-2)+3*h(n-1)+h(n-1)^2/h(n-2);
dia(1)=h(2)-h(1)^2/h(2);
dib(n-3)=h(n-2)-h(n-1)^2/h(n-2);
A=diag(u)+diag(dib,-1)+diag(dia,1)
m=A\V; m=[0;m;0];
m(1)=m(2)-h(1)*(m(3)-m(2))/h(2);
m(n)=m(n-1)+h(n-1)*(m(n-1)-m(n-2))/h(n-2);
V
m
end
if st==4,
u(1)=3*h(1)+2*h(2);
u(n-2)=2*h(n-2)+3*h(n-1);
A=diag(u)+diag(dib,-1)+diag(dia,1)
m=A\V; m=[0;m;0];
m(1)=m(2);m(n)=m(n-1);
V
m
end
if st==5,
V(1)=V(1)-h(1)*b1;
V(n-2)=V(n-2)-h(n-1)*bn;
A=diag(u)+diag(dib,-1)+diag(dia,1)
V
m=A\V; m=[b1;m;bn]
end
C=y(2:n)./h-h.*m(2:n)'/6
D=y(1:n-1)./h-h.*m(1:n-1)'/6
for j=1: length (z),
for k=1:n-1,
if z(j)>=x(k)&z(j)<=x(k+1),
S3(j)=(m(k+1)*(z(j)-x(k)).^3+m(k)*(x(k+1)-
z(j)).^3)/(6*h(k))+C(k)*(z(j)-x(k))+D(k)*(x(k+1)-z(j));
end
end
end
2. Pada Command Window, definisikan nilai dari 𝑥, 𝑓(𝑥) pada tabel dan z, kemudian panggil
fungsi spline3 dan gunakan algoritma s2=sline3(x,y,x,2,0,0) untuk spine kubik
alami, sehingga akan muncul tampilan seperti berikut
3. Dari hasil di atas, diperoleh nilai matriks 𝐴, 𝑉, 𝑚𝑘 , 𝐶𝑘 , dan 𝐷𝑘
4 1 0 −12
𝐴 = (1 4 1 ) 𝑉 = ( 12 )
0 1 4 −12
30 36 30
𝑚2 = − , 𝑚3 = , 𝑚4 = −
7 7 7
12 6 12
𝐶1 = , 𝐶2 = − 7 , 𝐶3 = , 𝐶4 = 0
7 7
12 6 12
𝐷1 = 0 , 𝐷2 = , 𝐷3 = − 7 , 𝐷4 =
7 7
8. Substitusikan 𝑚𝑘 , 𝐶𝑘 , 𝐷𝑘 ke
𝑚𝑘+1 (𝑥 − 𝑥𝑘 )3 𝑚𝑘 (𝑥𝑘+1 − 𝑥)3
𝑆𝑘 (𝑥) = + + 𝐶𝑘 (𝑥 − 𝑥𝑘 ) + 𝐷𝑘 (𝑥𝑘+1 − 𝑥)
6(𝑥𝑘+1 − 𝑥𝑘 ) 6(𝑥𝑘+1 − 𝑥𝑘 )
diperoleh :
−30/7 12 5 12
𝑆1 (𝑥) = (𝑥 − 1)3 + 0 + (𝑥 − 1) + 0 = − (𝑥 − 1)3 + (𝑥 − 1)
6×1 7 7 7
30
36/7 − 7 6 12
3 (3 − 𝑥)3 − (𝑥 − 2) + (3 − 𝑥)
𝑆2 (𝑥) = (𝑥 − 2) +
6 6 7 7
6 5 6 12
= (𝑥 − 2)3 − (3 − 𝑥)3 − (𝑥 − 2) + (3 − 𝑥)
7 7 7 7
36
−30/7 6 6
𝑆3 (𝑥) = (𝑥 − 3) + 7 (4 − 𝑥)3 − (𝑥 − 3) − (4 − 𝑥)
3
6×1 6 7 7
5 6 12 6
= − (𝑥 − 3)3 + (4 − 𝑥)3 + (𝑥 − 3) − (4 − 𝑥),
7 7 7 7
−30/7 12 5 12
𝑆4 (𝑥) = 0 + (5 − 𝑥)3 + 0 + (5 − 𝑥) = − (5 − 𝑥)3 + (5 − 𝑥).
6 7 7 7
5 12
− (𝑥 − 1)3 + (𝑥 − 1) ,1 ≤ 𝑥 ≤ 2
7 7
6 5 6 12
(𝑥 − 2)3 − (3 − 𝑥)3 − (𝑥 − 2) + (3 − 𝑥) ,2 ≤ 𝑥 ≤ 3
𝑆(𝑥) = 7 7 7 7
5 6 12 6
− (𝑥 − 3)3 + (4 − 𝑥)3 + (𝑥 − 3) − (4 − 𝑥)
7 7 7 7 ,3 ≤ 𝑥 ≤ 4
5 3
12 ,4 ≤ 𝑥 ≤ 5
{ − 7 (5 − 𝑥) + 7 (5 − 𝑥)