English

Deutsch

Español

Français

Hrvatski

Italiano

Polski

Türkçe

Русский

中文

日本語

한국어

powered by CADENAS

Go to Article

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
(Learn how and when to remove this template message) |

In mathematics, **divided differences** is an algorithm, historically used for computing tables of logarithms and trigonometric functions.^{[citation needed]} Charles Babbage's difference engine, an early mechanical calculator, was designed to use this algorithm in its operation.^{[1]}

Divided differences is a recursive division process. The method can be used to calculate the coefficients in the interpolation polynomial in the Newton form.

Given *k+1* data points

- $(x_{0},y_{0}),\ldots ,(x_{k},y_{k})$

The **forward divided differences** are defined as:

- $[y_{\nu }]:=y_{\nu },\qquad \nu \in \{0,\ldots ,k\}$
- $[y_{\nu },\ldots ,y_{\nu +j}]:={\frac {[y_{\nu +1},\ldots ,y_{\nu +j}]-[y_{\nu },\ldots ,y_{\nu +j-1}]}{x_{\nu +j}-x_{\nu }}},\qquad \nu \in \{0,\ldots ,k-j\},\ j\in \{1,\ldots ,k\}.$

The **backward divided differences** are defined as:

- $[y_{\nu }]:=y_{\nu },\qquad \nu \in \{0,\ldots ,k\}$
- $[y_{\nu },\ldots ,y_{\nu -j}]:={\frac {[y_{\nu },\ldots ,y_{\nu -j+1}]-[y_{\nu -1},\ldots ,y_{\nu -j}]}{x_{\nu }-x_{\nu -j}}},\qquad \nu \in \{j,\ldots ,k\},\ j\in \{1,\ldots ,k\}.$

If the data points are given as a function *ƒ*,

- $(x_{0},f(x_{0})),\ldots ,(x_{k},f(x_{k}))$

one sometimes writes

- $f[x_{\nu }]:=f(x_{\nu }),\qquad \nu \in \{0,\ldots ,k\}$
- $f[x_{\nu },\ldots ,x_{\nu +j}]:={\frac {f[x_{\nu +1},\ldots ,x_{\nu +j}]-f[x_{\nu },\ldots ,x_{\nu +j-1}]}{x_{\nu +j}-x_{\nu }}},\qquad \nu \in \{0,\ldots ,k-j\},\ j\in \{1,\ldots ,k\}.$

Several notations for the divided difference of the function *ƒ* on the nodes *x*_{0}, ..., *x*_{n} are used:

- $[x_{0},\ldots ,x_{n}]f,$
- $[x_{0},\ldots ,x_{n};f],$
- $D[x_{0},\ldots ,x_{n}]f$

etc.

Divided differences for $\nu =0$ and the first few values of $j$:

- ${\begin{aligned}{\mathopen {[}}y_{0}]&=y_{0}\\{\mathopen {[}}y_{0},y_{1}]&={\frac {y_{1}-y_{0}}{x_{1}-x_{0}}}\\{\mathopen {[}}y_{0},y_{1},y_{2}]&={\frac {{\mathopen {[}}y_{1},y_{2}]-{\mathopen {[}}y_{0},y_{1}]}{x_{2}-x_{0}}}={\frac {{\frac {y_{2}-y_{1}}{x_{2}-x_{1}}}-{\frac {y_{1}-y_{0}}{x_{1}-x_{0}}}}{x_{2}-x_{0}}}={\frac {y_{2}-y_{1}}{(x_{2}-x_{1})(x_{2}-x_{0})}}-{\frac {y_{1}-y_{0}}{(x_{1}-x_{0})(x_{2}-x_{0})}}\\{\mathopen {[}}y_{0},y_{1},y_{2},y_{3}]&={\frac {{\mathopen {[}}y_{1},y_{2},y_{3}]-{\mathopen {[}}y_{0},y_{1},y_{2}]}{x_{3}-x_{0}}}\end{aligned}}$

To make the recursive process more clear, the divided differences can be put in a tabular form:

- ${\begin{matrix}x_{0}&y_{0}=[y_{0}]&&&\\&&[y_{0},y_{1}]&&\\x_{1}&y_{1}=[y_{1}]&&[y_{0},y_{1},y_{2}]&\\&&[y_{1},y_{2}]&&[y_{0},y_{1},y_{2},y_{3}]\\x_{2}&y_{2}=[y_{2}]&&[y_{1},y_{2},y_{3}]&\\&&[y_{2},y_{3}]&&\\x_{3}&y_{3}=[y_{3}]&&&\\\end{matrix}}$

