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