Lagrange Interpolating Polynomial

DOWNLOAD Mathematica Notebook Contribute to this entry LagrangeInterpolatingPoly

The Lagrange interpolating polynomial is the polynomial P(x) of degree <=(n-1) that passes through the n points (x_1,y_1=f(x_1)), (x_2,y_2=f(x_2)), ..., (x_n,y_n=f(x_n)), and is given by

 P(x)=sum_(j=1)^nP_j(x),
(1)

where

 P_j(x)=y_jproduct_(k=1; k!=j)^n(x-x_k)/(x_j-x_k).
(2)

Written explicitly,

P(x)=((x-x_2)(x-x_3)...(x-x_n))/((x_1-x_2)(x_1-x_3)...(x_1-x_n))y_1+((x-x_1)(x-x_3)...(x-x_n))/((x_2-x_1)(x_2-x_3)...(x_2-x_n))y_2+...+((x-x_1)(x-x_2)...(x-x_(n-1)))/((x_n-x_1)(x_n-x_2)...(x_n-x_(n-1)))y_n.
(3)

The formula was first published by Waring (1779), rediscovered by Euler in 1783, and published by Lagrange in 1795 (Jeffreys and Jeffreys 1988).

Lagrange interpolating polynomials are implemented in the Wolfram Language as InterpolatingPolynomial[data, var]. They are used, for example, in the construction of Newton-Cotes formulas.

When constructing interpolating polynomials, there is a tradeoff between having a better fit and having a smooth well-behaved fitting function. The more data points that are used in the interpolation, the higher the degree of the resulting polynomial, and therefore the greater oscillation it will exhibit between the data points. Therefore, a high-degree interpolation may be a poor predictor of the function between points, although the accuracy at the data points will be "perfect."

For n=3 points,

P(x)=((x-x_2)(x-x_3))/((x_1-x_2)(x_1-x_3))y_1+((x-x_1)(x-x_3))/((x_2-x_1)(x_2-x_3))y_2+((x-x_1)(x-x_2))/((x_3-x_1)(x_3-x_2))y_3
(4)
P^'(x)=(2x-x_2-x_3)/((x_1-x_2)(x_1-x_3))y_1+(2x-x_1-x_3)/((x_2-x_1)(x_2-x_3))y_2+(2x-x_1-x_2)/((x_3-x_1)(x_3-x_2))y_3.
(5)

Note that the function P(x) passes through the points (x_i,y_i), as can be seen for the case n=3,

P(x_1)=((x_1-x_2)(x_1-x_3))/((x_1-x_2)(x_1-x_3))y_1+((x_1-x_1)(x_1-x_3))/((x_2-x_1)(x_2-x_3))y_2+((x_1-x_1)(x_1-x_2))/((x_3-x_1)(x_3-x_2))y_3=y_1
(6)
P(x_2)=((x_2-x_2)(x_2-x_3))/((x_1-x_2)(x_1-x_3))y_1+((x_2-x_1)(x_2-x_3))/((x_2-x_1)(x_2-x_3))y_2+((x_2-x_1)(x_2-x_2))/((x_3-x_1)(x_3-x_2))y_3=y_2
(7)
P(x_3)=((x_3-x_2)(x_3-x_3))/((x_1-x_2)(x_1-x_3))y_1+((x_3-x_1)(x_3-x_3))/((x_2-x_1)(x_2-x_3))y_2+((x_3-x_1)(x_3-x_2))/((x_3-x_1)(x_3-x_2))y_3=y_3.
(8)

Generalizing to arbitrary n,

 P(x_j)=sum_(k=1)^nP_k(x_j)=sum_(k=1)^ndelta_(jk)y_k=y_j.
(9)

The Lagrange interpolating polynomials can also be written using what Szegö (1975) called Lagrange's fundamental interpolating polynomials. Let

pi(x)=product_(k=1)^(n)(x-x_k)
(10)
pi(x_j)=product_(k=1)^(n)(x_j-x_k),
(11)
pi^'(x_j)=[(dpi)/(dx)]_(x=x_j)
(12)
=product_(k=1; k!=j)^(n)(x_j-x_k)
(13)

so that pi(x) is an nth degree polynomial with zeros at x_1, ..., x_n. Then define the fundamental polynomials by

 pi_nu(x)=(pi(x))/(pi^'(x_nu)(x-x_nu)),
(14)

which satisfy

 pi_nu(x_mu)=delta_(numu),
(15)

where delta_(numu) is the Kronecker delta. Now let y_1=P(x_1), ..., y_n=P(x_n), then the expansion

 P(x)=sum_(k=1)^npi_k(x)y_k=sum_(k=1)^n(pi(x))/((x-x_k)pi^'(x_k))y_k
(16)

gives the unique Lagrange interpolating polynomial assuming the values y_k at x_k. More generally, let dalpha(x) be an arbitrary distribution on the interval [a,b], {p_n(x)} the associated orthogonal polynomials, and l_1(x), ..., l_n(x) the fundamental polynomials corresponding to the set of zeros of a polynomial P_n(x). Then

 int_a^bl_nu(x)l_mu(x)dalpha(x)=lambda_mudelta_(numu)
(17)

for nu,mu=1, 2, ..., n, where lambda_nu are Christoffel numbers.

Lagrange interpolating polynomials give no error estimate. A more conceptually straightforward method for calculating them is Neville's algorithm.

Wolfram Web Resources

Mathematica »

The #1 tool for creating Demonstrations and anything technical.

Wolfram|Alpha »

Explore anything with the first computational knowledge engine.

Wolfram Demonstrations Project »

Explore thousands of free applications across science, mathematics, engineering, technology, business, art, finance, social sciences, and more.

Computerbasedmath.org »

Join the initiative for modernizing math education.

Online Integral Calculator »

Solve integrals with Wolfram|Alpha.

Step-by-step Solutions »

Walk through homework problems step-by-step from beginning to end. Hints help you try the next step on your own.

Wolfram Problem Generator »

Unlimited random practice problems and answers with built-in Step-by-step solutions. Practice online or make a printable study sheet.

Wolfram Education Portal »

Collection of teaching and learning tools built by Wolfram education experts: dynamic textbook, lesson plans, widgets, interactive Demonstrations, and more.

Wolfram Language »

Knowledge-based programming for everyone.