#Finite difference derivative on a nonuniform 1D grid #Sundqwist and Veronis, Tellus, Vol. 22, Issuse 1, pp. 26-31 (1970). #In: x - vector of coordinates, y - vector of function values on x #Out: dydx - derivative at points 1:size(x) dx = x(2:length(x)) - x(1:length(x)-1); dydx=y; dydx(1) = (y(2)-y(1))/(x(2)-x(1)); dydx(end) = (y(end)-y(end-1))/(x(end)-x(end-1)); for(i=2; i <= length(x)-1; i=i+1){ dydx(i) = y(i+1) - (dx(i)/dx(i-1))^2*y(i-1) - (1-(dx(i)/dx(i-1))^2)*y(i); dydx(i) = dydx(i)/(dx(i)*(1+dx(i)/dx(i-1))); }