You are on page 1of 1

0001 // interpolasi cubic spline[]

0002 x=[4.5,4.7,4.9,5.0,5.1,5.8,6.0,6.8,6.9,7.0,8.0,9.0,9.4,9.6,9.9,10,10.3,10.5,10.7,10.8,10.9];
0003
fx=[3.2,3.4,3.9,4.0,4.1,4.3,4.27,3.8,3.7,3.73,3.72,3.71,3.6,3.4,3.2,3.1,2.9,2.7,2.5,2.2,2.0];
0004
0005 n = input('masukkan nilai dari (n+1) sampai, n: ');
0006 x = zeros(1,n+1);
0007 a = zeros(1,n+1);
0008
0009 for i = 0:n
0010 disp('Masukkan nilai x dan fx: \n', i, i);
0011 x(i+1) = input(' ');
0012 a(i+1) = input(' ');
0013 end
0014
0015
0016 m = n - 1;
0017 h = zeros(1,m+1);
0018 for i = 0:m
0019 h(i+1) = x(i+2) - x(i+1);
0020 end
0021
0022 xa = zeros(1,m+1);
0023 for i = 1:m
0024 xa(i+1) = 3.0*(a(i+2)*h(i)-a(i+1)*(x(i+2)-x(i))+a(i)*h(i+1))/(h(i+1)*h(i));
0025 end
0026
0027 xl = zeros(1,n+1);
0028 xu = zeros(1,n+1);
0029 xz = zeros(1,n+1);
0030 xl(1) = 1;
0031 xu(1) = 0;
0032 xz(1) = 0;
0033
0034 for i = 1:m
0035 xl(i+1) = 2*(x(i+2)-x(i))-h(i)*xu(i);
0036 xu(i+1) = h(i+1)/xl(i+1);
0037 xz(i+1) = (xa(i+1)-h(i)*xz(i))/xl(i+1);
0038 end
0039
0040 xl(n+1) = 1;
0041 xz(n+1) = 0;
0042 b = zeros(1,n+1);
0043 c = zeros(1,n+1);
0044 d = zeros(1,n+1);
0045 c(n+1) = xz(n+1);
0046
0047 for i = 0:m
0048 j = m-i;
0049 c(j+1) = xz(j+1)-xu(j+1)*c(j+2);
0050 b(j+1) = (a(j+2)-a(j+1))/h(j+1) - h(j+1) * (c(j+2) + 2.0 * c(j+1)) / 3.0;
0051 d(j+1) = (c(j+2) - c(j+1)) / (3.0 * h(j+1));
0052 end
0053
0054 disp('\n Angka x(0), ..., x(n) sampi:\n');
0055 for i = 0:n
0056 disp('', x(i+1));
0057 end
0058
0059 disp('\n\nilai koefisien l:\n');
0060 disp(' a(i) b(i) c(i) d(i)\n');
0061 for i = 0:m
0062 disp('\n',a(i+1),b(i+1),c(i+1),d(i+1));
0063 end

You might also like