MATLAB: Diff vs. gradient

differential equationsplot

Why does:
diffpressure = gradient(pressure)./gradient(density);
and
diffpressure = diff(pressure)./diff(density);
give drastically different results? The derivative using each method are completely different. See attached figure

Best Answer

gradient uses central differences while diff(x) uses right-hand differences x(i+1)-x(i).