- $(f+g)[x_{0},\dots ,x_{n}]=f[x_{0},\dots ,x_{n}]+g[x_{0},\dots ,x_{n}]$
- $(\lambda \cdot f)[x_{0},\dots ,x_{n}]=\lambda \cdot f[x_{0},\dots ,x_{n}]$

- $(f\cdot g)[x_{0},\dots ,x_{n}]=f[x_{0}]\cdot g[x_{0},\dots ,x_{n}]+f[x_{0},x_{1}]\cdot g[x_{1},\dots ,x_{n}]+\dots +f[x_{0},\dots ,x_{n}]\cdot g[x_{n}]$

- Divided differences are symmetric: If $\sigma :\{0,\dots ,n\}\to \{0,\dots ,n\}$ is a permutation then

- $f[x_{0},\dots ,x_{n}]=f[x_{\sigma (0)},\dots ,x_{\sigma (n)}]$

- From the mean value theorem for divided differences it follows that

- $f[x_{0},\dots ,x_{n}]={\frac {f^{(n)}(\xi )}{n!}}$ where $\xi$ is in the open interval determined by the smallest and largest of the $x_{k}$'s.

The divided difference scheme can be put into an upper triangular matrix. Let $T_{f}(x_{0},\dots ,x_{n})={\begin{pmatrix}f[x_{0}]&f[x_{0},x_{1}]&f[x_{0},x_{1},x_{2}]&\ldots &f[x_{0},\dots ,x_{n}]\\0&f[x_{1}]&f[x_{1},x_{2}]&\ldots &f[x_{1},\dots ,x_{n}]\\\vdots &\vdots &\vdots &\ddots &\vdots \\0&0&0&\ldots &f[x_{n}]\end{pmatrix}}$.

Then it holds

- $T_{f+g}x=T_{f}x+T_{g}x$
- $T_{f\cdot g}x=T_{f}x\cdot T_{g}x$

- This follows from the Leibniz rule. It means that multiplication of such matrices is commutative. Summarised, the matrices of divided difference schemes with respect to the same set of nodes form a commutative ring.

- Since $T_{f}x$ is a triangular matrix, its eigenvalues are obviously $f(x_{0}),\dots ,f(x_{n})$.
- Let $\delta _{\xi }$ be a Kronecker delta-like function, that is

- $\delta _{\xi }(t)={\begin{cases}1&:t=\xi ,\\0&:{\mbox{else}}.\end{cases}}$

- Obviously $f\cdot \delta _{\xi }=f(\xi )\cdot \delta _{\xi }$, thus $\delta _{\xi }$ is an eigenfunction of the pointwise function multiplication. That is $T_{\delta _{x_{i}}}x$ is somehow an "eigenmatrix" of $T_{f}x$: $T_{f}x\cdot T_{\delta _{x_{i}}}x=f(x_{i})\cdot T_{\delta _{x_{i}}}x$. However, all columns of $T_{\delta _{x_{i}}}x$ are multiples of each other, the matrix rank of $T_{\delta _{x_{i}}}x$ is 1. So you can compose the matrix of all eigenvectors from the $i$-th column of each $T_{\delta _{x_{i}}}x$. Denote the matrix of eigenvectors with $Ux$. Example
- $U(x_{0},x_{1},x_{2},x_{3})={\begin{pmatrix}1&{\frac {1}{(x_{1}-x_{0})}}&{\frac {1}{(x_{2}-x_{0})\cdot (x_{2}-x_{1})}}&{\frac {1}{(x_{3}-x_{0})\cdot (x_{3}-x_{1})\cdot (x_{3}-x_{2})}}\\0&1&{\frac {1}{(x_{2}-x_{1})}}&{\frac {1}{(x_{3}-x_{1})\cdot (x_{3}-x_{2})}}\\0&0&1&{\frac {1}{(x_{3}-x_{2})}}\\0&0&0&1\end{pmatrix}}$

- The diagonalization of $T_{f}x$ can be written as
- $Ux\cdot \operatorname {diag} (f(x_{0}),\dots ,f(x_{n}))=T_{f}x\cdot Ux$.

