BICUBIC SPLINE INTERPOLATION
By CARL DE BOOR
1. Introduction. Let values Uij = u(x" Yj) be given at the mesh-points
(x" Yj) 'Of a rectangular mesh, (i = 0, " . , I; j = 0, ... , J); let the normal
derivatives be given at the boundary points of the mesh, i.e., Pij = U.,(x., Yj)
for i = 0,1 and j = 0, ... , J, and qij = Uy(Xi, Yj) for i = 0, ... , I and j =
0, J; finally, let 8ij = U'"I/(x" Yj) be given at the four corners of the mesh. The
problem is to fit a "smooth" function u(x, y) E C2 through these given values.
The bicubic spline interpolation method to be described yields a piecewise
bicubic polynomial function u(x, y). This is defined in each rectangular cell
Ri; : Xi-I ~ X ~ Xi; Yi-l ~ Y ~ Yi of the grid as a bicubic polynomial, i.e.,
u(x, y) = ei;(x, y) = L:!..n-o a:!.. (x - Xi-I) m(y - Yj-l)", (X, y) E R ij •
It is shown in §3 that there exists exactly one such piecewise bicubic polynomial
function which assumes the given values and is of class C2• In §§4-5, an efficient
procedure for computing the coefficients a:!" is described.
2. Linearized Spline Interpolation. Bicubic spline interpolation is a two-
dimensional analog of "linearized spline interpolation" (cf. [1, p. 258]) for func-
tions of one variable. Some apparently unpublished properties of this
interpolation procedure are needed to establish this analogy. A short resume of
linearized spline interpolation is, therefore, given here.
For functions of one variable, linearized spline interpolation defines a func-
tion u(x) of class C2 which assumes given values Ui = u(x.) at given points
Xi, i = 0, ... , I, Xo < Xl < ... < XI, and given slopes Pi = U'(Xi) at the
two endpoints Xo and XI . The interpolating function is a cubic polynomial in
each of the intervals [Xi-I, Xi], i = 1, ... , I. The points Xi, i = 0, " . , I, are
called the joints of u(x). Let S(z; Zl, Z2, ... , z.. ), Zl < Z2 < ... < Z,,' denote
the linear space of all functions u(z) of class C 2 on the interval [Zl , Zn], which
are equal to a cubic polynomial in each of the intervals [Zi-l , Zi], i = 2, ... , n,
i.e., piecewise cubic.
THEOREM 1. For each set {uo, Ul, ... , UI, po, PI} of values there exists
exactly one u(x) E Sex; Xo, ... , XI) such that
(1) U(Xi) = Ui, i = 0, ... , I, U'(Xo) = po, U'(XI) = PI.
PROOF. We first recall a well-known result.
LEMMA 1. There is exactly one cubic polynomial e(x) = L:!....o O!m(X - a) III
which assumes given values for e(x) and e'(x) at the endpoints of any interval
[a, b], a ~ b. This polynomial is
e(x) = e(a) + e'(a)(x - a) + [3 e(~i ~ :)~a) - e'(b)b ~ 2:' (a)] (x - al
(2) + [-2 e(b) - e(a) + e' (b) + e' (a)] (x _ at
(b - a)3 (b - a)2
212
BICUBIC SPLINE INTERPOLATION 213
The first statement follows from the fact that the determinant of the matrix
connecting c(a), c'(a), c(b), c'(b) and the four coefficients am is (b - a)-4 ~
for b ~ a. Equation 2 then follows by inspection.
°
COROLLARY. If Ui and Pi are given for i = 0, ... ,I, then there exists exactly
one piecewise cubic polynomial u(x) E al with joints Xo, ... , XI, which satisfies
U(Xi) = Ui and U'(Xi) = pi, i = 0, ... ,I.
LEMMA 2. Let Xo , Xl , X2 be such that Axo = Xl - Xo ~ and .::lXl = X2 -
Xl ~ 0, but not necessarily Xo ~ X2. Let vex) and w(x) be cubic polynomials
°
satisfying V(Xl) = W(Xl) = Ul and v' (Xl) = w' (Xl) = PI . Then v" (Xl) = w" (Xl)
if and only if
Axl v' (xo) + 2 (Axl + Axo) PI + Axo w' (X2)
(3)
= 3 [~: (W(X2) - Ul) + ~: (Ul - V(xo» J.
PROOF. Set a = Xl, b = Xo, c(X) == vex) in (2) j then
V
"( ) = 2 [3
Xl -A-
- ...Xo
v (xo) A - Ul
- ...Xo
- V, (Xo) - 2]
PI .
Similarly, set a = Xl, b = X2, c(X) == w(x) in (2) j then
W "() 2[3
Xl = -
Axl
W (X2) - Ul -
Axl
W , (X2) - 2]
PI .
Thus W"(Xl) = V"(Xl) if and only if (3) holds.
COROLLARY. Let u(x) be a piecewise cubic polynomial of class al with joints
Xo, .•. ,XI. Forgivenui = u(Xi),i = 0, ···,1,andpo = u'(Xo),Pr = U'(XI),
there exists exactly one set of values Pi = U'(Xi), i = 1, ... , I - 1, such that
u(x) E a2•
PROOF. By Lemma 2, the continuity of u"(x) for u(x) E al is equivalent to
a set of I - 1 linear equations
Axi Pi-I + 2 (Ax. + .::lxi-l) p. + .::lxi-I p.+!
(4)
= 3 [Axi-l .::lUi + Ax, .::lUi-I] , i 1,··· ,I - 1,
Ax. Axi-l
for the I - 1 unknowns, Pi , i = 1, ... , I - 1. The tridiagonal matrix of this
linear system is strictly diagonally dominant, hence* has only non-zero eigen-
values and is thus non-singular. The I - 1 equations (4) are, therefore, linearly
independent and hence determine the Pi, i = 1, ... , I - 1, uniquely.
The Corollaries to Lemmas 1 and 2 imply Theorem 1, which concludes the
proof.
Lemmas 1 and 2 may be used to devise an efficient computational scheme
for the evaluation of the interpolating function u(x) for given u., po, PI. In
this scheme, one computes values Pi = U'(Xi), i = 1, ... , I - 1, from equation
(4). Since u(x) equals a cubic polynomial Ci(X) in each interval [Xi-I, Xi], one
* This follows from Gershgorin's Circle Theorem, cf. [2, Thm. 3.3.(a), p. 11].
214 CARL DE BOOR
then uses equation (2) to compute u(x) = c.(x) from c.(xl<) = Uk and C~(Xk)
Pk, k = i - 1, i, for x E [Xi-I, x.].
Theorem 1 has as a consequence
COROLLARY 1. Sex; Xo, .•• , XI) is an (I + 3)-dimensional linear space.
PROOF. Equation (1) assigns to each u(x) E Sex; Xo, ... , XI) a unique
vector {uo, ... , UI, po, PI!. Theorem 1 shows that equation 1 assigns, con-
versely, a unique u(x) E Sex; Xo, ... , XI) to each vector {Uo, ••• , UI, Po, PI}'
COROLLARY 2. The set of ¢.(x) E sex; Xo, ... , XI), i = 0, ... ,I + 2, de-
fined by the conditions
O, i ¢ j
¢;(x.) = Oii = { l,'t ., ¢;(xo) = ¢;(Xr) = 0, for i, j = 0, ... , I,
= J
(5) ¢I+l(X.) = ¢I+2(X.) = 0, for i = 0, "', I,
¢;+I(XO) = ¢;+2(XI) 1, ¢;+I(XI) = ¢;+2(XO) = 0,
is a basis of the linear space Sex; Xo, ••. ,XI)'
3. Bicubic Spline Interpolation. We are now ready to treat bicubic spline
interpolation.
For the (J + 3)-dimensional linear space S(y; Yo, ... , YJ), let {lPi(Y)},
j = 0, ... , J + 2, denote the basis defined in Corollary 2 of Theorem 1. Con-
sider the tensor product T = Sex; Xo, ... , XI) ® S(y; Yo, ... , YJ). T is the
(I + 3)(J + 3)-dimensionallinear space of all functions of the form
(6) U(x, y) = :E~!.~ :E~:;o f3mn¢m(X)lPn(Y).
2
The ¢m and IPn are piecewise cubic and of class C on R: XO ~ x ~ XI ; Yo ~ Y ~
YJ • Therefore, any product or linear combination of the ¢m and IPn is piecewise
2 2
bicubic and of class C , i.e., u(x, y) E C on R for any choice of the coefficients
f3mn.* Conversely, every function, which is a bicubic polynomial in each of the
rectangles Rij : Xi-l ~ x ~ x. ; Y ;-1 ~ Y ~ Y j , and is of class c on R, is in T.
2
THEOREM 2. Let there be given values
Uij U(Xi,Yi), i = 0, '" , I; j = 0, ... , J,
Pi; = U.,(x" Yi), i = 0, I; j = 0, ... , J,
(7)
q'i = Uy(x" Y;), i = 0, ... , I; j = 0, J, and
Si; = U"'II(X",Yi), i = 0, I; j = 0, J.
Then there exists exactly one piecewise bicubic function u(x, y) of the form (6),
which satisfies (7).
PROOF. Equations (5) (and their analogs for IPn(Y» imply that, for functions
* Clearly, the higher order partial derivatives 'Uuu , 'U.,uv , 'U""v , of 'U are continuous on
R as well.
BICUBIC SPLINE INTERPOLATION 215
of the form (6), equations (7) are equivalent to
Ui; = u(x., Yj)
= L~~o L~~o{3mnq,m(X.)1/I,,(Yj) = {3i;, i = 0,"', Iii = 0, "', J,
(
p'j=U",Xi,Yj) = "L..L..{3m"q,m
" ' (X.)1/1" ()
Y = {f3I+l,;
{3 ,i -=
... OJ
I ' J. = 0, " ' , J ,
1+2,J , ~ -
q.; = Uy ( x., Yj ) = L..L..pm"q,m
" " f.1
Xi '1''' Yi
().,.' ( )
= {f3"J+1'
{3. iJ' -= J OJ ' ~. = 0,"', I,
(8) .,J+2, -
f3I+l'J+1' i = O,j = 0
" f3I+l,J+2, i = O,j = J
8'j = U"",(Xi,Yj) = L L{3m"q,m(Xi)1/I,,(Yj) = f3 .. - I J' - O'
{ 1+2,J+l , ~ - , -
f3I+2,J+2, i = I, j = J
Since each 13m" occurs exactly once in the last members of the preceding (I + 3)
+
(J 3) equations, and each of these equations is equivalent to one of the (I + 3)
(J+ 3) conditions (7), the theorem follows.
4. Derivatives at Mesh-points. In §3, the existence and uniqueness of a
piecewise bicubic function u(x, y) f C2 of the form (6) satisfying the conditions
(7) was proved. In the following pages, an efficient computational scheme for
the evaluation of u(x, fi) defined by (6) and (7) at a point (x, fi) E R is derived,
which makes use of the piecewise polynomial character of u( x, y). The procedure
is a two-dimensional analog of the one described at the end of §2 for "linearized
spline interpolation". The relevant equations are derived in the following
Lemmas 3 and 4.
By definition, the interpolating function u(x, y) equals a bicubic polynomial
(9) c'j(X, y) L!,n-o'Y!,i,,(X - X'_l)m(y - Yi-l)"
in Rii : Xi-I ~ X ~ Xi i YH ~ Y ~ Yj •
LEMMA 3. Let Ui; , Pi; , qij and 8ij be given at the four corners of the rectangle
R i ; • Then there exists exactly one bicubic polynomial Ci;(X, y) (9) which as-
sumes the given values. The matrix r ij = II 'Y!,i" II of coefficients in (9) is given
in terms of the matrix Kii of given values by the matrix equation
(10) A (Ax,_I) K ijA (fly j-l) rij,
where
K ij -_\ -Bi-l,j-l : Bi-l,; \
-----------
B',j_l [ Bij
with Bm" = Ipm" qm"m" I'
Um"
8
and the matrix A(h) is defined by
A (h) =
o
1
I -31h2
° °
1
-21h
° °
o
31h
7
-1/h
-2lha
2 2
21h' 1/k 1/h
216 CARL DE BOOR
PROOF. The first part of the lemma is the special case I = J = 1 of Theorem
2. Since equation (10) is linear in Kij , the second part of the lemma may be
verified by computations showing its correctness for the sixteen basis functions
(x - Xi-I) m(y - Yi-l)", m, n = 0, ... ,3.
LEMMA 4. If the values (7) are given, then, for u(x, y) of the form (6), the
values Pi; = U,,(Xi, Yi), (i = 1, "',1 - l;j = 0,,," J), qij = Uu(Xi, Yi),
(i = 0, "', I;j = 1, ... ,J - 1), and 8il = UZg(x.:, y;), (i = 1, "', 1- 1;
j = 0, J, and i = 0, \\\\.\, I;j = 1, .. , , J - 1), are uniquely determined by
thefollowing21 + J + 51inear systems of altogether3IJ + 1+ J - 5equations:
for j = 0, '" , J,
Axi-l Pi-Hoi + 2 (AXi-1 + AX;) pi; + AX. Pi-I,;
(11)
- U~I' - u" + .lXi_I"
--
=
.1Xi_l
3 [- ( ) AX.: (
u .. - U·..... 1 .
)]
i = 1, "', 1- 1;
Ax; .J ., ,J ,
for j = 0, J,
Axi-l 81+1,; + 2 (.1:&i-1 + Ax.) 8;; + Ax,8i-l.;
(12)
= 3 [ ~'1A --
",Xi
(ql+l,; - qij) + ...~
Ax·
Xi-l
(q;j - qi-l,i)
]
, i = 1, "', 1- 1;
for i = 0, ... , I,
.1YH q.,i+l + 2(AYH + AYi)qi; + AY; qi,i-l
(13)
= 3 [AYi-l (u·',3+1 - u .,..) + AYI-l"
Ayj (U" - U i j I)J j = 1" .,. J - l',
.1Yi ,-,
1
= 0, '" , 1,
for i
"
.1Yi-l 8;';+1 + 2 (AYi-I + AYi) 8il + Ay; 8'.i-l
(14)
A-: (pi,HI - pi,i) + .......--:-
= 3 [ AYi-l AYi (P'i - Pi';-l) ] , j = 1"", J - 1.
... y, ...y,-l
PROOF. Along each mesh-line Y = Yi, j = 0, ... , J,
u(x,y) = Vj(x) ES(X;Xo,'" ,Xl), and u,,(x,y;) = v; (x).
v;
By the Corollary to Lemma 2 (in §2), the numbers (Xi) = u",(x., Yj) = Pii,
i = 1, '" , I - 1, are uniquely determined if Vj(x;), i = 0, ... , I, and v;(xo),
V;(Xl) are known. Since Vj(x,) = Uij, i = 0, ... , I, and v;(xo) = POj, V~(XI) =
prj are given for j = 0, .. , , J, it follows from the Corollary to Lemma 2 that
P'i, (i = 1, ... , I - Ijj = 0, .,. , J) is uniquely determined by the J 1 +
sets of (I - 1) equations (11), given the values (7). By similar reasoning, equa-
tions (13) determine qij, (i = 0, ... I; j = 1, ." , J - 1), uniquely, given
the values (7). Along each mesh-line y = Yi, j = 0, J,
Uu(x, Yi) =L (tP,.,(x) (L (Jm,.,p~(Yi)) = Wj(x) E S(Xj Xo , ." , XI),
BICUBIC SPLINE INTERPOLATION 217
and uzl/(x, Yj) = w;(x). Since W;(Xi) = Sij, i = 0, I, and Wj(Xi) = qij, i =
0, ... ,I, is given for j = 0, J, equations (12) determine Sij, (i = 1, ... ,I - 1;
j = 0, J), uniquely, given the values (7). Finally, for each i = 0, ... , I,
u,,(x, ,y) = Zi(Y) E S(y; Yo, •.• , YJ), and Uzy(Xi' y) = z~(y).
For each i = 0, "', I, Zi(Yj) = U,,(Xi, Y;), j = 0, "', J, is either given or
can be uniquely detennined from (11), and z~(yj), j = 0, J, is either given or
can be uniquely detennined from (12). We invoke the Corollary to Lemma 2
a last time to conclude that Sij, (i = 0, ... , I j j = 1, ... , J - 1), is uniquely
deterInined by equations (14) with (11) and (12), given the values (7). This
proves Lemma 4.
6. Computational Procedure. We are now ready to describe the computa-
tional procedure. First compute the values Pij , qij , and Sij from the given values
(7) at all mesh-points (Xi, Yj), at which they are not given, using equations
(11)-(14). The computation of these numbers pij, qij and Sij from these equa-
tions can be done very efficiently and accurately by Gauss eliInination, since
the matrix of each of the 21 + J + 5 systems of equations (11)-(14) is tri-
diagonal and strictly diagonally dOIninant. In solving such a linear system
B~ = 4., B = II bij II and tridiagonal, g = {Zl' Z2, ••• ,Zn}, 4. = {d1 , d2 , ••• ,d,,},
by Gauss eliInination, one first computes quantities b~i by
(15) b~l bl l , b~i bii - bi,i-lbi-l,i/b~-l,i-l' i 2,' .. , n.
One then computes a vector 4.' = {d~, d~ , ... , d~} by
(16) d~ d1 , d~ d. - bi,i-l d~-t/b~-l,i-l , i = 2, " ' , n,
and, finally, finds the solution by the recursion formula
Z" d~/b~n, Zi = (d~ - bi,i+1Zi+l)/b~i,
(17)
i = n - 1, n - 2, ... , 1.
Since only two distinct matrices appear in equations (11)-(14), one has to use
(15) only twice, and then solves each of the 21 + J + 5 systems (11)-(14) in
turn, using (16) and (17) only.
Having solved equations (11)-(14), and stored the results together with
the given values (7), one then has the value of u, u" , Uy, and Uzy available at
every mesh-point (Xi, Yj) of the mesh. Now use equation (10) in each rectangle
Rij to compute the coefficients "/:.t" of the bicubic polynoInial (9) in that rec-
tangle from the values of u, u" , Uy and Uiy at the four corners of Rij . Once the
coefficients "/:.t" of (9) are computed for each rectangle R ij , the evaluation of
the interpolating function u(x, y) at a point (X, '0) E R reduces to finding indices
(i, j) such that (x, y) E R ij , followed by the evaluation of the bicubic poly-
noInial (9).
The method of bicuhic spline interpolation can be generalized, using tensor
218 CARL DE BOOR
products, to functions of n independent variables of class C2 on an n-dimensional
hypercuboid, following the pattern outlined in §§3-5. This generalization will
be presented elsewhere.
REFERENCES
[I] G. BIRKHOFF AND H. L. GARABEDIAN, "Smooth Surface Interpolation", J. Math.
Physics, 39 (1960), pp. 258-268.
[2] M. MARCUS, "Basic Theorems in Matrix Theory", NBS Appl. Math. Series 57 (1960).
(Received February 21, 1962)