Home > Mathematics > Interpolation > Newton’s interpolation polynomial
Newton’s interpolation polynomial
Wednesday 4 July 2007, by ,
Keywords: interpolation , Newton , polynôme d’interpolation .
All the versions of this article: [English] [français]
In this section, we shall study the polynomial interpolation in the form of Newton. Given a sequence of (n+1) data points and a function f, the aim is to determine an n-th degreee polynomial which interpolates f at these points. We shall resort to the notion of divided differences.
Interpolation
Given
points
, the points defined by
are called points of interpolation. The points defined by
are the values of interpolation. To interpolate a function
, the values of interpolation are defined as follows:
![]()
Reminders about Lagrange interpolation polynomials
We have seen that Lagrange interpolation polynomial of degree
was:

where the
’s are polynomials of degree
forming a basis of ![]()

Such polynomials are not convenient, since numerically, it is difficult to deduce
from
. For this reason, we introduce Newton’s interpolation polynomial.
Newton’s interpolation polynomial and Newton’s basis properties
The polynomials of Newton’s basis,
, are defined by:

with the following convention:
![]()
Moreover

The set of polynomials
(Newton’s basis) are a basis of
, the space of polynomials of degree at most equal to
. Indeed, they constitute an echelon-degree set of
polynomials.
Newton’s interpolation polynomial of degree
related to the subdivision
is:

