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