MATLAB: Simple Question: gradient function Formula

gradient formula

in the following line, x is a 200 element column vector, h is a scalar eg.say 20 or 30
a = gradient(x,h)
can you please tell how 'a' is computed from x and h? Thanks in advance

Best Answer

For 2 <= k <= 199, the computation is a central difference:
a(k) = (x(k+1)-x(k-1))/(2*h)
However, for the two endpoints it is:
a(1) = (x(2)-x(1))/h
a(200) = (x(200)-x(199))/h
In case h is a vector of the same length as x, then it becomes a divided difference:
a(k) = (x(k+1)-x(k-1))/(h(k+1)-h(k-1))
and
a(1) = (x(2)-x(1))/(h(2)-h(1))
a(200) = (x(200)-x(199))/(h(200)-h(199))
Related Question