# Newton polynomial

In the mathematical field of numerical analysis, a Newton polynomial, named after its inventor Isaac Newton, is an interpolation polynomial for a given set of data points. The Newton polynomial is sometimes called Newton's divided differences interpolation polynomial because the coefficients of the polynomial are calculated using Newton's divided differences method.

## Definition

Given a set of k + 1 data points

$\displaystyle{ (x_0, y_0),\ldots,(x_j, y_j),\ldots,(x_k, y_k) }$

where no two xj are the same, the Newton interpolation polynomial is a linear combination of Newton basis polynomials

$\displaystyle{ N(x) := \sum_{j=0}^{k} a_{j} n_{j}(x) }$

with the Newton basis polynomials defined as

$\displaystyle{ n_j(x) := \prod_{i=0}^{j-1} (x - x_i) }$

for j > 0 and $\displaystyle{ n_0(x) \equiv 1 }$.

The coefficients are defined as

$\displaystyle{ a_j := [y_0,\ldots,y_j] }$

where

$\displaystyle{ [y_0,\ldots,y_j] }$

is the notation for divided differences.

Thus the Newton polynomial can be written as

$\displaystyle{ N(x) = [y_0] + [y_0,y_1](x-x_0) + \cdots + [y_0,\ldots,y_k](x-x_0)(x-x_1)\cdots(x-x_{k-1}). }$

### Newton forward divided difference formula

The Newton polynomial can be expressed in a simplified form when $\displaystyle{ x_0, x_1, \dots, x_k }$ are arranged consecutively with equal spacing. Introducing the notation $\displaystyle{ h = x_{i+1}-x_i }$ for each $\displaystyle{ i=0,1,\dots,k-1 }$ and $\displaystyle{ x=x_0+sh }$, the difference $\displaystyle{ x-x_i }$ can be written as $\displaystyle{ (s-i)h }$. So the Newton polynomial becomes

\displaystyle{ \begin{align} N(x) &= [y_0] + [y_0,y_1]sh + \cdots + [y_0,\ldots,y_k] s (s-1) \cdots (s-k+1){h}^{k} \\ &= \sum_{i=0}^{k}s(s-1) \cdots (s-i+1){h}^{i}[y_0,\ldots,y_i] \\ &= \sum_{i=0}^{k}{s \choose i}i!{h}^{i}[y_0,\ldots,y_i]. \end{align} }

This is called the Newton forward divided difference formula.

### Newton backward divided difference formula

If the nodes are reordered as $\displaystyle{ {x}_{k},{x}_{k-1},\dots,{x}_{0} }$, the Newton polynomial becomes

$\displaystyle{ N(x)=[y_k]+[{y}_{k}, {y}_{k-1}](x-{x}_{k})+\cdots+[{y}_{k},\ldots,{y}_{0}](x-{x}_{k})(x-{x}_{k-1})\cdots(x-{x}_{1}). }$

If $\displaystyle{ {x}_{k},\;{x}_{k-1},\;\dots,\;{x}_{0} }$ are equally spaced with $\displaystyle{ {x}_{0}={x}_{k}+sh }$ and $\displaystyle{ {x}_{i}={x}_{k}-(k-i)h }$ for i = 0, 1, ..., k, then,

\displaystyle{ \begin{align} N(x) &= [{y}_{k}]+ [{y}_{k}, {y}_{k-1}]sh+\cdots+[{y}_{k},\ldots,{y}_{0}]s(s+1)\cdots(s+k-1){h}^{k} \\ &=\sum_{i=0}^{k}{(-1)}^{i}{-s \choose i}i!{h}^{i}[{y}_{k},\ldots,{y}_{k-i}]. \end{align} }

is called the Newton backward divided difference formula.

## Significance

Newton's formula is of interest because it is the straightforward and natural differences-version of Taylor's polynomial. Taylor's polynomial tells where a function will go, based on its y value, and its derivatives (its rate of change, and the rate of change of its rate of change, etc.) at one particular x value. Newton's formula is Taylor's polynomial based on finite differences instead of instantaneous rates of change.

