Calculating derivatives numerically is generally not greeted with much enthusiasm among mathematicians. This is primarily due to a lack of very precise numerical methods within which to carry out precise derivative calculations. In addition, higher precision calculations often require increasingly more data points which may not always be directly available. Nevertheless, there are two basic approaches to calculating numerical derivatives. The finite difference formalism allows us to calculate both first and higher order derivatives of a function using only discrete sets of adjacent data points called a grid. This method also uses a Taylor series expansion which has the additional advantage of also providing some estimate of the amount of error inevitably incurred in such calculations. With the finite difference method, the higher number of data points you use and the closer they are to each other, the better the precision of the results. The second approach allows discrete data points to be generated at uneven intervals of x and involves approximating the function locally using polynomial interpolation followed by polynomial differentiation.