where
![]()
We shall see how to determine the coefficients
in the following section entitled the divided differences.
Divided differences
Newton’s interpolation polynomial of degree
,
, evaluated at
, gives:
![P_n(x_0)= \sum_{k=0}^n \alpha_k e_k(x_0)=\alpha_0=f(x_0)=f[x_0] P_n(x_0)= \sum_{k=0}^n \alpha_k e_k(x_0)=\alpha_0=f(x_0)=f[x_0]](local/cache-vignettes/L280xH53/177a913423d7c3989261fe0d1894bb20-488dd.png)
Generally speaking, we write:
![]()
is called a zero-order divided difference.
Newton’s interpolation polynomial of degree
,
, evaluated at
, gives:
![\begin{array}{lll}
P_n(x_1)&=&\displaystyle \sum_{k=0}^n \alpha_k e_k(x_1)\\
&=&\alpha_0 + \alpha_1(x_1-x_0)\\
&=&f[x_0] + \alpha_1(x_1-x_0)\\
&=&f[x_1]
\end{array}
\begin{array}{lll}
P_n(x_1)&=&\displaystyle \sum_{k=0}^n \alpha_k e_k(x_1)\\
&=&\alpha_0 + \alpha_1(x_1-x_0)\\
&=&f[x_0] + \alpha_1(x_1-x_0)\\
&=&f[x_1]
\end{array}](local/cache-vignettes/L210xH109/f00618c9ada26e66e81cd3e86ce7dcc2-51299.png)
Hence
![\alpha_1=\frac{f[x_1]-f[x_0]}{x_1-x_0}=f[x_0,x_1] \alpha_1=\frac{f[x_1]-f[x_0]}{x_1-x_0}=f[x_0,x_1]](local/cache-vignettes/L193xH53/50efd6febae9b6d316bd1091b5ddcdd2-cfcb7.png)
is called
-order divided difference.
Newton’s interpolation polynomial of degree
,
, evaluated at
, gives:
![\begin{array}{rcl}
P_n(x_2)&=&\displaystyle \sum_{k=0}^n \alpha_k e_k(x_2)\\
&=&\alpha_0 + \alpha_1(x_2-x_0) +\alpha_2(x_2-x_0)(x_2-x_1) \\
&=&f[x_0] + f[x_0,x_1](x_2-x_0)+\alpha_2(x_2-x_0)(x_2-x_1) \\
&=&f[x_2]
\end{array}
\begin{array}{rcl}
P_n(x_2)&=&\displaystyle \sum_{k=0}^n \alpha_k e_k(x_2)\\
&=&\alpha_0 + \alpha_1(x_2-x_0) +\alpha_2(x_2-x_0)(x_2-x_1) \\
&=&f[x_0] + f[x_0,x_1](x_2-x_0)+\alpha_2(x_2-x_0)(x_2-x_1) \\
&=&f[x_2]
\end{array}](local/cache-vignettes/L396xH109/beadb42257cd70f89937620c9ffa5d6d-93c72.png)
Therefore:
![\begin{array}{rcl}
\alpha_2(x_2-x_0)(x_2-x_1)&=&f[x_2]-f[x_0] -f[x_0,x_1](x_2-x_0)\\
\alpha_2&=&\displaystyle\frac{f[x_2]-f[x_0] -f[x_0,x_1](x_2-x_0)}{(x_2-x_0)(x_2-x_1)}\\
\alpha_2&=&\displaystyle\frac{f[x_2]-f[x_0]}{(x_2-x_0)(x_2-x_1)}-
\frac{f[x_0,x_1]}{x_2-x_1}\\
\alpha_2&=&\displaystyle\frac{f[x_0,x_2]-f[x_0,x_1]}{x_2-x_1}
\end{array}
\begin{array}{rcl}
\alpha_2(x_2-x_0)(x_2-x_1)&=&f[x_2]-f[x_0] -f[x_0,x_1](x_2-x_0)\\
\alpha_2&=&\displaystyle\frac{f[x_2]-f[x_0] -f[x_0,x_1](x_2-x_0)}{(x_2-x_0)(x_2-x_1)}\\
\alpha_2&=&\displaystyle\frac{f[x_2]-f[x_0]}{(x_2-x_0)(x_2-x_1)}-
\frac{f[x_0,x_1]}{x_2-x_1}\\
\alpha_2&=&\displaystyle\frac{f[x_0,x_2]-f[x_0,x_1]}{x_2-x_1}
\end{array}](local/cache-vignettes/L388xH140/00211f8b56d723efb3cca8525d1bbe31-e93d1.png)
The following form is generally preferred:
![\begin{array}{rcl}
\alpha_2(x_2-x_0)(x_2-x_1)&=&f[x_2]-f[x_0] -f[x_0,x_1](x_2-x_0)\\
\alpha_2(x_2-x_0)(x_2-x_1)&=&f[x_2]-f[x_0] -f[x_0,x_1](x_2-x_0)-f[x_1]+f[x_1]\\
\alpha_2(x_2-x_0)(x_2-x_1)&=&f[x_2]-f[x_1]+f[x_1]-f[x_0] -f[x_0,x_1](x_2-x_0)\\
\alpha_2(x_2-x_0)(x_2-x_1)&=&f[x_2]-f[x_1]+(x_1-x_0)f[x_0,x_1]
-f[x_0,x_1](x_2-x_0)\\
\alpha_2(x_2-x_0)(x_2-x_1)&=&f[x_2]-f[x_1]+(x_1-x_2)f[x_0,x_1]\\
\alpha_2(x_2-x_0)&=&\displaystyle\frac{f[x_2]-f[x_1]}{x_2-x_1}-f[x_0,x_1]\\
\alpha_2(x_2-x_0)&=&f[x_1,x_2]-f[x_0,x_1]
\end{array}
\begin{array}{rcl}
\alpha_2(x_2-x_0)(x_2-x_1)&=&f[x_2]-f[x_0] -f[x_0,x_1](x_2-x_0)\\
\alpha_2(x_2-x_0)(x_2-x_1)&=&f[x_2]-f[x_0] -f[x_0,x_1](x_2-x_0)-f[x_1]+f[x_1]\\
\alpha_2(x_2-x_0)(x_2-x_1)&=&f[x_2]-f[x_1]+f[x_1]-f[x_0] -f[x_0,x_1](x_2-x_0)\\
\alpha_2(x_2-x_0)(x_2-x_1)&=&f[x_2]-f[x_1]+(x_1-x_0)f[x_0,x_1]
-f[x_0,x_1](x_2-x_0)\\
\alpha_2(x_2-x_0)(x_2-x_1)&=&f[x_2]-f[x_1]+(x_1-x_2)f[x_0,x_1]\\
\alpha_2(x_2-x_0)&=&\displaystyle\frac{f[x_2]-f[x_1]}{x_2-x_1}-f[x_0,x_1]\\
\alpha_2(x_2-x_0)&=&f[x_1,x_2]-f[x_0,x_1]
\end{array}](local/cache-vignettes/L500xH155/a154a9da2d23ed7ab0b92016fd325093-42205.png)
Hence
![\alpha_2=\displaystyle\frac{f[x_1,x_2]-f[x_0,x_1]}{x_2-x_0}=f[x_0,x_1,x_2] \alpha_2=\displaystyle\frac{f[x_1,x_2]-f[x_0,x_1]}{x_2-x_0}=f[x_0,x_1,x_2]](local/cache-vignettes/L255xH53/22b1aa209e80d73dd895054c0ee4a6d5-a94de.png)
is called
-order divided difference.
By recurrence, we obtain:
![\alpha_k=\displaystyle\frac{f[x_1,\ldots,x_k]-
f[x_0,\ldots,x_{k-1}]}{x_k-x_0}=f[x_0,\ldots,x_k] \alpha_k=\displaystyle\frac{f[x_1,\ldots,x_k]-
f[x_0,\ldots,x_{k-1}]}{x_k-x_0}=f[x_0,\ldots,x_k]](local/cache-vignettes/L329xH53/f537ef320f8f01d3f0a5b57d54ce5e0e-1d148.png)
is thus called a
-order divided difference.
In practice, when we want to determine the
-order divided difference
for instance, we need the following quantities
![\left[\begin{array}{ccccc}
x_0 & f[x_0] & & & \cr
x_1 & f[x_1] & f[x_0,x_1] & & \cr
x_2 & f[x_2] & f[x_1,x_2] & f[x_0,x_1,x_2] & \cr
x_3 & f[x_3] & f[x_2,x_3] & f[x_1,x_2,x_3] & f[x_0,x_1,x_2,x_3]
\end{array}\right]
\left[\begin{array}{ccccc}
x_0 & f[x_0] & & & \cr
x_1 & f[x_1] & f[x_0,x_1] & & \cr
x_2 & f[x_2] & f[x_1,x_2] & f[x_0,x_1,x_2] & \cr
x_3 & f[x_3] & f[x_2,x_3] & f[x_1,x_2,x_3] & f[x_0,x_1,x_2,x_3]
\end{array}\right]](local/cache-vignettes/L345xH89/7667ba0d45bdc5e6a3bbd9ee0bee49a2-b6c63.png)
Hence
![f[x_0,x_1,x_2,x_3]=\displaystyle\frac{f[x_1,x_2,x_3]-
f[x_0,x_1,x_{2}]}{x_3-x_0} f[x_0,x_1,x_2,x_3]=\displaystyle\frac{f[x_1,x_2,x_3]-
f[x_0,x_1,x_{2}]}{x_3-x_0}](local/cache-vignettes/L281xH53/4c969af9dac1bc9d76649626d4d68ec5-27873.png)
Properties. Let
and
be a permutation of
. Then
![]()
Newton’s interpolation polynomial of degree 
Newton’s interpolation polynomial of degree
is obtained via the successive divided differences:
![P_n(x)= f[x_0] + \sum_{k=1}^n f[x_0,\ldots,x_k] e_k(x) P_n(x)= f[x_0] + \sum_{k=1}^n f[x_0,\ldots,x_k] e_k(x)](local/cache-vignettes/L241xH53/ffe00643d80ac40b7c47f17e447ad00c-7371b.png)
Error of interpolation
Assume that
and
. Let
be the closed set defined by
(the smallest closed set containing
and the
’s).
Theorem.
![\exists \xi \in I / f[x_0,\ldots,x_{n}]=\displaystyle\frac{f^{n}(\xi)}{n!} \exists \xi \in I / f[x_0,\ldots,x_{n}]=\displaystyle\frac{f^{n}(\xi)}{n!}](local/cache-vignettes/L186xH53/b0f1287737b27197eb8c7b866370d898-310a9.png)
Proof. Let
We have:
![]()
By successively applying Rolle’s theorem (
times),
equals zero at a given point
:
![]()
Therefore, we have:
![]()
Since the coefficient of
in
is
,
![]()
hence
![f[x_0,\ldots,x_{n}]=\displaystyle\frac{f^{(n)}(\xi)}{n!} f[x_0,\ldots,x_{n}]=\displaystyle\frac{f^{(n)}(\xi)}{n!}](local/cache-vignettes/L146xH55/309aeab96cdc9162f87aa485dd0263ac-b4437.png)
We now assume that
and
. Let
be the closed set defined by
(the smallest closed set containing
and the
’s).
Theorem.
![\forall x\in [a,b],\quad \exists \xi \in I / f(x)-P_n(x)=
\displaystyle\frac{f^{n+1}(\xi)}{(n+1)!} \displaystyle\prod_{i=0}^{n}(x-x_i) \forall x\in [a,b],\quad \exists \xi \in I / f(x)-P_n(x)=
\displaystyle\frac{f^{n+1}(\xi)}{(n+1)!} \displaystyle\prod_{i=0}^{n}(x-x_i)](local/cache-vignettes/L361xH54/1e75de9228bd2fedc768dc9ed239e1d7-3a980.png)
Proof. There are two possible ways: (1) the one encountered in Lagrange polynomial interpolation and (2) the following.
If
, the problem is over!
![]()
Let
and assume that
.
Consider the unique polynomial
of degree
which interpolates
at the points
.
verifies

