# Finite difference

A **finite difference** is a mathematical expression of the form *f* (*x* + *b*) − *f* (*x* + *a*). If a finite difference is divided by *b* − *a*, one gets a difference quotient. The approximation of derivatives by finite differences plays a central role in finite difference methods for the numerical solution of differential equations, especially boundary value problems.

Certain recurrence relations can be written as **difference equations** by replacing iteration notation with finite differences.

Today, the term "finite difference" is often taken as synonymous with finite difference approximations of derivatives, especially in the context of numerical methods.^{[1]}^{[2]}^{[3]} Finite difference approximations are finite difference quotients in the terminology employed above.

Finite differences were introduced by Brook Taylor in 1715 and have also been studied as abstract self-standing mathematical objects in works by George Boole (1860), L. M. Milne-Thomson (1933), and Károly Jordan (1939). Finite differences trace their origins back to one of Jost Bürgi's algorithms (c. 1592) and work by others including Isaac Newton. The formal calculus of finite differences can be viewed as an alternative to the calculus of infinitesimals.^{[4]}

## Contents

- 1 Forward, backward, and central differences
- 2 Relation with derivatives
- 3 Higher-order differences
- 4 Finite difference methods
- 5 Newton's series
- 6 Calculus of finite differences
- 7 Rules for calculus of finite difference operators
- 8 Generalizations
- 9 Finite difference in several variables
- 10 See also
- 11 References
- 12 External links

## Forward, backward, and central differences[edit]

Three forms are commonly considered: forward, backward, and central differences.^{[1]}^{[2]}^{[3]}

A **forward difference** is an expression of the form

Depending on the application, the spacing h may be variable or constant. When omitted, h is taken to be 1: Δ[ *f* ](*x*) = Δ_{1}[ *f* ](*x*).

A **backward difference** uses the function values at x and *x* − *h*, instead of the values at *x* + *h* and x:

Finally, the **central difference** is given by

## Relation with derivatives[edit]

The derivative of a function f at a point x is defined by the limit.

If h has a fixed (non-zero) value instead of approaching zero, then the right-hand side of the above equation would be written

Hence, the forward difference divided by h approximates the derivative when h is small. The error in this approximation can be derived from Taylor's theorem. Assuming that f is differentiable, we have

The same formula holds for the backward difference:

However, the central (also called centered) difference yields a more accurate approximation. If f is twice differentiable,

The main problem^{[citation needed]} with the central difference method, however, is that oscillating functions can yield zero derivative. If *f* (*nh*) = 1 for n odd, and *f* (*nh*) = 2 for n even, then *f* ′(*nh*) = 0 if it is calculated with the central difference scheme. This is particularly troublesome if the domain of f is discrete.

Authors for whom finite differences mean finite difference approximations define the forward/backward/central differences as the quotients given in this section (instead of employing the definitions given in the previous section).^{[1]}^{[2]}^{[3]}

## Higher-order differences[edit]

This article needs additional citations for verification. (July 2018) (Learn how and when to remove this template message) |

In an analogous way, one can obtain finite difference approximations to higher order derivatives and differential operators. For example, by using the above central difference formula for *f* ′(*x* + *h*/2) and *f* ′(*x* − *h*/2) and applying a central difference formula for the derivative of *f* ′ at x, we obtain the central difference approximation of the second derivative of f:

- Second-order central

Similarly we can apply other differencing formulas in a recursive manner.

- Second order forward

- Second order backward

More generally, the **nth order forward, backward, and central** differences are given by, respectively,

- Forward

or for *h* = 1,

- Backward

- Central

These equations use binomial coefficients after the summation sign shown as (^{n}_{i}). Each row of Pascal's triangle provides the coefficient for each value of i.

Note that the central difference will, for odd n, have h multiplied by non-integers. This is often a problem because it amounts to changing the interval of discretization; the problem may be remedied taking the average of *δ ^{n}*[

*f*](

*x*−

*h*/2) and

*δ*[

^{n}*f*](

*x*+

*h*/2).

Forward differences applied to a sequence are sometimes called the binomial transform of the sequence, and have a number of interesting combinatorial properties. Forward differences may be evaluated using the Nörlund–Rice integral; the integral representation for these types of series is interesting, because the integral can often be evaluated using asymptotic expansion or saddle-point techniques; by contrast, the forward difference series can be extremely hard to evaluate numerically, because the binomial coefficients grow rapidly for large n.