${\begin{aligned}f[x_{0}]&=f(x_{0})\\f[x_{0},x_{1}]&={\frac {f(x_{0})}{(x_{0}-x_{1})}}+{\frac {f(x_{1})}{(x_{1}-x_{0})}}\\f[x_{0},x_{1},x_{2}]&={\frac {f(x_{0})}{(x_{0}-x_{1})\cdot (x_{0}-x_{2})}}+{\frac {f(x_{1})}{(x_{1}-x_{0})\cdot (x_{1}-x_{2})}}+{\frac {f(x_{2})}{(x_{2}-x_{0})\cdot (x_{2}-x_{1})}}\\f[x_{0},x_{1},x_{2},x_{3}]&={\frac {f(x_{0})}{(x_{0}-x_{1})\cdot (x_{0}-x_{2})\cdot (x_{0}-x_{3})}}+{\frac {f(x_{1})}{(x_{1}-x_{0})\cdot (x_{1}-x_{2})\cdot (x_{1}-x_{3})}}+{\frac {f(x_{2})}{(x_{2}-x_{0})\cdot (x_{2}-x_{1})\cdot (x_{2}-x_{3})}}+\\&\quad \quad {\frac {f(x_{3})}{(x_{3}-x_{0})\cdot (x_{3}-x_{1})\cdot (x_{3}-x_{2})}}\\f[x_{0},\dots ,x_{n}]&=\sum _{j=0}^{n}{\frac {f(x_{j})}{\prod _{k\in \{0,\dots ,n\}\setminus \{j\}}(x_{j}-x_{k})}}\end{aligned}}$

With the help of a polynomial function $q$ with $q(\xi )=(\xi -x_{0})\cdots (\xi -x_{n})$ this can be written as

- $f[x_{0},\dots ,x_{n}]=\sum _{j=0}^{n}{\frac {f(x_{j})}{q'(x_{j})}}.$

Alternatively, we can allow counting backwards from the start of the sequence by defining $x_{k}=x_{k+n+1}=x_{k-(n+1)}$ whenever $k<0$ or $n<k$. This definition allows $x_{-1}$ to be interpreted as $x_{n}$, $x_{-2}$ to be interpreted as $x_{n-1}$, $x_{-n}$ to be interpreted as $x_{0}$, etc. The expanded form of the divided difference thus becomes

$f[x_{0},\dots ,x_{n}]=\sum _{j=0}^{n}{\frac {f(x_{j})}{\prod \limits _{k=j-n}^{j-1}(x_{j}-x_{k})}}+\sum _{j=0}^{n}{\frac {f(x_{j})}{\prod \limits _{k=j+1}^{j+n}(x_{j}-x_{k})}}$

Yet another characterization utilizes limits:

$f[x_{0},\dots ,x_{n}]=\sum _{j=0}^{n}\lim _{x\rightarrow x_{j}}\left[{\frac {f(x_{j})(x-x_{j})}{\prod \limits _{k=0}^{n}(x-x_{k})}}\right]$

You can represent partial fractions using the expanded form of divided differences. (This does not simplify computation, but is interesting in itself.) If $p$ and $q$ are polynomial functions, where $\mathrm {deg} \ p<\mathrm {deg} \ q$ and $q$ is given in terms of linear factors by $q(\xi )=(\xi -x_{1})\cdot \dots \cdot (\xi -x_{n})$, then it follows from partial fraction decomposition that

- ${\frac {p(\xi )}{q(\xi )}}=\left(t\to {\frac {p(t)}{\xi -t}}\right)[x_{1},\dots ,x_{n}].$

If limits of the divided differences are accepted, then this connection does also hold, if some of the $x_{j}$ coincide.

If $f$ is a polynomial function with arbitrary degree and it is decomposed by $f(x)=p(x)+q(x)\cdot d(x)$ using polynomial division of $f$ by $q$, then

- ${\frac {p(\xi )}{q(\xi )}}=\left(t\to {\frac {f(t)}{\xi -t}}\right)[x_{1},\dots ,x_{n}].$

The divided differences can be expressed as

- $f[x_{0},\ldots ,x_{n}]={\frac {1}{n!}}\int _{x_{0}}^{x_{n}}f^{(n)}(t)B_{n-1}(t)\,dt$

where $B_{n-1}$ is a B-spline of degree $n-1$ for the data points $x_{0},\dots ,x_{n}$ and $f^{(n)}$ is the $n$-th derivative of the function $f$.

This is called the **Peano form** of the divided differences and $B_{n-1}$ is called the Peano kernel for the divided differences, both named after Giuseppe Peano.

If nodes are cumulated, then the numerical computation of the divided differences is inaccurate, because you divide almost two zeros, each of which with a high relative error due to differences of similar values. However we know, that difference quotients approximate the derivative and vice versa:

- ${\frac {f(y)-f(x)}{y-x}}\approx f'(x)$ for $x\approx y$

This approximation can be turned into an identity whenever Taylor's theorem applies.

- $f(y)=f(x)+f'(x)\cdot (y-x)+f''(x)\cdot {\frac {(y-x)^{2}}{2!}}+f'''(x)\cdot {\frac {(y-x)^{3}}{3!}}+\dots$
- $\Rightarrow {\frac {f(y)-f(x)}{y-x}}=f'(x)+f''(x)\cdot {\frac {y-x}{2!}}+f'''(x)\cdot {\frac {(y-x)^{2}}{3!}}+\dots$

You can eliminate the odd powers of $y-x$ by expanding the Taylor series at the center between $x$ and $y$:

- $x=m-h,y=m+h$, that is $m={\frac {x+y}{2}},h={\frac {y-x}{2}}$
- $f(m+h)=f(m)+f'(m)\cdot h+f''(m)\cdot {\frac {h^{2}}{2!}}+f'''(m)\cdot {\frac {h^{3}}{3!}}+\dots$
- $f(m-h)=f(m)-f'(m)\cdot h+f''(m)\cdot {\frac {h^{2}}{2!}}-f'''(m)\cdot {\frac {h^{3}}{3!}}+\dots$
- ${\frac {f(y)-f(x)}{y-x}}={\frac {f(m+h)-f(m-h)}{2\cdot h}}=f'(m)+f'''(m)\cdot {\frac {h^{2}}{3!}}+\dots$

The Taylor series or any other representation with function series can in principle be used to approximate divided differences. Taylor series are infinite sums of power functions. The mapping from a function $f$ to a divided difference $f[x_{0},\dots ,x_{n}]$ is a linear functional. We can as well apply this functional to the function summands.

Express power notation with an ordinary function: $p_{n}(x)=x^{n}.$

Regular Taylor series is a weighted sum of power functions: $f=f(0)\cdot p_{0}+f'(0)\cdot p_{1}+{\frac {f''(0)}{2!}}\cdot p_{2}+{\frac {f'''(0)}{3!}}\cdot p_{3}+\dots$