As with other difference formulas, the degree of a Newton interpolating polynomial can be increased by adding more terms and points without discarding existing ones. Newton's form has the simplicity that the new points are always added at one end: Newton's forward formula can add new points to the right, and Newton's backward formula can add new points to the left.

The accuracy of polynomial interpolation depends on how close the interpolated point is to the middle of the x values of the set of points used. Obviously, as new points are added at one end, that middle becomes farther and farther from the first data point. Therefore, if it isn't known how many points will be needed for the desired accuracy, the middle of the x-values might be far from where the interpolation is done.

Gauss, Stirling, and Bessel all developed formulae to remedy that problem.

Gauss's formula alternately adds new points at the left and right ends, thereby keeping the set of points centered near the same place (near the evaluated point). When so doing, it uses terms from Newton's formula, with data points and x values renamed in keeping with one's choice of what data point is designated as the x0 data point.

Stirling's formula remains centered about a particular data point, for use when the evaluated point is nearer to a data point than to a middle of two data points.

Bessel's formula remains centered about a particular middle between two data points, for use when the evaluated point is nearer to a middle than to a data point.

Bessel and Stirling achieve that by sometimes using the average of two differences, and sometimes using the average of two products of binomials in x, where Newton's or Gauss's would use just one difference or product. Stirling's uses an average difference in odd-degree terms (whose difference uses an even number of data points); Bessel's uses an average difference in even-degree terms (whose difference uses an odd number of data points).

## Strengths and weaknesses of various formulae

For any given finite set of data points, there is only one polynomial of least possible degree that passes through all of them. Thus, it is appropriate to speak of the "Newton form", or Lagrange form, etc., of the interpolation polynomial. However, different methods of computing this polynomial can have differing computational efficiency. There are several similar methods, such as those of Gauss, Bessel and Stirling. They can be derived from Newton's by renaming the x-values of the data points, but in practice they are important.

### Bessel vs. Stirling

The choice between Bessel and Stirling depends on whether the interpolated point is closer to a data point, or closer to a middle between two data points.

A polynomial interpolation's error approaches zero, as the interpolation point approaches a data-point. Therefore, Stirling's formula brings its accuracy improvement where it is least needed and Bessel brings its accuracy improvement where it is most needed.

So, Bessel's formula could be said to be the most consistently accurate difference formula, and, in general, the most consistently accurate of the familiar polynomial interpolation formulas.

### Divided-Difference Methods vs. Lagrange

Lagrange is sometimes said to require less work, and is sometimes recommended for problems in which it is known, in advance, from previous experience, how many terms are needed for sufficient accuracy.

The divided difference methods have the advantage that more data points can be added, for improved accuracy. The terms based on the previous data points can continue to be used. With the ordinary Lagrange formula, to do the problem with more data points would require re-doing the whole problem.

There is a "barycentric" version of Lagrange that avoids the need to re-do the entire calculation when adding a new data point. But it requires that the values of each term be recorded.

But the ability, of Gauss, Bessel and Stirling, to keep the data points centered close to the interpolated point gives them an advantage over Lagrange, when it isn't known, in advance, how many data points will be needed.

Additionally, suppose that one wants to find out if, for some particular type of problem, linear interpolation is sufficiently accurate. That can be determined by evaluating the quadratic term of a divided difference formula. If the quadratic term is negligible—meaning that the linear term is sufficiently accurate without adding the quadratic term—then linear interpolation is sufficiently accurate. If the problem is sufficiently important, or if the quadratic term is nearly big enough to matter, then one might want to determine whether the sum of the quadratic and cubic terms is large enough to matter in the problem.

Of course, only a divided-difference method can be used for such a determination.

For that purpose, the divided-difference formula and/or its x0 point should be chosen so that the formula will use, for its linear term, the two data points between which the linear interpolation of interest would be done.

The divided difference formulas are more versatile, useful in more kinds of problems.

The Lagrange formula is at its best when all the interpolation will be done at one x value, with only the data points' y values varying from one problem to another, and when it is known, from past experience, how many terms are needed for sufficient accuracy.

With the Newton form of the interpolating polynomial a compact and effective algorithm exists for combining the terms to find the coefficients of the polynomial.

### Accuracy

