Derivation of Newton's Forward Difference Formula
📂Numerical AnalysisDerivation of Newton's Forward Difference Formula
For different data x0,⋯,xn of (x0,f(x0)),⋯,(xn,f(xn)),
pn(x)=i=0∑nf[x0,⋯,xi]j=0∏i−1(x−xj)
Description
Though it seems complicated, when actually expanding for n=0,1,2, it simplifies as follows.
p0(x)=p1(x)=p2(x)=f(x0)f(x0)+(x−x0)f[x0,x1]f(x0)+(x−x0)f[x0,x1]+(x−x0)(x−x1)f[x0,x1,x2]
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)=pn−1(x)+f[x0,⋯,xn]i=0∏n−1(x−xi)
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) again even though pn−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 pn and pn−1 is called C, then the highest-order term coefficients of pn and C must be the same, so by calculating the coefficient of C indirectly, the recursion formula is derived.
If it is said that pn(x)=pn−1(x)+C(x), then degC=n and for i=0,⋯,(n−1),
pn(xi)=f(xi)=pn−1(xi)
thus for some constant an=0,
C(x)=an(x−x0)⋯(x−xn−1)
appears like this. Since the highest order terms of pn and C are the same, it needs to be shown that an=f[x0,⋯,xn] holds. Let’s say polynomial interpolation obtained from data {x0,⋯,xk} with xk removed is {x0,⋯,xk−1} and the polynomial interpolation obtained from data {x1,⋯,xk} missing x0 is Rk−1(x). Each alphabet indicates Left and Right respectively. Let’s set pk as follows.
pk(x):=xk−x0(x−x0)Rk−1(x)−(x−xk)Lk−1(x)
Then, for i=1,⋯,k−1,
pk(x0)=Lk−1(x0)=f(x0)
pk(xi)=Lk−1(xi)=Rk−1(xi)=f(xi)
pk(xk)=Rk−1(xk)=f(xk)
Therefore, it’s guaranteed that pk accurately interpolates the given data. When the highest order term’s coefficient of pk is called ak, it will be shown by mathematical induction that ak=f[x0,⋯,xk] holds.
When k=1,
p1(x)=x1−x0(x−x0)f(x1)−(x−xk)f(x0)(x)
thus, the coefficient of the highest order term x is
a1=x1−x0f(x1−x0)=f[x0,x1]
Assuming k>1 is valid when ak−1=f[x0,⋯,xk−1] holds, the coefficient of the highest order term of Lk−1 is f[x0,⋯,xk−1], and the highest order term’s coefficient of Rk−1 is f[x1,⋯,xk]. Breaking down the fraction form of pk,
pk(x)=xk−x0Rk−1(x)−Lk−1(x)x+xk−x0xkLk−1(x)−x0Rk−1(x)
Therefore, the coefficient of the highest order term pk(x) is
ak=xk−x0f[x1,⋯,xk]−f[x0,⋯,xk−1]=f[x0,⋯,xk]
By mathematical induction, for all natural numbers n,
an=f[x0,⋯,xn]
■