Abstract
Taking derivatives of numerical functions is one of the most often performed tasks in computation. Finite differences are a standard way to approximate the derivative of a function, and compact finite differences are especially attractive. We study the conditioning of differentiation, including some structured condition numbers for differentiation of polynomials. We look at differentiation matrices for derivatives of polynomials expressed in a Lagrange or Hermite interpolational basis. We look at regularization or smoothing before taking derivatives, and briefly touch on automatic differentiation. ⊲
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Olver and Townsend (2013) adopt the technique of using a different basis for the derivative \({f}^{\,{\prime}}(t)\) than for the function f(t), which allows a diagonal differentiation matrix, attaining great efficiency.
- 2.
We puzzled for a while over what symbol to use for the vector of derivative values. If the function values f(τ i ) are denoted by ρ i , then clearly the symbol for the derivatives \({f}^{\,{\prime}}(\tau _{i})\) should be related, though different. Finally, we chose the Norse rune þ (pronounced “thorn” with a “th” as in the word “thin”) because it looks a bit like a ρ, and linguistically the symbol is equivalent to the atin D convenient for derivative. In some fonts it has an angular character, which fits with the loss of smoothness when derivatives are taken. We also had to worry about conflicts with other symbols in this book. So, “thorn” (þ) it is Elliot (1981).
- 3.
It may become clearer why this is called a forward difference if you think of x k = a and \(x_{k+1} = a + h\) with h > 0. Then Δ f and Δ x both “look ahead" to compute the differences.
- 4.
For a large collection of resources, including reference books, tutorials, lists of papers, and (perhaps most importantly) links to programs that can differentiate your programs in languages ranging from C through MATLAB to Python, see www.autodiff.org.
- 5.
Note the spelling of George F. Corliss’ name.
References
Anderssen, R. S., & Hegland, M. (1999). For numerical differentiation, dimensionality can be a blessing! Mathematics of Computation, 68, 1121–1141.
Anderssen, R. S., & Hegland, M. (2010). Derivative spectroscopy—an enhanced role for numerical differentiation. Journal of Integral Equations and Applications, 22(3), 355–367.
Bellman, R., Kashef, B., & Casti, J. (1972). Differential quadrature: a technique for the rapid solution of nonlinear partial differential equations. Journal of Computational Physics, 10(1), 40–52.
Boole, G. (1880). A treatise on the calculus of finite differences (1951 ed. edited by J. F. Moulton). Macmillan and Company, 3rd Edition, London.
Corliss, G. F., Faure, C., Griewank, A., Hascoët, L., & Naumann, U. (2002). Automatic differentiation of algorithms: from simulation to optimazation. New York: Springer.
Cullum, J. (1971). Numerical differentiation and regularization. SIAM Journal on Numerical Analysis, 8(2), 254–265.
Don, W. S., & Solomonoff, A. (1995). Accuracy and speed in computing the Chebyshev collocation derivative. SIAM Journal of Scientific Computing, 16, 1253–1268.
Elliot, Ralph WV. Runes: An Introduction Praeger (1981)
Forth, S. A. (2006). An efficient overloaded implementation of forward mode automatic differentiation in MATLAB. ACM Transactions on Mathematical Software, 32(2), 195–222.
Lanczos, C. (1988). Applied analysis. Dover, New York, NY.
Lele, S. K. (1992). Compact finite difference schemes with spectral-like resolution. Journal of Computational Physics, 103(1), 16–42.
Lu, S., & Pereverzev, S. V. (2006). Numerical differentiation from a viewpoint of regularization theory. Mathematics of Computation, 75(256), 1853.
Lyness, J. N., & Moler, C. B. (1967). Numerical differentiation of analytic functions. SIAM Journal on Numerical Analysis, 4(2), 202–210.
Milne-Thomson, L. M. (1951). The calculus of finite differences (2nd ed., 1st ed. 1933). MacMillan and Company, London.
Olver, S., & Townsend, A. (2013). A fast and well-conditioned spectral method. SIAM Review, 55(3), 462–489.
Pettigrew, M. F., & Rasmussen, H. (1996). A compact method for second-order boundary value problems on nonuniform grids. Computers & Mathematics with Applications, 31(9), 1–16.
Rokicki, J., & Floryan, J. (1995). Domain decomposition and the compact fourth-order algorithm for the Navier–Stokes equations. Journal of Computational Physics, 116(1), 79–96.
Squire, W., & Trapp, G. (1998). Using complex variables to estimate derivatives of real functions. SIAM Review, 40(1), 110–112.
Trefethen, L. N. (2000). Spectral methods in MATLAB. Philadelphia: SIAM.
Trefethen, L. N. (2013). Approximation theory and approximation practice. Philadelphia: SIAM.
Weideman, J. A., & Reddy, S. C. (2000). A matlab differentiation matrix suite. ACM Transactions on Mathematical Software, 26, 465–519.
Zhao, J., Davison, M., & Corless, R. M. (2007). Compact finite difference method for American option pricing. Journal of Computational and Applied Mathematics, 206, 306–321.
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer Science+Business Media New York
About this chapter
Cite this chapter
Corless, R.M., Fillion, N. (2013). Numerical Differentiation and Finite Differences. In: A Graduate Introduction to Numerical Methods. Springer, New York, NY. https://doi.org/10.1007/978-1-4614-8453-0_11
Download citation
DOI: https://doi.org/10.1007/978-1-4614-8453-0_11
Published:
Publisher Name: Springer, New York, NY
Print ISBN: 978-1-4614-8452-3
Online ISBN: 978-1-4614-8453-0
eBook Packages: Mathematics and StatisticsMathematics and Statistics (R0)