1: \begin{abstract}
2: Let $z_{1},z_{2},\ldots,z_{N}$ be a sequence of distinct grid points.
3: A finite difference formula approximates the $m$-th derivative $f^{(m)}(0)$
4: as $\sum w_{k}f\left(z_{k}\right)$, with $w_{k}$ being the weights.
5: We derive an algorithm for finding the weights $w_{k}$ which is an
6: improvement of an algorithm of Fornberg (\emph{Mathematics of Computation},
7: vol. 51 (1988), p. 699-706). This algorithm uses fewer arithmetic
8: operations than that of Fornberg by a factor of $4/(5m+5)$ while
9: being equally accurate. The algorithm that we derive computes finite
10: difference weights accurately even when $m$, the order of the derivative,
11: is as high as $16$. In addition, the algorithm generalizes easily
12: to the efficient computation of spectral differentiation matrices.
13:
14: The order of accuracy of the finite difference formula for $f^{(m)}(0)$
15: with grid points $hz_{k}$, $1\leq k\leq N$, is typically $\mathcal{O}\left(h^{N-m}\right)$.
16: However, the most commonly used finite difference formulas have an
17: order of accuracy that is higher than the typical. For instance, the
18: centered difference approximation $\left(f(h)-2f(0)+f(-h)\right)/h^{2}$
19: to $f''(0)$ has an order of accuracy equal to $2$ not $1$ . Even
20: unsymmetric finite difference formulas can exhibit such superconvergence
21: or boosted order of accuracy, as shown by the explicit algebraic condition
22: that we derive. If the grid points are real, we prove a basic result
23: stating that the order of accuracy can never be boosted by more than
24: $1$.
25: \end{abstract}