When, with Stirling's or Bessel's, the last term used includes the average of two differences, then one more point is being used than Newton's or other polynomial interpolations would use for the same polynomial degree. So, in that instance, Stirling's or Bessel's is not putting an N−1 degree polynomial through N points, but is, instead, trading equivalence with Newton's for better centering and accuracy, giving those methods sometimes potentially greater accuracy, for a given polynomial degree, than other polynomial interpolations.

## General case

For the special case of xi = i, there is a closely related set of polynomials, also called the Newton polynomials, that are simply the binomial coefficients for general argument. That is, one also has the Newton polynomials $\displaystyle{ p_n(z) }$ given by

$\displaystyle{ p_n(z)={z \choose n}= \frac{z(z-1)\cdots(z-n+1)}{n!} }$

In this form, the Newton polynomials generate the Newton series. These are in turn a special case of the general difference polynomials which allow the representation of analytic functions through generalized difference equations.

## Main idea

Solving an interpolation problem leads to a problem in linear algebra where we have to solve a system of linear equations. Using a standard monomial basis for our interpolation polynomial we get the very complicated Vandermonde matrix. By choosing another basis, the Newton basis, we get a system of linear equations with a much simpler lower triangular matrix which can be solved faster.

For k + 1 data points we construct the Newton basis as

$\displaystyle{ n_0(x) := 1 , \qquad n_j(x) := \prod_{i=0}^{j-1} (x - x_i) \qquad j=1,\ldots,k. }$

Using these polynomials as a basis for $\displaystyle{ \Pi_k }$ we have to solve

$\displaystyle{ \begin{bmatrix} 1 & & \ldots & & 0 \\ 1 & x_1-x_0 & & & \\ 1 & x_2-x_0 & (x_2-x_0)(x_2-x_1) & & \vdots \\ \vdots & \vdots & & \ddots & \\ 1 & x_k-x_0 & \ldots & \ldots & \prod_{j=0}^{k-1}(x_k - x_j) \end{bmatrix} \begin{bmatrix} a_0 \\ \\ \vdots \\ \\ a_{k} \end{bmatrix} = \begin{bmatrix} y_0 \\ \\ \vdots \\ \\ y_{k} \end{bmatrix} }$

to solve the polynomial interpolation problem.

This system of equations can be solved iteratively by solving

$\displaystyle{ \sum_{i=0}^{j} a_{i} n_{i}(x_j) = y_j \qquad j = 0,\dots,k. }$

## Derivation

While the interpolation formula can be found by solving a linear system of equations, there is a loss of intuition in what the formula is showing and why Newton's interpolation formula works is not readily apparent. To begin, we will need to establish two facts first:

Fact 1. Reversing the terms of a divided difference leaves it unchanged: $\displaystyle{ [y_0, \ldots, y_n] = [y_n, \ldots, y_0]. }$

The proof of this is an easy induction: for $\displaystyle{ n=1 }$ we compute $\displaystyle{ [y_0, y_1] = \frac{[y_1] - [y_0]}{x_1-x_0} = \frac{[y_0] - [y_1]}{x_0 - x_1} = [y_1, y_0]. }$

Induction step: Suppose the result holds for any divided difference involving at most $\displaystyle{ n+1 }$ terms. Then using the induction hypothesis in the following 2nd equality we see that for a divided difference involving $\displaystyle{ n+2 }$ terms we have

$\displaystyle{ [y_0, \ldots, y_{n+1}] = \frac{[y_1, \ldots, y_{n+1}] - [y_0, \ldots, y_n]}{x_{n+1} - x_0} = \frac{[y_n, \ldots, y_0] - [y_{n+1}, \ldots, y_1]}{x_0 - x_{n+1}} = [y_{n+1}, \ldots, y_0]. }$

We formulate next Fact 2 which for purposes of induction and clarity we also call Statement $\displaystyle{ n }$ ($\displaystyle{ \text{Stm}_n }$) :

Fact 2. ($\displaystyle{ \text{Stm}_n }$) : If $\displaystyle{ (x_0, y_0), \ldots, (x_{n-1}, y_{n-1}) }$ are any $\displaystyle{ n }$ points with distinct $\displaystyle{ x }$-coordinates and $\displaystyle{ P=P(x) }$ is the unique polynomial of degree (at most) $\displaystyle{ n-1 }$ whose graph passes through these $\displaystyle{ n }$ points then there holds the relation $\displaystyle{ [y_0, \ldots, y_n](x_n - x_0)\cdot\ldots\cdot(x_n-x_{n-1}) = y_n - P(x_n) }$