The relationship of these higher-order differences with the respective derivatives is straightforward,

Higher-order differences can also be used to construct better approximations; as mentioned above, the first-order difference approximates the first-order derivative up to a term of order h. However, the combination

approximates *f* ′(*x*) up to a term of order *h*^{2}. This can be proven by expanding the above expression in Taylor series, or by using the calculus of finite differences, explained below.

If necessary, the finite difference can be centered about any point by mixing forward, backward, and central differences.

### Arbitrarily sized kernels[edit]

Using linear algebra one can construct finite difference approximations which utilize an arbitrary number of points to the left and a (possibly different) number of points to the right of the evaluation point, for any order derivative; this involves solving a linear system such that the Taylor expansion of the sum of those points around the evaluation point best approximates the Taylor expansion of the desired derivative. Such formulas can be represented graphically on a hexagonal or diamond-shaped grid.^{[5]}

This is useful for differentiating a function on a grid, where, as one approaches the edge of the grid, one must sample fewer and fewer points on one side.

The details are outlined in these notes.

The Finite Difference Coefficients Calculator constructs finite difference approximations for non-standard (and even non-integer) stencils given an arbitrary stencil and a desired derivative order.

### Properties[edit]

- For all positive k and n

## Finite difference methods[edit]

An important application of finite differences is in numerical analysis, especially in numerical differential equations, which aim at the numerical solution of ordinary and partial differential equations respectively; the idea is to replace the derivatives appearing in the differential equation by finite differences that approximate them. The resulting methods are called finite difference methods.

Common applications of the finite difference method are in computational science and engineering disciplines, such as thermal engineering, fluid mechanics, etc.

An open Python package of the finite difference method for arbitrary accuracy and order in any dimension on uniform and non-uniform grids is the Findiff project.

## Newton's series[edit]

The **Newton series** consists of the terms of the **Newton forward difference equation**, named after Isaac Newton; in essence, it is the **Newton interpolation formula**, first published in his *Principia Mathematica* in 1687,^{[6]} namely the discrete analog of the continuum Taylor expansion,

which holds for any polynomial function f and for many (but not all) analytic functions (It does not hold when f is exponential type . This is easily seen, as the sine function vanishes at integer multiples of ; the corresponding Newton series is identically zero, as all finite differences are zero in this case. Yet clearly, the sine function is not zero.). Here, the expression

is the binomial coefficient, and

is the "falling factorial" or "lower factorial", while the empty product (*x*)_{0} is defined to be 1. In this particular case, there is an assumption of unit steps for the changes in the values of *x*, *h* = 1 of the generalization below.

Note the formal correspondence of this result to Taylor's theorem. Historically, this, as well as the Chu–Vandermonde identity,

(following from it, and corresponding to the binomial theorem), are included in the observations that matured to the system of umbral calculus.

To illustrate how one may use Newton's formula in actual practice, consider the first few terms of doubling the Fibonacci sequence *f* = 2, 2, 4, ... One can find a polynomial that reproduces these values, by first computing a difference table, and then substituting the differences that correspond to *x*_{0} (underlined) into the formula as follows,

For the case of nonuniform steps in the values of x, Newton computes the divided differences,

the series of products,

and the resulting polynomial is the scalar product,^{[7]}

- .

In analysis with p-adic numbers, Mahler's theorem states that the assumption that f is a polynomial function can be weakened all the way to the assumption that f is merely continuous.

Carlson's theorem provides necessary and sufficient conditions for a Newton series to be unique, if it exists. However, a Newton series does not, in general, exist.

The Newton series, together with the Stirling series and the Selberg series, is a special case of the general difference series, all of which are defined in terms of suitably scaled forward differences.

In a compressed and slightly more general form and equidistant nodes the formula reads

## Calculus of finite differences[edit]

The forward difference can be considered as an operator, called the **difference operator**, which maps the function f to Δ_{h}[ *f* ].^{[8]}^{[9]} This operator amounts to

where *T*_{h} is the shift operator with step *h*, defined by *T*_{h}[ *f* ](*x*) = *f* (*x* + *h*), and I is the identity operator.