The polynomial
can be written as:
![]()
According to the previous theorem
![f[x_0,\ldots,x_{n},\hat{x}]=\displaystyle\frac{f^{(n+1)}(\xi)}{(n+1)!} f[x_0,\ldots,x_{n},\hat{x}]=\displaystyle\frac{f^{(n+1)}(\xi)}{(n+1)!}](local/cache-vignettes/L175xH55/4515f6b5cea394dfaed289e64c8d05f1-e9da1.png)
By setting
,
,

Since this result is valid regardless of
, the case is made!
An example of computing Newton’s interpolation polynomial
Given a set of 3 data points
, we shall determine Newton’s interpolation polynomial of degree 2 which passes through these points.
![\left[\begin{array}{ccccc}
x_0=0 & f[x_0]=1 & & & \cr
x_1=2 & f[x_1]=5 & f[x_0,x_1]=\displaystyle\frac{5-1}{2-0} = 2& & \cr
x_2=4 & f[x_2]=17 & f[x_1,x_2]=\displaystyle\frac{17-5}{4-2}=6 & f[x_0,x_1,x_2]=
\displaystyle\frac{6-2}{4-0}=1
&
\end{array}\right]
\left[\begin{array}{ccccc}
x_0=0 & f[x_0]=1 & & & \cr
x_1=2 & f[x_1]=5 & f[x_0,x_1]=\displaystyle\frac{5-1}{2-0} = 2& & \cr
x_2=4 & f[x_2]=17 & f[x_1,x_2]=\displaystyle\frac{17-5}{4-2}=6 & f[x_0,x_1,x_2]=
\displaystyle\frac{6-2}{4-0}=1
&
\end{array}\right]](local/cache-vignettes/L485xH98/c8f5ff4657f55cde45eaf935f7fbc2b4-6408f.png)
Consequently:
![\begin{array}{rcl}
P_2(x)&=&f[x_0]+f[x_0,x_1]x+f[x_0,x_1,x_2]x(x-2)\\
&=&1+2x+x(x-2)\\
&=&1+x^2
\end{array}
\begin{array}{rcl}
P_2(x)&=&f[x_0]+f[x_0,x_1]x+f[x_0,x_1,x_2]x(x-2)\\
&=&1+2x+x(x-2)\\
&=&1+x^2
\end{array}](local/cache-vignettes/L334xH71/2fc0d3d81c025f0529375d277273ac35-1c697.png)
Scilab: computing Newton’s interpolation polynomial
Scilab function newton.sci determines Newton’s interpolation polynomial.
contains the points of interpolation and
the values of interpolation.
is Newton’s interpolation polynomial computed by means of divided differences.sées.
newton.sci
Therefore, we obtain:
