logo

Derivation of Newton's Forward Difference Formula 📂Numerical Analysis

Derivation of Newton's Forward Difference Formula

Formulas

For different data x0,,xnx_{0} , \cdots , x_{n} of (x0,f(x0)),,(xn,f(xn))(x_{0}, f(x_{0} )) , \cdots , (x_{n} , f( x_{n} ) ), pn(x)=i=0nf[x0,,xi]j=0i1(xxj) p_{n} (x) =\sum_{i=0}^{n} f [ x_{0} , \cdots , x_{i} ] \prod_{j=0}^{i-1} (x - x_{j} )

Description

Though it seems complicated, when actually expanding for n=0,1,2n=0,1,2, it simplifies as follows. p0(x)=f(x0)p1(x)=f(x0)+(xx0)f[x0,x1]p2(x)=f(x0)+(xx0)f[x0,x1]+(xx0)(xx1)f[x0,x1,x2] \begin{align*} p_{0} (x) =& f(x_{0}) \\ p_{1} (x) =& f( x_{0} ) + (x - x_{0} ) f [ x_{0} , x_{1} ] \\ p_{2} (x) =& f( x_{0} ) + (x - x_{0} ) f [ x_{0} , x_{1} ] + ( x - x_{0} ) ( x - x_{1} ) f [ x_{0} , x_{1} , x_{2} ] \end{align*} Newton’s divided differences formula uses divided differences for representing polynomial interpolation, and although it seems more complex than Lagrange’s formula, it’s much more convenient when data needs to be updated. Newton’s divided differences formula recursively expresses as pn(x)=pn1(x)+f[x0,,xn]i=0n1(xxi) p_{n} (x) = p_{n-1}(x) + f[x_{0} , \cdots , x_{n} ] \prod_{i=0}^{n-1} (x - x_{i}) which means, if only Lagrange’s formula existed, one would need to go through the trouble of calculating the inverse matrix of size (n+1)×(n+1)(n+1) \times (n+1) again even though pn1p_{n-1} is already known. Regardless of the calculation method, the result is exactly the same as Lagrange’s formula, so if there is not much data added, Newton’s divided differences formula can be very useful.

Moreover, by utilizing the fact that it is exactly the same but looks different from Lagrange’s formula, various useful theorems about divided differences can be proven.

Derivation

Strategy: If the difference between pnp_{n} and pn1p_{n-1} is called CC, then the highest-order term coefficients of pnp_{n} and CC must be the same, so by calculating the coefficient of CC indirectly, the recursion formula is derived.


If it is said that pn(x)=pn1(x)+C(x) p_{n}(x) = p_{n-1}(x) + C(x) , then degC=n\deg C = n and for i=0,,(n1)i= 0, \cdots, (n-1), pn(xi)=f(xi)=pn1(xi) p_{n}(x_{i}) = f(x_{i}) = p_{n-1}(x_{i}) thus for some constant an0a_{n} \ne 0, C(x)=an(xx0)(xxn1) C (x) = a_{n} (x - x_{0}) \cdots (x - x_{n-1}) appears like this. Since the highest order terms of pnp_{n} and CC are the same, it needs to be shown that an=f[x0,,xn]a_{n} = f [ x_{0} , \cdots , x_{n}] holds. Let’s say polynomial interpolation obtained from data {x0,,xk}\left\{ x_{0}, \cdots , x_{k} \right\} with xkx_{k} removed is {x0,,xk1}\left\{ x_{0}, \cdots , x_{k-1} \right\} and the polynomial interpolation obtained from data {x1,,xk}\left\{ x_{1}, \cdots , x_{k} \right\} missing x0x_{0} is Rk1(x)R_{k-1}(x). Each alphabet indicates Left and Right respectively. Let’s set pkp_{k} as follows. pk(x):=(xx0)Rk1(x)(xxk)Lk1(x)xkx0 p_{k}(x) := {{ (x-x_{0}) R_{k-1} (x) - (x-x_{k}) L_{k-1} (x) } \over { x_{k} - x_{0} }} Then, for i=1,,k1i=1,\cdots , k-1, pk(x0)=Lk1(x0)=f(x0) p_{k}(x_{0}) = L_{k-1} (x_{0}) = f(x_{0})

pk(xi)=Lk1(xi)=Rk1(xi)=f(xi) p_{k}(x_{i}) = L_{k-1} (x_{i}) = R_{k-1} (x_{i}) = f(x_{i})

pk(xk)=Rk1(xk)=f(xk) p_{k}(x_{k}) = R_{k-1} (x_{k}) = f(x_{k}) Therefore, it’s guaranteed that pkp_{k} accurately interpolates the given data. When the highest order term’s coefficient of pkp_{k} is called aka_{k}, it will be shown by mathematical induction that ak=f[x0,,xk]a_k = f[ x_{0} , \cdots , x_{k} ] holds.

When k=1k=1, p1(x)=(xx0)f(x1)(xxk)f(x0)(x)x1x0 p_{1}(x) = {{ (x-x_{0}) f(x_{1}) - (x-x_{k}) f(x_{0}) (x) } \over { x_{1} - x_{0} }} thus, the coefficient of the highest order term xx is a1=f(x1x0)x1x0=f[x0,x1] a_{1} = {{ f(x_{1} - x_{0}) } \over { x_{1} - x_{0} }} = f[x_{0},x_{1}] Assuming k>1k > 1 is valid when ak1=f[x0,,xk1]a_{k-1} = f[ x_{0} , \cdots , x_{k-1} ] holds, the coefficient of the highest order term of Lk1L_{k-1} is f[x0,,xk1]f[ x_{0} , \cdots , x_{k-1} ], and the highest order term’s coefficient of Rk1R_{k-1} is f[x1,,xk]f[ x_{1} , \cdots , x_{k} ]. Breaking down the fraction form of pkp_{k}, pk(x)=Rk1(x)Lk1(x)xkx0x+xkLk1(x)x0Rk1(x)xkx0 p_{k}(x) = {{ R_{k-1} (x) - L_{k-1} (x) } \over { x_{k} - x_{0} }} x + {{ x_{k} L_{k-1} (x) - x_{0} R_{k-1} (x) } \over { x_{k} - x_{0} }} Therefore, the coefficient of the highest order term pk(x)p_{k}(x) is ak=f[x1,,xk]f[x0,,xk1]xkx0=f[x0,,xk] a_{k} = {{ f[ x_{1} , \cdots , x_{k} ]- f[ x_{0} , \cdots , x_{k-1} ] } \over { x_{k} - x_{0} }} = f[ x_{0} , \cdots , x_{k} ] By mathematical induction, for all natural numbers nn, an=f[x0,,xn] a_{n} = f [ x_{0} , \cdots , x_{n}]