Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [xi,S,L] = cubicSpline(t,y)
- n = length(t);
- z = zeros(n,1); h = zeros(n-1,1); b = zeros(n-1, 1);
- u = zeros(n,1); v = zeros(n,1);
- h = t(2:n)-t(1:n-1); b = (y(2:n)-y(1:n-1))./h;
- u(2) = 2*(h(1)+h(2)); v(2) = 6*(b(2)-b(1));
- for i=3:n-1
- u(i) = 2*(h(i)+h(i-1))-h(i-1)^2/u(i-1);
- v(i) = 6*(b(i)-b(i-1))-h(i-1)*v(i-1)/u(i-1);
- endfor
- for i=n-1:-1:2
- z(i) = (v(i)-h(i)*z(i+1))/u(i);
- endfor
- S = [];
- xi = [];
- %Gambar garis di masing-masing titik
- prevp = 0;
- L = 0;
- for i=1:n-1
- for x=t(i):0.00005:t(i+1)+0.00005
- h = t(i+1)-t(i);
- p = z(i+1)/(6*h)*(x-t(i))^3 ...
- -z(i)/(6*h)*(x-t(i+1))^3 ...
- +(y(i+1)/h-z(i+1)*h/6)*(x-t(i)) ...
- -(y(i)/h-z(i)*h/6)*(x-t(i+1));
- L = L + sqrt((p - prevp)^2 + (0.00005)^2);
- prev = p;
- S = [S,p];
- xi = [xi,x];
- endfor
- endfor
- endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement