In calculus, the first derivative test uses the first derivative of a function to determine whether a given critical point of a function is a local maximum, a local minimum, or neither. The idea behind the first derivative test is to examine the monotonicity properties of a function just to the left and right of a given point in its domain. If the function “switches” from increasing to decreasing at the point, then close to that point, it will achieve a highest value at that point. Similarly, if the function “switches” from decreasing to increasing at the point, then close to that point, it will achieve a least value at that point. If the function fails to “switch”, and remains increasing or remains decreasing, then no highest or least value is achieved.
From this first derivative description, I create a C/C++ first derivative code.
void firstDerivative(float *data, float *firstderv, int nx)
float tmp1, tmp2;
//compute derivative first index
firstderv = data-data;
for(i=1; i<nx-2; i++) //compute first derivative
tmp1 = data[i]-data[i-1];
tmp2 = data[i+1]-data[i];
firstderv[i] = (tmp2+tmp1)/2;
//compute derivative last index
firstderv[nx-1] = data[nx-1]-data[nx-2];
Output from this first derivative function is firstderv. firstderv have same size with input data (variable data). This is output from data processed with first derivative code :
My name is Toto Sugito. This is my notes when I try something. Maybe, this is NOT THE BEST SOLUTION for your problems. If you have other method or idea that better with my post, please share in this blog. Thank for visiting my site.