Matlab Lecture Examples from Week 4
 
This script displays a spline and the local cubics that make it up.
close all

x = [ 1 3 4 7 9 10];
y = [ -1 1 -2 2 1 1];
z = linspace(1,10);

% The next two lines are synonomous with 
%            sVals = Spline(x,y,z)

S = Spline(x,y);
sVals = ppval(S,z);

plot(z,sVals,x(2:5),y(2:5),'*',x([1 6]),y([1 6]),'o',[0 11],[0 0])
axis([0 11 -4 6])

pause

[x,rho,L,k] = unmkpp(S)
for i=1:L
   % Evaluate the polynomial
   %   rho(i,1)(v-x(i))^2 + rho(i,2)(v-x(i))^2 + rho(v,3)(v-x(i)) + rho(i,4)
   % at v = z(1),...,z(100) and assemble the results in the vector qiVals
   qiVals = polyval(rho(i,:),z-x(i));
   
   % Plot the interpolant and highlight the knots.
   plot(z,sVals,x(2:5),y(2:5),'*',x([1 6]),y([1 6]),'o',[0 11],[0 0])
   axis([0 11 -4 6])
   
   % Superimpose a plot of the ith local cubic.
   hold on
   qiVals = polyval(rho(i,:),z-x(i));
   plot(z,qiVals,'r--',[x(i) x(i+1)],[0 0],'+k',[x(i) x(i+1)],[0 0],'m')
   hold off
   title(sprintf(' i = %1d',i))
   pause
end