The finite difference of higher orders can be defined in recursive manner as Δ^{n}_{h} ≡ Δ_{h}(Δ^{n − 1}_{h}). Another equivalent definition is Δ^{n}_{h} = [*T*_{h} − *I*]^{n}.

The difference operator Δ_{h} is a linear operator, as such it satisfies Δ_{h}[*αf* + *βg*](*x*) = *α* Δ_{h}[ *f* ](*x*) + *β* Δ_{h}[*g*](*x*).

It also satisfies a special Leibniz rule indicated above,
Δ_{h}(*f* (*x*)*g*(*x*)) = (Δ_{h}*f* (*x*)) *g*(*x*+*h*) + *f* (*x*) (Δ_{h}*g*(*x*)). Similar statements hold for the backward and central differences.

Formally applying the Taylor series with respect to h, yields the formula

where D denotes the continuum derivative operator, mapping f to its derivative *f* ′. The expansion is valid when both sides act on analytic functions, for sufficiently small h. Thus, *T*_{h} = *e*^{hD}, and formally inverting the exponential yields

This formula holds in the sense that both operators give the same result when applied to a polynomial.

Even for analytic functions, the series on the right is not guaranteed to converge; it may be an asymptotic series. However, it can be used to obtain more accurate approximations for the derivative. For instance, retaining the first two terms of the series yields the second-order approximation to *f* ′(*x*) mentioned at the end of the section *Higher-order differences*.

The analogous formulas for the backward and central difference operators are

The calculus of finite differences is related to the umbral calculus of combinatorics; this remarkably systematic correspondence is due to the identity of the commutators of the umbral quantities to their continuum analogs (*h* → 0 limits),

A large number of formal differential relations of standard calculus involving
functions *f* (*x*) thus *map systematically to umbral finite-difference analogs* involving *f* (*xT*^{−1}_{h}).

For instance, the umbral analog of a monomial x^{n} is a generalization of the above falling factorial (Pochhammer k-symbol),

so that

hence the above Newton interpolation formula (by matching coefficients in the expansion of an arbitrary function *f* (*x*) in such symbols), and so on.

For example, the umbral sine is

