You are on page 1of 36

# Spline Interpolation Method

## Authors: Autar Kaw, Jai Paul

http://numericalmethods.eng.usf.edu
Transforming Numerical Methods Education for STEM

http://numericalmethods.eng.usf.edu 1
Spline Method of
Interpolation

http://numericalmethods.eng.usf.edu
What is Interpolation ?
Given (x0,y0), (x1,y1), …… (xn,yn), find the
value of ‘y’ at a value of ‘x’ that is not given.

3 http://numericalmethods.eng.usf.edu
Interpolants

## Polynomials are the most common

choice of interpolants because they
are easy to:

Evaluate
Differentiate, and
Integrate.
4 http://numericalmethods.eng.usf.edu
Why Splines ?

1
x y
1  25 x 2

-1.0 0.038461

-0.6 0.1

-0.2 0.5

0.2 0.5

0.6 0.1

## 1.0 0.038461 Figure : 5th order polynomial vs. exact function

5 http://numericalmethods.eng.usf.edu
Why Splines ?

## Figure : Higher order polynomial interpolation is a bad idea

6 http://numericalmethods.eng.usf.edu
Linear Interpolation

Given  x0 , y0  ,  x1 , y1  ,......,  x n 1 , y n1  x n , y n  , fit linear splines to the data. This simply involves
forming the consecutive data through straight lines. So if the above data is given in an ascending
order, the linear splines are given by  yi  f ( xi ) 
Figure : Linear splines

7 http://numericalmethods.eng.usf.edu
Linear Interpolation (contd)
f ( x1 )  f ( x 0 )
f ( x )  f ( x0 )  ( x  x 0 ), x 0  x  x1
x1  x 0

f ( x 2 )  f ( x1 )
 f ( x1 )  ( x  x1 ), x1  x  x 2
x2  x1

.
.
.
f ( x n )  f ( x n 1 )
 f ( x n 1 )  ( x  x n 1 ), x n 1  x  x n
x n  x n 1

## Note the terms of

f ( xi )  f ( x i1 )
xi  x i 1

## in the above function are simply slopes between xi 1 and x i .

8 http://numericalmethods.eng.usf.edu
Example

## The upward velocity of a rocket is given as a

function of time in Table 1. Find the velocity at
t=16 seconds using linear splines.
Table Velocity as a
function of time

## t (s) v(t ) (m/s)

0 0
10 227.04
15 362.78
20 517.35
22.5 602.97
30 901.67
Figure. Velocity vs. time data
for the rocket example
9 http://numericalmethods.eng.usf.edu
Linear Interpolation

517.35

## t1  20, v (t1 )  517.35

500
v(t )  v (t 0 )
v (t )  v(t 0 )  1 (t  t 0 )
t1  t 0 ys

f ( range)
450
517.35  362.78 f x 
 362.78  (t  15) desired
20  15
400
v (t )  362.78  30.913( t  15)
At t  16, 362.78 350
10 12 14 16 18 20 22 24
v (16)  362.78  30.913(16  15) x s 10
0
x s  range x desired x s  10
1

 393.7 m/s

10 http://numericalmethods.eng.usf.edu

Given  x0 , y0  ,  x1 , y1  ,......,  x n 1 , y n 1  ,  x n , y n  , fit quadratic splines through the data. The splines
are given by
f ( x )  a1 x 2  b1 x  c1 , x 0  x  x1

 a 2 x 2  b2 x  c2 , x1  x  x 2
.
.
.
 a n x 2  bn x  cn , x n 1  x  x n

Find a i , bi , ci , i  1, 2, …, n

11 http://numericalmethods.eng.usf.edu
Each quadratic spline goes through two consecutive data points
2
a1 x 0  b1 x 0  c1  f ( x0 )

a1 x12  b1 x1  c1  f ( x1 ) .
.
.
2
a i xi 1  bi xi 1  ci  f ( xi 1 )
2
a i xi  bi xi  c i  f ( xi ) .

.
.
2
a n x n 1  bn x n1  c n  f ( xn 1 )
2
a n x n  bn xn  cn  f ( x n )

## This condition gives 2n equations

12 http://numericalmethods.eng.usf.edu

The first derivatives of two quadratic splines are continuous at the interior points.
For example, the derivative of the first spline
a1 x 2  b1 x  c1 is 2 a1 x  b1
The derivative of the second spline
a 2 x 2  b2 x  c 2 is 2 a2 x  b2
and the two are equal at x  x1 giving
2 a1 x1  b1  2a 2 x1  b2

2 a1 x1  b1  2a 2 x1  b2  0

13 http://numericalmethods.eng.usf.edu

## Similarly at the other interior points,

2a 2 x 2  b2  2a3 x 2  b3  0
.
.
.
2ai xi  bi  2ai 1 xi  bi 1  0

.
.
.
2a n 1 x n 1  bn 1  2a n x n1  bn  0

We have (n-1) such equations. The total number of equations is (2n)  (n  1)  (3n  1) .
We can assume that the first spline is linear, that is a1  0

14 http://numericalmethods.eng.usf.edu

This gives us ‘3n’ equations and ‘3n’ unknowns. Once we find the ‘3n’ constants,
we can find the function at any value of ‘x’ using the splines,

f ( x)  a1 x 2  b1 x  c1 , x0  x  x1

 a 2 x 2  b2 x  c 2 , x1  x  x 2
.
.
.
 a n x 2  bn x  c n , x n 1  x  x n