Proof. (It will be helpful for fluent reading of the proof to have the precise statement and its subtlety in mind: $\displaystyle{ P }$ is defined by passing through $\displaystyle{ (x_0,y_0),. . . ,(x_{n-1},y_{n-1}) }$ but the formula also speaks at both sides of an additional arbitrary point $\displaystyle{ (x_n,y_n) }$ with $\displaystyle{ x }$-coordinate distinct from the other $\displaystyle{ x_i }$.)

We again prove these statements by induction. To show $\displaystyle{ \text{Stm}_1, }$ let $\displaystyle{ (x_0,y_0) }$ be any one point and let $\displaystyle{ P(x) }$ be the unique polynomial of degree 0 passing through $\displaystyle{ (x_0, y_0) }$. Then evidently $\displaystyle{ P(x)=y_0 }$ and we can write $\displaystyle{ [y_0, y_1](x_1 - x_0) = \frac{y_1 - y_0}{x_1 - x_0} (x_1-x_0) = y_1 - y_0 = y_1 - P(x_1) }$ as wanted.

Proof of $\displaystyle{ \text{Stm}_{n+1}, }$ assuming $\displaystyle{ \text{Stm}_{n} }$ already established: Let $\displaystyle{ P(x) }$ be the polynomial of degree (at most) $\displaystyle{ n }$ passing through $\displaystyle{ (x_0, y_0), \ldots, (x_n, y_n). }$

With $\displaystyle{ Q(x) }$ being the unique polynomial of degree (at most) $\displaystyle{ n-1 }$ passing through the points $\displaystyle{ (x_1, y_1), \ldots, (x_n, y_n) }$, we can write the following chain of equalities, where we use in the penultimate equality that Stm$\displaystyle{ _n }$ applies to $\displaystyle{ Q }$:

\displaystyle{ \begin{align} & [y_0,\ldots,y_{n+1}](x_{n+1} - x_0)\cdot\ldots\cdot(x_{n+1} - x_n)\\ &= \frac{[y_1,\ldots,y_{n+1}] - [y_0,\ldots,y_{n}]}{x_{n+1} - x_0}(x_{n+1} - x_0)\cdot\ldots\cdot(x_{n+1} - x_n) \\ &= \left([y_1,\ldots,y_{n+1}] - [y_0,\ldots,y_{n}]\right) (x_{n+1} - x_1)\cdot\ldots\cdot(x_{n+1} - x_n) \\ &= [y_1,\ldots,y_{n+1}](x_{n+1} - x_1)\cdot\ldots\cdot(x_{n+1} - x_n) - [y_0,\ldots,y_n](x_{n+1} - x_1)\cdot\ldots\cdot(x_{n+1} - x_n) \\ &= (y_{n+1} - Q(x_{n+1})) - [y_0,\ldots,y_n](x_{n+1} - x_1)\cdot\ldots\cdot(x_{n+1} - x_n) \\ &= y_{n+1} - (Q(x_{n+1}) + [y_0,\ldots,y_n](x_{n+1} - x_1)\cdot\ldots\cdot(x_{n+1} - x_n)). \end{align} }

The induction hypothesis for $\displaystyle{ Q }$ also applies to the second equality in the following computation, where $\displaystyle{ (x_0,y_0) }$ is added to the points defining $\displaystyle{ Q }$ :

\displaystyle{ \begin{align} & Q(x_0) + [y_0,\ldots,y_n](x_0 - x_1)\cdot\ldots\cdot(x_0 - x_n) \\ &= Q(x_0) + [y_n,\ldots,y_0](x_0 - x_n)\cdot\ldots\cdot(x_0 - x_1) \\ & = Q(x_0) + y_0 - Q(x_0) \\ &= y_0 \\ &= P(x_0). \\ \end{align} }