As in the continuum limit, the eigenfunction of Δ_{h}/*h* also happens to be an exponential,

and hence *Fourier sums of continuum functions are readily mapped to umbral Fourier sums faithfully*, i.e., involving the same Fourier coefficients multiplying these umbral basis exponentials.^{[10]} This umbral exponential thus amounts to the exponential generating function of the Pochhammer symbols.

Thus, for instance, the Dirac delta function maps to its umbral correspondent, the cardinal sine function,

and so forth.^{[11]} Difference equations can often be solved with techniques very similar to those for solving differential equations.

The inverse operator of the forward difference operator, so then the umbral integral, is the indefinite sum or antidifference operator.

## Rules for calculus of finite difference operators[edit]

Analogous to rules for finding the derivative, we have:

**Constant rule**: If c is a constant, then

All of the above rules apply equally well to any difference operator, including ∇ as to Δ.

- or

See references.^{[12]}^{[13]}^{[14]}^{[15]}

## Generalizations[edit]

- A
**generalized finite difference**is usually defined as

where *μ* = (*μ*_{0},… *μ _{N}*) is its coefficient vector. An

**infinite difference**is a further generalization, where the finite sum above is replaced by an infinite series. Another way of generalization is making coefficients

*μ*depend on point x:

_{k}*μ*=

_{k}*μ*(

_{k}*x*), thus considering

**weighted finite difference**. Also one may make the step h depend on point x:

*h*=

*h*(

*x*). Such generalizations are useful for constructing different modulus of continuity.

- The generalized difference can be seen as the polynomial rings
*R*[*T*]. It leads to difference algebras._{h} - Difference operator generalizes to Möbius inversion over a partially ordered set.
- As a convolution operator: Via the formalism of incidence algebras, difference operators and other Möbius inversion can be represented by convolution with a function on the poset, called the Möbius function μ; for the difference operator, μ is the sequence (1, −1, 0, 0, 0, ...).

## Finite difference in several variables[edit]

Finite differences can be considered in more than one variable, they are analogous to partial derivatives in several variables.

Some partial derivative approximations are:

Alternatively, for applications in which the computation of f is the most costly step, and both first and second derivatives must be computed, a more efficient formula for the last case is

since the only values to compute that are not already needed for the previous four equations are *f* (*x* + *h*, *y* + *k*) and *f* (*x* − *h*, *y* − *k*).

## See also[edit]

- Arc elasticity
- Carlson's theorem
- Central differencing scheme
- Divided differences
- Finite difference coefficients
- Finite difference method
- Finite volume method
- Five-point stencil
- Gilbreath's conjecture
- Lagrange polynomial
- Modulus of continuity
- Multiplicative calculus
- Newton polynomial
- Nörlund–Rice integral
- Numerical differentiation
- Sheffer sequence
- Summation by parts
- Table of Newtonian series
- Taylor series
- Time scale calculus
- Umbral calculus
- Upwind differencing scheme for convection

## References[edit]

- ^
^{a}^{b}^{c}Paul Wilmott; Sam Howison; Jeff Dewynne (1995).*The Mathematics of Financial Derivatives: A Student Introduction*. Cambridge University Press. p. 137. ISBN 978-0-521-49789-3. - ^
^{a}^{b}^{c}Peter Olver (2013).*Introduction to Partial Differential Equations*. Springer Science & Business Media. p. 182. ISBN 978-3-319-02099-0. - ^
^{a}^{b}^{c}M Hanif Chaudhry (2007).*Open-Channel Flow*. Springer. p. 369. ISBN 978-0-387-68648-6. **^**Jordán, op. cit., p. 1 and Milne-Thomson, p. xxi. Milne-Thomson, Louis Melville (2000):*The Calculus of Finite Differences*(Chelsea Pub Co, 2000) ISBN 978-0821821077**^**Fraser, Duncan C. (January 1, 1909). "On the Graphic Delineation of Interpolation Formulæ".*Journal of the Institute of Actuaries*.**43**(2): 235–241. Retrieved April 17, 2017.**^**Newton, Isaac, (1687).*Principia*, Book III, Lemma V, Case 1**^**Richtmeyer, D. and Morton, K.W., (1967).*Difference Methods for Initial Value Problems*, 2nd ed., Wiley, New York.**^**Boole, George, (1872).*A Treatise On The Calculus of Finite Differences*, 2nd ed., Macmillan and Company. On line. Also, [Dover edition 1960]**^**Jordan, Charles, (1939/1965). "Calculus of Finite Differences", Chelsea Publishing. On-line: [1]**^**Zachos, C. (2008). "Umbral Deformations on Discrete Space-Time".*International Journal of Modern Physics A*.**23**(13): 2005–2014. arXiv:0710.2306. Bibcode:2008IJMPA..23.2005Z. doi:10.1142/S0217751X08040548.**^**Curtright, T. L.; Zachos, C. K. (2013). "Umbral Vade Mecum".*Frontiers in Physics*.**1**. arXiv:1304.0429. Bibcode:2013FrP.....1...15C. doi:10.3389/fphy.2013.00015.**^**Levy, H.; Lessman, F. (1992).*Finite Difference Equations*. Dover. ISBN 0-486-67260-3.**^**Ames, W. F., (1977).*Numerical Methods for Partial Differential Equations*, Section 1.6. Academic Press, New York. ISBN 0-12-056760-1.**^**Hildebrand, F. B., (1968).*Finite-Difference Equations and Simulations*, Section 2.2, Prentice-Hall, Englewood Cliffs, New Jersey.**^**Flajolet, Philippe; Sedgewick, Robert (1995). "Mellin transforms and asymptotics: Finite differences and Rice's integrals" (PDF).*Theoretical Computer Science*.**144**(1–2): 101–124. doi:10.1016/0304-3975(94)00281-M.

- Richardson, C. H. (1954):
*An Introduction to the Calculus of Finite Differences*(Van Nostrand (1954)*online copy* - Mickens, R. E. (1991):
*Difference Equations: Theory and Applications*(Chapman and Hall/CRC) ISBN 978-0442001360

## External links[edit]

- Hazewinkel, Michiel, ed. (2001) [1994], "Finite-difference calculus",
*Encyclopedia of Mathematics*, Springer Science+Business Media B.V. / Kluwer Academic Publishers, ISBN 978-1-55608-010-4 - Table of useful finite difference formula generated using Mathematica
- D. Gleich (2005),
*Finite Calculus: A Tutorial for Solving Nasty Sums* - Discrete Second Derivative from Unevenly Spaced Points