Taylor series for divided differences: $f[x_{0},\dots ,x_{n}]=f(0)\cdot p_{0}[x_{0},\dots ,x_{n}]+f'(0)\cdot p_{1}[x_{0},\dots ,x_{n}]+{\frac {f''(0)}{2!}}\cdot p_{2}[x_{0},\dots ,x_{n}]+{\frac {f'''(0)}{3!}}\cdot p_{3}[x_{0},\dots ,x_{n}]+\dots$

We know that the first $n$ terms vanish, because we have a higher difference order than polynomial order, and in the following term the divided difference is one:

- ${\begin{array}{llcl}\forall j<n&p_{j}[x_{0},\dots ,x_{n}]&=&0\\&p_{n}[x_{0},\dots ,x_{n}]&=&1\\&p_{n+1}[x_{0},\dots ,x_{n}]&=&x_{0}+\dots +x_{n}\\&p_{n+m}[x_{0},\dots ,x_{n}]&=&\sum _{a\in \{0,\dots ,n\}^{m}{\text{ with }}a_{1}\leq a_{2}\leq \dots \leq a_{m}}\prod _{j\in a}x_{j}.\\\end{array}}$

It follows that the Taylor series for the divided difference essentially starts with ${\frac {f^{(n)}(0)}{n!}}$ which is also a simple approximation of the divided difference, according to the mean value theorem for divided differences.

If we would have to compute the divided differences for the power functions in the usual way, we would encounter the same numerical problems that we had when computing the divided difference of $f$. The nice thing is, that there is a simpler way. It holds

- $t^{n}=(1-x_{0}\cdot t)\dots \cdot (1-x_{n}\cdot t)\cdot (p_{0}[x_{0},\dots ,x_{n}]+p_{1}[x_{0},\dots ,x_{n}]\cdot t+p_{2}[x_{0},\dots ,x_{n}]\cdot t^{2}+\dots ).$