Now look at $\displaystyle{ Q(x)+ [y_0,\ldots,y_n](x - x_1)\cdot\ldots\cdot(x - x_n). }$ By the definition of $\displaystyle{ Q }$ this polynomial passes through $\displaystyle{ (x_1,y_1), . . ., (x_n,y_n) }$ and, as we have just shown, it also passes through $\displaystyle{ (x_0,y_0). }$ Thus it is the unique polynomial of degree $\displaystyle{ \leq n }$ which passes through these points. Therefore this polynomial is $\displaystyle{ P(x); }$ i.e.: $\displaystyle{ P(x)= Q(x)+ [y_0,\ldots,y_n](x - x_1)\cdot\ldots\cdot(x - x_n). }$

Thus we can write the last line in the first chain of equalities as `$\displaystyle{ y_{n+1}-P(x_{n+1}) }$' and have thus established that $\displaystyle{ [y_0,\ldots,y_{n+1}](x_{n+1} - x_0)\cdot\ldots\cdot(x_{n+1} - x_n)=y_{n+1}-P(x_{n+1}). }$ So we established $\displaystyle{ \text{Stm}_{n+1} }$, and hence completed the proof of Fact 2.

Now look at Fact 2: It can be formulated this way: If $\displaystyle{ P }$ is the unique polynomial of degree at most $\displaystyle{ n-1 }$ whose graph passes through the points $\displaystyle{ (x_0, y_0), . . . , (x_{n-1}, y_{n-1}), }$ then $\displaystyle{ P(x)+ [y_0, \ldots, y_n](x - x_0)\cdot\ldots\cdot(x-x_{n-1}) }$ is the unique polynomial of degree at most $\displaystyle{ n }$ passing through points $\displaystyle{ (x_0, y_0), . . . , (x_{n-1}, y_{n-1}), (x_n, y_n). }$ So we see Newton interpolation permits indeed to add new interpolation points without destroying what has already been computed.

## Taylor polynomial

The limit of the Newton polynomial if all nodes coincide is a Taylor polynomial, because the divided differences become derivatives. \displaystyle{ \begin{align} &\lim_{(x_0,\dots,x_n)\to(z,\dots,z)} f[x_0] + f[x_0,x_1]\cdot(\xi-x_0) + \dots + f[x_0,\dots,x_n]\cdot(\xi-x_0)\cdot\dots\cdot(\xi-x_{n-1}) \\ &= f(z) + f'(z)\cdot(\xi-z) + \dots + \frac{f^{(n)}(z)}{n!}\cdot(\xi-z)^n \end{align} }

## Application

As can be seen from the definition of the divided differences new data points can be added to the data set to create a new interpolation polynomial without recalculating the old coefficients. And when a data point changes we usually do not have to recalculate all coefficients. Furthermore, if the xi are distributed equidistantly the calculation of the divided differences becomes significantly easier. Therefore, the divided-difference formulas are usually preferred over the Lagrange form for practical purposes.

### Examples

The divided differences can be written in the form of a table. For example, for a function f is to be interpolated on points $\displaystyle{ x_0, \ldots, x_n }$. Write

$\displaystyle{ \begin{matrix} x_0 & f(x_0) & & \\ & & {f(x_1)-f(x_0)\over x_1 - x_0} & \\ x_1 & f(x_1) & & {{f(x_2)-f(x_1)\over x_2 - x_1}-{f(x_1)-f(x_0)\over x_1 - x_0} \over x_2 - x_0} \\ & & {f(x_2)-f(x_1)\over x_2 - x_1} & \\ x_2 & f(x_2) & & \vdots \\ & & \vdots & \\ \vdots & & & \vdots \\ & & \vdots & \\ x_n & f(x_n) & & \\ \end{matrix} }$

Then the interpolating polynomial is formed as above using the topmost entries in each column as coefficients.

For example, suppose we are to construct the interpolating polynomial to f(x) = tan(x) using divided differences, at the points

$\displaystyle{ n }$ $\displaystyle{ x_n }$ $\displaystyle{ f(x_n) }$
$\displaystyle{ 0 }$ $\displaystyle{ -\tfrac{3}{2} }$ $\displaystyle{ -14.1014 }$
$\displaystyle{ 1 }$ $\displaystyle{ -\tfrac{3}{4} }$ $\displaystyle{ -0.931596 }$
$\displaystyle{ 2 }$ $\displaystyle{ 0 }$ $\displaystyle{ 0 }$
$\displaystyle{ 3 }$ $\displaystyle{ \tfrac{3}{4} }$ $\displaystyle{ 0.931596 }$
$\displaystyle{ 4 }$ $\displaystyle{ \tfrac{3}{2} }$ $\displaystyle{ 14.1014 }$

Using six digits of accuracy, we construct the table

$\displaystyle{ \begin{matrix} -\tfrac{3}{2} & -14.1014 & & & &\\ & & 17.5597 & & &\\ -\tfrac{3}{4} & -0.931596 & & -10.8784 & &\\ & & 1.24213 & & 4.83484 & \\ 0 & 0 & & 0 & & 0\\ & & 1.24213 & & 4.83484 &\\ \tfrac{3}{4} & 0.931596 & & 10.8784 & &\\ & & 17.5597 & & &\\ \tfrac{3}{2} & 14.1014 & & & &\\ \end{matrix} }$

Thus, the interpolating polynomial is

\displaystyle{ \begin{align} &-14.1014+17.5597(x+\tfrac{3}{2})-10.8784(x+\tfrac{3}{2})(x+\tfrac{3}{4}) +4.83484(x+\tfrac{3}{2})(x+\tfrac{3}{4})(x)+0(x+\tfrac{3}{2})(x+\tfrac{3}{4})(x)(x-\tfrac{3}{4}) \\ ={}&-0.00005-1.4775x-0.00001x^2+4.83484x^3 \end{align} }

Given more digits of accuracy in the table, the first and third coefficients will be found to be zero.

Another example:

The sequence $\displaystyle{ f_0 }$ such that $\displaystyle{ f_0(1) = 6, f_0(2) = 9, f_0(3) = 2 }$ and $\displaystyle{ f_0(4) = 5 }$, i.e., they are $\displaystyle{ 6, 9, 2, 5 }$ from $\displaystyle{ x_0 = 1 }$ to $\displaystyle{ x_3 = 4 }$.

You obtain the slope of order $\displaystyle{ 1 }$ in the following way:

• $\displaystyle{ f_1(x_0, x_1) = \frac{f_0(x_1) - f_0(x_0)}{x_1 - x_0} = \frac{9 - 6}{2 - 1} = 3 }$
• $\displaystyle{ f_1(x_1, x_2) = \frac{f_0(x_2) - f_0(x_1)}{x_2 - x_1} = \frac{2 - 9}{3 - 2} = -7 }$
• $\displaystyle{ f_1(x_2, x_3) = \frac{f_0(x_3) - f_0(x_2)}{x_3 - x_2} = \frac{5 - 2}{4 - 3} = 3 }$

As we have the slopes of order $\displaystyle{ 1 }$, it is possible to obtain the next order:

• $\displaystyle{ f_2(x_0, x_1, x_2) = \frac{f_1(x_1, x_2) - f_1(x_0, x_1)}{x_2 - x_0} = \frac{-7 - 3}{3 - 1} = -5 }$
• $\displaystyle{ f_2(x_1, x_2, x_3) = \frac{f_1(x_2, x_3) - f_1(x_1, x_2)}{x_3 - x_1} = \frac{3 - (-7)}{4 - 2} = 5 }$

Finally, we define the slope of order $\displaystyle{ 3 }$:

• $\displaystyle{ f_3(x_0, x_1, x_2, x_3) = \frac{f_2(x_1, x_2, x_3) - f_2(x_0, x_1, x_2)}{x_3 - x_0} = \frac{5 - (-5)}{4 - 1} = \frac{10}{3} }$

Once we have the slope, we can define the consequent polynomials:

• $\displaystyle{ p_0(x) = 6 }$.
• $\displaystyle{ p_1(x) = 6 + 3(x - 1) }$
• $\displaystyle{ p_2(x) = 6 + 3(x - 1) - 5(x - 1)(x - 2) }$.
• $\displaystyle{ p_3(x) = 6 + 3(x - 1) - 5(x - 1)(x - 2) + \frac{10}{3} (x - 1)(x - 2)(x - 3) }$