Chapter 3 Interpolation
Chapter 3 Interpolation
Polynomial Interpolation
1. Lagrange Interpolation
What is interpolation?
Many times, data is given only at discrete points such as (x0 , y0 ), (x1 , y1 ) , ......, (xn −1 , yn −1 ) ,
(xn , yn ) . So, how then does one find the value of y at any other value of x ? Well, a
continuous function f ( x ) may be used to represent the n + 1 data values with f ( x ) passing
through the n + 1 points (Figure 1). Then one can find the value of y at any other value of
x . This is called interpolation.
Of course, if x falls outside the range of x for which the data is given, it is no longer
interpolation but instead is called extrapolation.
So what kind of function f ( x ) should one choose? A polynomial is a common
choice for an interpolating function because polynomials are easy to
(A) evaluate,
(B) differentiate, and
(C) integrate,
relative to other choices such as a trigonometric and exponential series.
Polynomial interpolation involves finding a polynomial of order n that passes
through the n + 1 data points. In this chapter we study the the Lagrangian method and the
Newton’s divided difference method.
y
(x3 , y3 )
(x1, y1 )
f (x )
(x2 , y2 )
(x0 , y0 )
x
Figure 1 Interpolation of discrete data.
Chapter 3
where n in f n (x) stands for the n th order polynomial that approximates the function
y = f (x) given at n + 1 data points as (x0 , y0 ), (x1 , y1 ),......, (xn−1 , y n−1 ), (xn , y n ) , and
n x − xj
Li ( x) =
j =0 xi − x j
j i
Example 1
The upward velocity of a rocket is given as a function of time in Table 1.
Determine the value of the velocity at t = 16 seconds with second order polynomial
interpolation using Lagrangian polynomial interpolation.
Solution
For second order polynomial interpolation (also called quadratic interpolation), the velocity
is given by
2
v(t ) = Li (t )v(t i )
i =0
2
t −tj
L0 (t ) =
j =0 0 t −tj
j 0
t − t1 t − t 2
=
t 0 − t1 t 0 − t 2
2 t −t
L1 (t ) =
j
j = 0 t1 − t j
j 1
t − t 0 t − t 2
=
t1 − t 0 t1 − t 2
2 t −t
L2 (t ) =
j
j =0 t 2 − t j
j2
t − t0 t − t1
=
t2 − t0 t 2 − t1
Hence
t − t1 t − t 2 t − t 0 t − t 2 t − t 0 t − t1
v(t ) = v(t 0 ) + v(t1 ) + v(t 2 ), t 0 t t 2
t 0 − t1 t 0 − t 2 t1 − t 0 t1 − t 2 t 2 − t 0 t 2 − t1
(16 − 15)(16 − 20) (16 − 10)(16 − 20)
v(16) = (227.04) + (362.78)
(10 − 15)(10 − 20) (15 − 10)(15 − 20)
(16 − 10)(16 − 15)
+ (517.35)
(20 − 10)(20 − 15)
= (−0.08)(227.04) + (0.96)(362.78) + (0.12)(517.35)
= 392.19 m/s
Example 2
The upward velocity of a rocket is given as a function of time in Table 2.
a) Determine the value of the velocity at t = 16 seconds using third order Lagrangian
polynomial interpolation.
b) Find the absolute relative approximate error in computing v(16) for the third order
polynomial approximation.
Chapter 3
c) Using the third order polynomial interpolant for velocity, find the distance covered by the
rocket from t = 11 s to t = 16 s .
d) Using the third order polynomial interpolant for velocity, find the acceleration of the
rocket at t = 16 s .
Solution
a) For third order polynomial interpolation (also called cubic interpolation), the velocity is
given by
3
v(t ) = Li (t )v(t i )
i =0
(x3 , y3 )
(x1, y1 )
f 3 (x )
(x2 , y2 )
(x0 , y0 )
x
Figure 2 Cubic interpolation.
Since we want to find the velocity at t = 16 , and we are using a third order polynomial, we
need to choose the four data points closest to t = 16 that also bracket t = 16 to evaluate it.
The four points are t 0 = 10, t1 = 15, t 2 = 20 and t 3 = 22.5 .
Then
t0 = 10, v(t 0 ) = 227.04
t1 = 15, v(t1 ) = 362.78
t 2 = 20, v(t 2 ) = 517.35
t 3 = 22.5, v(t 3 ) = 602.97
gives
3 t −t
L0 (t ) =
j
j =0 t 0 − t j
j 0
Chapter 3
t − t1 t − t 2 t − t 3
=
t 0 − t1 t 0 − t 2 t 0 − t 3
3 t −t
L1 (t ) =
j
j = 0 t1 − t j
j 1
t − t 0 t − t 2 t − t 3
=
− t t −
1 0 1 2 1 3
t t t − t
3 t −t
L2 (t ) =
j
j =0 t 2 − t j
j2
t − t 0 t − t1 t − t 3
=
t 2 − t 0 t 2 − t1 t 2 − t 3
3 t −t
L3 (t ) =
j
j =0 t 3 − t j
j 3
t − t0 t − t1 t − t 2
=
t3 − t0 t −
3 1 t 3 − t 2
t
Hence
t − t1 t − t 2 t − t3 t − t 0 t − t 2 t − t3
v(t ) = v(t 0 ) + v(t1 )
t 0 − t1 t 0 − t 2 t 0 − t 3 t1 − t 0 t1 − t 2 t1 − t 3
t − t 0 t − t1 t − t3 t − t 0 t − t1 t − t 2
+ v(t 2 ) + v(t3 ), t 0 t t3
t 2 − t 0 t 2 − t1 t 2 − t3 t3 − t 0 t3 − t1 t3 − t 2
(16 − 15)(16 − 20)(16 − 22.5) (16 − 10)(16 − 20)(16 − 22.5)
v(16) = (227.04) + (362.78)
(10 − 15)(10 − 20)(10 − 22.5) (15 − 10)(15 − 20)(15 − 22.5)
(16 − 10)(16 − 15)(16 − 22.5)
+ (517.35)
(20 − 10)(20 − 15)(20 − 22.5)
(16 − 10)(16 − 15)(16 − 20)
+ (602.97)
(22.5 − 10)(22.5 − 15)(22.5 − 20)
= (−0.0416)(227.04) + (0.832)(362.78) + (0.312)(517.35) + (−0.1024)(602.97)
= 392.06 m/s
b) The absolute percentage relative approximate error, a for the value obtained for v(16)
can be obtained by comparing the result with that obtained using the second order
polynomial (Example 1)
392.06 − 392.19
a = 100
392.06
= 0.033269%
c) The distance covered by the rocket between t = 11 s to t = 16 s can be calculated from the
interpolating polynomial as
Chapter 3
t − t1 t − t2 t − t3
L0 (t ) =
t0 − t1 t0 − t2 t0 − t3
gives the derivative without expansion as
d
(L0 (t )) = t − t1 t − t2 + t − t2 t − t3 + t − t3 t − t1
dt t0 − t1 t0 − t2 t0 − t2 t0 − t3 t0 − t3 t0 − t1
To illustrate this method, linear and quadratic interpolation is presented first. Then, the
general form of Newton’s divided difference polynomial method is presented.
Linear Interpolation
Given ( x0 , y0 ) and ( x1 , y1 ), fit a linear interpolant through the data. Noting y = f (x) and
y1 = f ( x1 ) , assume the linear interpolant f1 ( x) is given by
f1 ( x) = b0 + b1 ( x − x0 )
Since at x = x0 ,
f1 ( x0 ) = f ( x0 ) = b0 + b1 ( x0 − x0 ) = b0
and at x = x1 ,
f1 ( x1 ) = f ( x1 ) = b0 + b1 ( x1 − x0 )
= f ( x0 ) + b1 ( x1 − x0 )
giving
f ( x1 ) − f ( x0 )
b1 =
x1 − x0
So
b0 = f ( x0 )
f ( x1 ) − f ( x0 )
b1 =
x1 − x0
giving the linear interpolant as
f1 ( x) = b0 + b1 ( x − x0 )
f ( x1 ) − f ( x0 )
f 1 ( x) = f ( x0 ) + ( x − x0 )
x1 − x0
Chapter 3
(x1 , y1 )
f1 (x )
(x0 , y0 )
x
Figure 3 Linear interpolation.
Example 3
The upward velocity of a rocket is given as a function of time in Table 3.
Determine the value of the velocity at t = 16 seconds using first order polynomial
interpolation by Newton’s divided difference polynomial method.
Solution
For linear interpolation, the velocity is given by
v(t ) = b0 + b1 (t − t0 )
Since we want to find the velocity at t = 16 , and we are using a first order polynomial, we
need to choose the two data points that are closest to t = 16 that also bracket t = 16 to
evaluate it. The two points are t = 15 and t = 20 .
Then
t 0 = 15, v(t 0 ) = 362.78
t1 = 20, v(t1 ) = 517.35
gives
b0 = v(t 0 )
= 362.78
Chapter 3
v(t1 ) − v(t 0 )
b1 =
t1 − t 0
517.35 − 362.78
=
20 − 15
= 30.914
Figure 4 Graph of velocity vs. time data for the rocket example.
Hence
v(t ) = b0 + b1 (t − t 0 )
= 362.78 + 30.914(t − 15), 15 t 20
At t = 16,
v(16) = 362.78 + 30.914(16 − 15)
= 393.69 m/s
If we expand
v(t ) = 362.78 + 30.914(t − 15), 15 t 20
we get
v(t ) = −100.93 + 30.914t , 15 t 20
and this is the same expression as obtained in the direct method.
Quadratic Interpolation
Given ( x0 , y0 ), ( x1 , y1 ), and ( x2 , y 2 ), fit a quadratic interpolant through the data. Noting
y = f (x), y 0 = f ( x0 ), y1 = f ( x1 ), and y 2 = f ( x 2 ), assume the quadratic interpolant f 2 ( x)
is given by
f 2 ( x) = b0 + b1 ( x − x0 ) + b2 ( x − x0 )( x − x1 )
At x = x0 ,
Chapter 3
f 2 ( x0 ) = f ( x0 ) = b0 + b1 ( x0 − x0 ) + b2 ( x0 − x0 )( x0 − x1 )
= b0
b0 = f ( x0 )
At x = x1
f 2 ( x1 ) = f ( x1 ) = b0 + b1 ( x1 − x0 ) + b2 ( x1 − x0 )( x1 − x1 )
f ( x1 ) = f ( x0 ) + b1 ( x1 − x0 )
giving
f ( x1 ) − f ( x0 )
b1 =
x1 − x0
At x = x2
f 2 ( x2 ) = f ( x2 ) = b0 + b1 ( x2 − x0 ) + b2 ( x2 − x0 )( x2 − x1 )
f ( x1 ) − f ( x0 )
f ( x 2 ) = f ( x0 ) + ( x2 − x0 ) + b2 ( x2 − x0 )( x2 − x1 )
x1 − x0
Giving
f ( x 2 ) − f ( x1 ) f ( x1 ) − f ( x0 )
−
x 2 − x1 x1 − x0
b2 =
x 2 − x0
Hence the quadratic interpolant is given by
f 2 ( x) = b0 + b1 ( x − x0 ) + b2 ( x − x0 )( x − x1 )
f ( x2 ) − f ( x1 ) f ( x1 ) − f ( x0 )
−
f ( x1 ) − f ( x0 ) x2 − x1 x1 − x0
= f ( x0 ) + ( x − x0 ) + ( x − x0 )( x − x1 )
x1 − x0 x2 − x0
(x1 , y1 )
(x2 , y2 )
f 2 (x )
(x0 , y0 )
x
Figure 5 Quadratic interpolation.
Chapter 3
Example 4
The upward velocity of a rocket is given as a function of time in Table 2.
Determine the value of the velocity at t = 16 seconds using second order polynomial
interpolation using Newton’s divided difference polynomial method.
Solution
For quadratic interpolation, the velocity is given by
v(t ) = b0 + b1 (t − t 0 ) + b2 (t − t 0 )(t − t1 )
Since we want to find the velocity at t = 16, and we are using a second order polynomial, we
need to choose the three data points that are closest to t = 16 that also bracket t = 16 to
evaluate it. The three points are t 0 = 10, t1 = 15, and t 2 = 20 .
Then
t 0 = 10, v(t 0 ) = 227.04
t1 = 15, v(t1 ) = 362.78
t 2 = 20, v(t 2 ) = 517.35
gives
b0 = v(t 0 )
= 227.04
v(t ) − v(t 0 )
b1 = 1
t1 − t 0
362.78 − 227.04
=
15 − 10
= 27.148
v(t 2 ) − v(t1 ) v(t1 ) − v(t 0 )
−
t 2 − t1 t1 − t 0
b2 =
t2 − t0
517.35 − 362.78 362.78 − 227.04
−
= 20 − 15 15 − 10
20 − 10
30.914 − 27.148
=
10
= 0.37660
Chapter 3
Hence
v(t ) = b0 + b1 (t − t 0 ) + b2 (t − t 0 )(t − t1 )
= 227.04 + 27.148(t − 10) + 0.37660(t − 10)(t − 15), 10 t 20
At t = 16,
v(16) = 227.04 + 27.148(16 − 10) + 0.37660(16 − 10)(16 − 15)
= 392.19 m/s
If we expand
v(t ) = 227.04 + 27.148(t − 10) + 0.37660(t − 10)(t − 15), 10 t 20
we get
v(t ) = 12.05 + 17.733t + 0.37660t 2 , 10 t 20
This is the same expression obtained by the direct method.
This leads us to writing the general form of the Newton’s divided difference polynomial for
n + 1 data points, (x0 , y0 ), (x1 , y1 ),......, (xn−1 , y n−1 ), (xn , y n ) , as
f n ( x) = b0 + b1 ( x − x0 ) + .... + bn ( x − x0 )( x − x1 )...( x − xn−1 )
where
b0 = f [ x0 ]
b1 = f [ x1 , x0 ]
b2 = f [ x2 , x1 , x0 ]
bn−1 = f [ xn−1 , xn−2 ,...., x0 ]
bn = f [ xn , xn−1 ,...., x0 ]
where the definition of the m th divided difference is
bm = f [ xm ,........, x0 ]
f [ xm ,........, x1 ] − f [ xm −1 ,........, x0 ]
=
xm − x0
From the above definition, it can be seen that the divided differences are calculated
recursively.
For an example of a third order polynomial, given ( x0 , y0 ), ( x1 , y1 ), ( x2 , y 2 ), and ( x3 , y3 ),
f 3 ( x) = f [ x0 ] + f [ x1 , x0 ]( x − x0 ) + f [ x 2 , x1 , x0 ]( x − x0 )( x − x1 )
+ f [ x3 , x 2 , x1 , x0 ]( x − x0 )( x − x1 )( x − x 2 )
b0
b1
b2
x0 f (x0 )
f x1 , x0
b3
f x2 , x1 , x0
x1 f (x1 )
f x2 , x1 f x3 , x2 , x1 , x0
x2 f (x2 ) f x3 , x2 , x1
f x3 , x2
x3 f (x3 )
Example 5
The upward velocity of a rocket is given as a function of time in Table 5.
Chapter 3
a) Determine the value of the velocity at t = 16 seconds with third order polynomial
interpolation using Newton’s divided difference polynomial method.
b) Using the third order polynomial interpolant for velocity, find the distance covered by the
rocket from t = 11 s to t = 16 s .
c) Using the third order polynomial interpolant for velocity, find the acceleration of the
rocket at t = 16 s .
Solution
a) For a third order polynomial, the velocity is given by
v(t ) = b0 + b1 (t − t 0 ) + b2 (t − t 0 )(t − t1 ) + b3 (t − t 0 )(t − t1 )(t − t 2 )
Since we want to find the velocity at t = 16, and we are using a third order polynomial, we
need to choose the four data points that are closest to t = 16 that also bracket t = 16 to
evaluate it. The four data points are t 0 = 10, t1 = 15, t 2 = 20, and t 3 = 22.5 .
Then
t 0 = 10, v(t 0 ) = 227.04
t1 = 15, v(t1 ) = 362.78
t 2 = 20, v(t 2 ) = 517.35
t 3 = 22.5, v(t 3 ) = 602.97
gives
b0 = v[t 0 ]
= v(t0 )
= 227.04
b1 = v[t1 , t0 ]
v(t ) − v(t 0 )
= 1
t1 − t 0
362.78 − 227.04
=
15 − 10
= 27.148
b2 = v[t 2 , t1 , t 0 ]
v[t 2 , t1 ] − v[t1 , t 0 ]
=
t2 − t0
Chapter 3
v(t 2 ) − v(t1 )
v[t 2 , t1 ] =
t 2 − t1
517.35 − 362.78
=
20 − 15
= 30.914
v[t1 , t 0 ] = 27.148
v[t , t ] − v[t1 , t 0 ]
b2 = 2 1
t2 − t0
30.914 − 27.148
=
20 − 10
= 0.37660
b3 = v[t 3 , t 2 , t1 , t 0 ]
v[t , t , t ] − v[t2 , t1 , t0 ]
= 3 2 1
t3 − t 0
v[t , t ] − v[t 2 , t1 ]
v[t 3 , t 2 , t1 ] = 3 2
t 3 − t1
v(t ) − v(t 2 )
v[t3 , t 2 ] = 3
t3 − t 2
602.97 − 517.35
=
22.5 − 20
= 34.248
v(t ) − v(t1 )
v[t 2 , t1 ] = 2
t 2 − t1
517.35 − 362.78
=
20 − 15
= 30.914
v[t , t ] − v[t 2 , t1 ]
v[t 3 , t 2 , t1 ] = 3 2
t 3 − t1
34.248 − 30.914
=
22.5 − 15
= 0.44453
v[t 2 , t1 , t 0 ] = 0.37660
v[t , t , t ] − v[t2 , t1 , t0 ]
b3 = 3 2 1
t3 − t 0
0.44453 − 0.37660
=
22.5 − 10
= 5.4347 10−3
Hence
v(t ) = b0 + b1 (t − t 0 ) + b2 (t − t 0 )(t − t1 ) + b3 (t − t 0 )(t − t1 )(t − t 2 )
Chapter 3