# Derivative function in matlab

• MATLAB
I wrote a user-defined function in matlab that is supposed to take the derivative of a function f(x) in the point that correspond to (x,f(x)). Here's the code
Code:
function [fprime]=numderivative(f,x,h,tol)

hd=h*10^-1;
hh=h;
hhdd=hd;
itnum=numel(x);
error=tol+1;
for ii=1:itnum
while error>tol
fprime1=(f(x(ii)+h)-f(x(ii)))/h;
fprime2=(f(x(ii)+hd)-f(x(ii)))/hd;
error=abs(fprime1-fprime2);
h=h*10^-1;
hd=h*10^-1;
end
fprime(ii)=fprime1;
h=hh;
hd=hhdd;
error=tol+1;
end
Obviously if you insert a real small tolerance (f(x(ii)+h)-f(x(ii))) would be zero even if the derivative is not zero. I'm trying to come up with something but I just don't know what to do.
Need help.

Thanks