18.4 Cubic and Quintic Interpolants 341
q(x, y, z) =
111
x^
y^ z
xy
xz
yz
q yj H ^i>'i ^1^1 >'i^i ^1 >'i ^1
<\ y\ zj x^y^ x^Z9 y^z^ x^ y^ z^ 1
:0.
(18.3)
Though theoretically a solution to the nine-point interpolation problem, (18.3)
does not lend itself to successful numerical treatment. The reason is the = 0 part
of that equation: floating point numbers rarely equal zero, and so tolerances must
be devised. It is not obvious how to do this here.
18.5 Interpolation
Triangular patches may also be used for scattered data interpolation: in that
context, we are given a set of points x^ in the plane, each associated with a
function value Zj and a tangent plane Tj? We wish to find a surface ^(x) that
interpolates to the given data, that is, zixj) =
Zj.
As a preprocessing step, the data
sites Xj are triangulated according to Section 3.6. We then wish to construct a
triangular patch over each of the triangles. These patches will not be parametric,
but rather functional as in Section 17.8.
We should note that more methods exist for the problem of scattered data
interpolation; excellent surveys are in
[246], [247], [248], [339].
1
8.4 Cubic and Quintic Interpolants
In order to illustrate the basic methodology, we discuss the so-called nine-
parameter interpolant. We now assume that we are given function values and
also gradients (i.e., x- and y-partials, or tangent planes).^
A nine-parameter interpolant will be cubic over each triangle, thus being
determined by ten coefficients or Bezier ordinates. Nine of these are immedi-
ately determined by the given data; see Figure 18.4: clearly the three values
^300? ^030? ^003 ^^^ simply the given function values at the triangle's vertices. In-
stead of considering all remaining coefficients, we restrict ourselves to fcoil- ^^
The assumption oi
given
tangent planes or gradients
is
not always
realistic.
Where tangent
plane information is not supplied, it will have to be estimated.
The assumption of given tangent planes is not too realistic; most likely, these will have to
be estimated from the given function values.