Consequently, we can compute the divided differences of $p_{n}$ by a division of formal power series. See how this reduces to the successive computation of powers when we compute $p_{n}[h]$ for several $n$.

If you need to compute a whole divided difference scheme with respect to a Taylor series, see the section about divided differences of power series.

Divided differences of polynomials are particularly interesting, because they can benefit from the Leibniz rule. The matrix $J$ with

- $J={\begin{pmatrix}x_{0}&1&0&0&\cdots &0\\0&x_{1}&1&0&\cdots &0\\0&0&x_{2}&1&&0\\\vdots &\vdots &&\ddots &\ddots &\\0&0&0&0&&x_{n}\end{pmatrix}}$

contains the divided difference scheme for the identity function with respect to the nodes $x_{0},\dots ,x_{n}$, thus $J^{n}$ contains the divided differences for the power function with exponent $n$. Consequently, you can obtain the divided differences for a polynomial function $\varphi (p)$ with respect to the polynomial $p$ by applying $p$ (more precisely: its corresponding matrix polynomial function $\varphi _{\mathrm {M} }(p)$) to the matrix $J$.

- $\varphi (p)(\xi )=a_{0}+a_{1}\cdot \xi +\dots +a_{n}\cdot \xi ^{n}$
- $\varphi _{\mathrm {M} }(p)(J)=a_{0}+a_{1}\cdot J+\dots +a_{n}\cdot J^{n}$
- $={\begin{pmatrix}\varphi (p)[x_{0}]&\varphi (p)[x_{0},x_{1}]&\varphi (p)[x_{0},x_{1},x_{2}]&\ldots &\varphi (p)[x_{0},\dots ,x_{n}]\\0&\varphi (p)[x_{1}]&\varphi (p)[x_{1},x_{2}]&\ldots &\varphi (p)[x_{1},\dots ,x_{n}]\\\vdots &\ddots &\ddots &\ddots &\vdots \\0&\ldots &0&0&\varphi (p)[x_{n}]\end{pmatrix}}$

This is known as *Opitz' formula*.^{[2]}
^{[3]}

Now consider increasing the degree of $p$ to infinity, i.e. turn the Taylor polynomial to a Taylor series. Let $f$ be a function which corresponds to a power series. You can compute a divided difference scheme by computing the according matrix series applied to $J$. If the nodes $x_{0},\dots ,x_{n}$ are all equal, then $J$ is a Jordan block and computation boils down to generalizing a scalar function to a matrix function using Jordan decomposition.

Further information: Finite difference

When the data points are equidistantly distributed we get the special case called **forward differences**. They are easier to calculate than the more general divided differences.

Note that the "divided portion" from **forward divided difference** must still be computed, to recover the **forward divided difference** from the **forward difference**.

Given *n* data points

- $(x_{0},y_{0}),\ldots ,(x_{n-1},y_{n-1})$

with

- $x_{\nu }=x_{0}+\nu h,\ h>0,\ \nu =0,\ldots ,n-1$

the divided differences can be calculated via **forward differences** defined as

- $\Delta ^{(0)}y_{i}:=y_{i}$
- $\Delta ^{(k)}y_{i}:=\Delta ^{(k-1)}y_{i+1}-\Delta ^{(k-1)}y_{i},\ k\geq 1.$

The relationship between divided differences and forward differences is^{[4]}

- $f[x_{0},x_{1},\ldots ,x_{k}]={\frac {1}{k!h^{k}}}\Delta ^{(k)}f(x_{0}).$

- ${\begin{matrix}y_{0}&&&\\&\Delta y_{0}&&\\y_{1}&&\Delta ^{2}y_{0}&\\&\Delta y_{1}&&\Delta ^{3}y_{0}\\y_{2}&&\Delta ^{2}y_{1}&\\&\Delta y_{2}&&\\y_{3}&&&\\\end{matrix}}$

ArithmeticDifference engineDifferential (mechanical device)Fibonacci numberInternational Article Number

This article uses material from the Wikipedia article "Divided differences", which is released under the Creative Commons Attribution-Share-Alike License 3.0. There is a list of all authors in Wikipedia

3d,cad,model,library,download,drawing,step,cad blocks,basics,university,highschool,college,grammer school,statistics,3dprinted

Share