15 http://numericalmethods.eng.usf.edu
Part 1 of 2

http://numericalmethods.eng.usf.edu
The upward velocity of a rocket is t v(t)
given as a function of time. Using
a) Find the velocity at t=16 seconds 0 0
b) Find the acceleration at t=16 10 227.04
seconds
c) Find the distance covered between 15 362.78
t=11 and t=16 seconds 20 517.35
22.5 602.97
30 901.67
Data and Plot
t v(t)
s m/s
0 0
10 227.04
15 362.78
20 517.35
22.5 602.97
30 901.67
Solution
v(t )  a1t  b1t  c1 ,
2
0  t  10
 a 2 t  b2 t  c 2 , 10  t  15
2

 a3t  b3t  c3 , 15  t  20
2

 a 4 t  b4 t  c 4 , 20  t  22.5
2

 a5 t  b5 t  c5 ,
2
22.5  t  30

## Let us set up the equations

Each Spline Goes Through
Two Consecutive Data Points
v(t )  a1t  b1t  c1 , 0  t  10
2

a1 (0)  b1 (0)  c1  0
2

## a1 (10)  b1 (10)  c1  227.04

2
Each Spline Goes Through
Two Consecutive Data Points
t v(t)
s m/s
a 2 (10) 2  b2 (10)  c 2  227.04
0 0 a 2 (15) 2  b2 (15)  c 2  362.78
10 227.04 a3 (15)  b3 (15)  c3  362.78
2

15 362.78
a3 (20)  b3 (20)  c3  517.35
2
20 517.35
22.5 602.97 a4 (20)  b4 (20)  c4  517.35
2

## 30 901.67 a4 (22.5) 2  b4 (22.5)  c4  602.97

a5 (22.5)  b5 (22.5)  c5  602.97
2

## a5 (30) 2  b5 (30)  c5  901.67

Derivatives are Continuous at
Interior Data Points
v(t )  a1t  b1t  c1 , 0  t  10
2

 a 2 t 2  b2 t  c 2 ,10  t  15
d
dt
a1t  b1t  c1
2
 
d
dt
a2t  b2t  c2
2

t 10 t 10

##  2a1t  b1  t 10   2a2t  b2  t 10

2a1 10  b1  2a2 10  b2
20a1  b1  20a2  b2  0
Derivatives are continuous at
Interior Data Points
At t=10
2a1 (10)  b1  2a 2 (10)  b2  0
At t=15
2a 2 (15)  b2  2a3 (15)  b3  0
At t=20
2a3 (20)  b3  2a 4 (20)  b4  0
At t=22.5
2a 4 (22.5)  b4  2a5 (22.5)  b5  0
Last Equation
a1  0
Final Set of Equations
bcaii

Coefficients of Spline
i ai bi ci
1 0 22.704 0
2 0.8888 4.928 88.88
3 -0.1356 35.66 -141.61
4 1.6048 -33.956 554.55
5 0.20889 28.86 -152.13
END

http://numericalmethods.eng.usf.edu
Part 2 of 2

http://numericalmethods.eng.usf.edu
Final Solution
v(t )  22.704t , 0  t  10
 0.8888t 2  4.928t  88.88, 10  t  15
 0.1356t 2  35.66t  141.61, 15  t  20
 1.6048t 2  33.956t  554.55, 20  t  22.5
 0.20889t 2  28.86t  152.13, 22.5  t  30
Velocity at a Particular Point
a) Velocity at t=16
v(t )  22.704t , 0  t  10
 0.8888t 2  4.928t  88.88, 10  t  15
 0.1356t 2  35.66t  141.61, 15  t  20
 1.6048t 2  33.956t  554.55, 20  t  22.5
 0.20889t 2  28.86t  152.13, 22.5  t  30

## v16   0.135616  35.6616  141.61

2

 394.24 m/s
Acceleration from Velocity Profile
b) Acceleration at t=16
v(t )  22.704t , 0  t  10
 0.8888t 2  4.928t  88.88, 10  t  15
 0.1356t 2  35.66t  141.61, 15  t  20
 1.6048t 2  33.956t  554.55, 20  t  22.5
 0.20889t 2  28.86t  152.13, 22.5  t  30
Acceleration from Velocity Profile
The quadratic spline valid at t=16 is given
,

by
v t   0.1356t 2  35.66t  141.61, 15  t  20
d
a (t )  ( 0.1356t  35.66t  141.61)
2

dt
 0.2712t  35.66, 15  t  20
a (16)  0.2712(16)  35.66  31.321m/s
2
Distance from Velocity Profile
c) Find the distance covered by the rocket from
t=11s to t=16s.
v(t )  22.704t , 0  t  10
 0.8888t 2  4.928t  88.88, 10  t  15
 0.1356t 2  35.66t  141.61, 15  t  20
 1.6048t 2  33.956t  554.55, 20  t  22.5
 0.20889t 2  28.86t  152.13, 22.5  t  30
16
S 16  S 11   v (t )dt
11
Distance from Velocity Profile
v t   0.8888t 2  4.928t  88.88, 10  t  15
 0.1356t 2  35.66t  141.61, 15  t  20
16 15 16
S 16  S 11   v (t )dt   v (t )dt   v (t )dt
11 11 15
15
  (0.8888t 2  4.928t  88.88)dt
11
16
  (0.1356t 2  35.66t  141.61)dt
15

 1595.9 m