for i = 0:4
answer = bspliner (3,0,i);
answer2 = bsplinerd (3,0,i);
fprintf ('For i = % d, B (3,0,i) = % f and (dy/dx)B (3,0,i) = % f \
\n', i, answer,answer2);
end
function blah = bspliner (k,i,x)
% fprintf ('k = % d, i = % d, x = % d \n',k,i,x);
if (k == 0)
if (i<= x && x < (i+1))
blah = 1;
else
blah = 0;
end
else
blah = ((x - i)./k)*bspliner (k-1,i,x) \
+(((i+k+1)-x)./((i+k+1)-(i+1)))*bspliner (k-1,i+1,x);
end
function blah = bsplinerd (k,i,x)
% fprintf ('k = % d, i = % d, x = % d \n',k,i,x);
if (k == 0)
if (i<= x && x < (i+1))
blah = 1;
else
blah = 0;
end
else
blah = (k./k)*bsplinerd (k-1,i,x) - (k./k)*bsplinerd (k-1,i+1,x);
end