SE301: Numerical Methods: Interpolation
SE301: Numerical Methods: Interpolation
Topic 5:
Interpolation
Lectures 20-22:
KFUPM
CISE301_Topic5 KFUPM 1
Lecture 20
Introduction to Interpolation
Introduction
Interpolation Problem
Existence and Uniqueness
Linear and Quadratic Interpolation
Newton’s Divided Difference Method
Properties of Divided Differences
CISE301_Topic5 KFUPM 2
Introduction
Interpolation was used for x sin(x)
long time to provide an
0 0.0000
estimate of a tabulated
function at values that are 0.1 0.0998
not available in the table.
0.2 0.1987
x0 , f ( x0 ) , x1, f ( x1 ) , ...., xn , f ( xn )
Find an nth order polynomial f n (x )
that passes through all points, such that:
CISE301_Topic5 KFUPM 4
Example
Temperature Viscosity
An experiment is used to determine (degree)
the viscosity of water as a function
of temperature. The following table
0 1.792
is generated:
5 1.519
10 1.308
Problem: Estimate the viscosity
when the temperature is 8 degrees.
15 1.140
CISE301_Topic5 KFUPM 5
Interpolation Problem
Find a polynomial that fits the data
points exactly.
V : Viscosity
n
V(T) ak T k T : Temperatur e
k 0 ak : Polynomial
Vi V(Ti ) coefficients
Linear Interpolation: V(T)= 1.73 − 0.0422 T
V(8)= 1.3924
CISE301_Topic5 KFUPM 6
Existence and Uniqueness
Given a set of n+1 points:
x0 , f ( x0 ) , x1, f ( x1 ) , ...., xn , f ( xn )
Assumption: x0 , x1 ,..., xn are distinct
Theorem:
There is a unique polynomial fn(x) of order ≤ n
such that:
f n ( xi ) f ( xi ) for i 0 ,1,...,n
CISE301_Topic5 KFUPM 7
Examples of Polynomial Interpolation
Linear Interpolation Quadratic Interpolation
CISE301_Topic5 KFUPM 8
Linear Interpolation
Given any two points, x0 , f ( x0 ) , x1 , f ( x1 )
42
f1 ( x) 2 x 1 2 x
2 1
CISE301_Topic5 KFUPM 9
Quadratic Interpolation
Given any three points: x0 , f ( x0 ) , x1 , f ( x1 ) , and x2 , f ( x2 )
The polynomial that interpolates the three points is:
f 2 ( x) b0 b1 x x0 b2 x x0 x x1
where :
b0 f ( x0 )
f ( x1 ) f ( x0 )
b1 f [ x0 , x1 ]
x1 x0
f ( x2 ) f ( x1 ) f ( x1 ) f ( x0 )
x2 x1 x1 x0
b2 f [ x0 , x1 , x2 ]
x2 x0
CISE301_Topic5 KFUPM 10
General n Order Interpolation
th
f n ( x) b0 b1 x x0 b2 x x0 x x1 ... bn x x0 ... x xn 1
b0 f ( x0 )
b1 f [ x0 , x1 ]
....
bn f [ x0 , x1 , ... , xn ]
CISE301_Topic5 KFUPM 11
Divided Differences
f [ x k ] f ( xk ) Zeroth order DD
f [ x1 ] f [ x0 ]
f [ x0 , x1 ] First order DD
x1 x0
f [ x1 , x2 ] f [ x0 , x1 ]
f [ x0 , x1 , x2 ] Second order DD
x2 x0
............
f [ x1 , x2 ,..., xk ] f [ x0 , x1 ,..., xk 1 ]
f [ x0 , x1 ,..., xk ]
xk x0
CISE301_Topic5 KFUPM 12
Divided Difference Table
x F[ ] F[ , ] F[ , , ] F[ , , ,]
x0 F[x0] F[x0,x1] F[x0,x1,x2] F[x0,x1,x2,x3]
x1 F[x1] F[x1,x2] F[x1,x2,x3]
x2 F[x2] F[x2,x3]
x3 F[x3]
i 1
x x j
n
f n ( x) F [ x0 , x1 ,..., xi ]
i 0 j 0
CISE301_Topic5 KFUPM 13
Divided Difference Table
x F[ ] F[ , ] F[ , , ]
xi f(xi)
0 -5 2 -4
1 -3 6
0 -5
-1 -15 1 -3
-1 -15
Entries of the divided difference
table are obtained from the data
table using simple operations.
CISE301_Topic5 KFUPM 14
Divided Difference Table
x F[ ] F[ , ] F[ , , ] xi f(xi)
0 -5 2 -4 0 -5
1 -3 6 1 -3
-1 -15 -1 -15
CISE301_Topic5 KFUPM 16
Divided Difference Table
x F[ ] F[ , ] F[ , , ] xi yi
0 -5 2 -4 0 -5
1 -3 6
-1 -15 1 -3
-1 -15
15 (3)
6
1 1
f [ x2 ] f [ x1 ]
f [ x1 , x2 ]
x2 x1
CISE301_Topic5 KFUPM 17
Divided Difference Table
x F[ ] F[ , ] F[ , , ] xi yi
0 -5 2 -4 0 -5
1 -3 6
-1 -15 1 -3
-1 -15
6 ( 2)
4
1 (0)
f [ x1 , x2 ] f [ x0 , x1 ]
f [ x0 , x1 , x2 ]
x2 x0
CISE301_Topic5 KFUPM 18
Divided Difference Table
x F[ ] F[ , ] F[ , , ] xi yi
0 -5 2 -4 0 -5
1 -3 6
-1 -15 1 -3
-1 -15
f 2 ( x) 5 2( x 0) 4( x 0)( x 1)
x y x y
1 0 2 3
2 3 1 0
3 8 3 8
CISE301_Topic5 KFUPM 20
Two Examples
x Y
x Y
1 0 3 1 2 3 3 1
2 3 5 1 0 4
3 8 3 8
P2 ( x) 0 3( x 1) 1( x 1)( x 2) P2 ( x) 3 3( x 2) 1( x 2)( x 1)
x 1
2 x2 1
CISE301_Topic5 KFUPM 21
Properties of Divided Difference
Ordering the points should not affect the divided difference:
f [ x0 , x1 , x2 ] f [ x1 , x2 , x0 ] f [ x2 , x1 , x0 ]
CISE301_Topic5 KFUPM 22
Example
Find a polynomial to x f(x)
interpolate the data.
2 3
4 5
5 1
6 6
7 9
CISE301_Topic5 KFUPM 23
Example
x f(x) f[ , ] f[ , , ] f[ , , , ] f[ , , , , ]
2 3 1 -1.6667 1.5417 -0.6750
4 5 -4 4.5 -1.8333
5 1 5 -1
6 6 3
7 9
f 4 3 1( x 2) 1.6667( x 2)( x 4) 1.5417( x 2)( x 4)( x 5)
0.6750( x 2)( x 4)( x 5)( x 6)
CISE301_Topic5 KFUPM 24
Example
CISE301_Topic5 KFUPM 25
Example
x f(x) f[ , ] f[ , , ] f[ , , , ]
2.5 14 1.4286 -8.8095 1.0120
3.2 15 5.8333 -7.2917
2 8 0
4 8
The first through third-order interpolations can then be implemented as
f ( 2.8) 14 1.428571( 2.8 2.5) 14.428571
1
CISE301_Topic5 KFUPM 27
Lecture 21
Lagrange Interpolation
CISE301_Topic5 KFUPM 28
The Interpolation Problem
Given a set of n+1 points:
x0 , f ( x0 ) , x1, f ( x1 ) , ...., xn , f ( xn )
Find an nth order polynomial: f n (x )
that passes through all points, such that:
CISE301_Topic5 KFUPM 29
Lagrange Interpolation
Problem: xi x0 x1 …. xn
Given
yi y0 y1 …. yn
x x
n
i ( x) x x
j 0, j i
j
i j
CISE301_Topic5 KFUPM 30
Lagrange Interpolation
CISE301_Topic5 KFUPM 31
Lagrange Interpolation Example
P2 ( x) f ( x0 )0 ( x) f ( x1 )1 ( x) f ( x2 )2 ( x) x 1/3 1/4 1
0 ( x)
x x1 x x2
x 1 / 4 x 1 y 2 -1 7
x0 x1 x0 x2 1 / 3 1 / 4 1 / 3 1
1 ( x)
x x0 x x2 x 1 / 3 x 1
x1 x0 x1 x2 1 / 4 1 / 3 1 / 4 1
2 ( x )
x x0 x x1 x 1 / 3 x 1 / 4
x2 x0 x2 x1 1 1 / 3 1 1 / 4
P2 ( x) 2 18( x 1 / 4)( x 1) 116( x 1 / 3)( x 1)
7 2( x 1 / 3)( x 1 / 4)
CISE301_Topic5 KFUPM 32
Example
Find a polynomial to interpolate: x y
0 1
Both Newton’s interpolation
method and Lagrange 1 3
interpolation method must
give the same answer.
2 2
3 5
4 4
CISE301_Topic5 KFUPM 33
Newton’s Interpolation Method
0 1 2 -3/2 7/6 -5/8
1 3 -1 2 -4/3
2 2 3 -2
3 5 -1
4 4
CISE301_Topic5 KFUPM 34
Interpolating Polynomial
3 7
f 4 ( x) 1 2( x) x( x 1) x( x 1)( x 2)
2 6
5
x( x 1)( x 2)( x 3)
8
CISE301_Topic5 KFUPM 35
Interpolating Polynomial Using
Lagrange Interpolation Method
4
f 4 ( x) f ( xi ) i 0 31 22 53 44
i 0
x 1 x 2 x 3 x4
0
0 1 0 2 03 04
x0 x2 x3 x4
1
1 0 1 2 1 3 1 4
x 0 x 1 x 3 x4
2
2 0 2 1 23 24
x 0 x 1 x2 x4
3
3 0 3 1 3 2 3 4
x 0 x 1 x2 x 3
4
4 0 4 1 42 43
CISE301_Topic5 KFUPM 36
Lecture 22
Inverse Interpolation
Error in Polynomial Interpolation
CISE301_Topic5 KFUPM 37
Inverse Interpolation
xi x0 x1 …. xn
Problem :
Given the table and y g . yi y0 y1 …. yn
Find x g such that : f ( x g ) y g .
One approach:
Use polynomial interpolation to obtain fn(x) to interpolate the
data then use Newton’s method to find a solution to:
f n ( xg ) y g
CISE301_Topic5 KFUPM 38
Inverse Interpolation
Alternative Approach
Inverse interpolation: xi x0 x1 …. xn
1. Exchange the roles
yi y0 y1 …. yn
of x and y.
2. Perform polynomial
Interpolation on the yi y0 y1 …. yn
new table. xi x0 x1 …. xn
3. Evaluate
f n ( yg )
CISE301_Topic5 KFUPM 39
Inverse Interpolation
x
y
x y
CISE301_Topic5 KFUPM 40
Inverse Interpolation
Question:
CISE301_Topic5 KFUPM 41
Inverse Interpolation
Example
x 1 2 3
Problem : y 3.2 2.0 1.6
Given the table. Find x g such that f ( xg ) 2.5
0.5
true function
-0.5
-5 -4 -3 -2 -1 0 1 2 3 4 5
CISE301_Topic5 KFUPM 43
Errors in polynomial Interpolation
Polynomial interpolation may lead to large
errors (especially for high order polynomials).
BE CAREFUL
CISE301_Topic5 KFUPM 44
Errors in polynomial Interpolation
Theorem
Let f(x) be a function such that :
(n 1 ) ( n 1)
f (x) is continuous on [a, b], and f M.
Let P(x) be any polynomial of degree n
that interpolates f at n 1 equally spaced points
in [a, b] (including the end points). Then :
n 1
M ba
f(x)-P(x)
4(n 1) n
CISE301_Topic5 KFUPM 45
Example 1
f(x) sin (x)
We want to use 9 th order polynomial to interpolate f(x)
(using 10 equally spaced points) in the interval[0,1.6875].
f ( n 1) 1 for n 0
M 1, n 9
n 1
M ba
f(x)-P(x)
4( n 1) n
10
1 1.6875 9
f(x)-P(x) 1.34 10
4(10) 9
CISE301_Topic5 KFUPM 46
Interpolation Error
If f n (x) is the polynomial of degree n that interpolates
the function f(x) at the nodes x0 , x1 ,..., xn , then for any x
not a node :
n
f(x) f n ( x) f [ x0 , x1 ,..., xn , x] x xi
i 0
n
f(x) f n ( x) f [ x0 , x1 ,..., xn , xn 1 ] x xi
i 0
CISE301_Topic5 KFUPM 48
Divided Difference Theorem
If f ( n ) is continuous on [a, b], and if x0 , x1 ,..., xn
are any n 1 distinct points in [a, b], then for some [a, b] :
1 (n)
f [ x0 , x1 ,..., xn ] f
n!
If f ( x) is a polynomial of order n, 1 4 1 0 0
then : 2 5 1 0
f [ x0 , x1 ,..., xi ] 0 i n 1 3 6 1
4 7
f ( x) 3 x
CISE301_Topic5 KFUPM 49
Summary
The interpolating polynomial is unique.
Different methods can be used to obtain it.
Newton’s divided difference
Lagrange interpolation
Others
Polynomial interpolation can be sensitive to
data.
BE CAREFUL when high order polynomials
are used.
CISE301_Topic5 KFUPM 50