Main Content

Multivariate splines can be obtained from univariate splines by the tensor product construct. For example, a trivariate spline in B-form is given by

$$f\left(x,y,z\right)={\displaystyle \sum _{u=1}^{U}{\displaystyle \sum _{v=1}^{V}{\displaystyle \sum _{w=1}^{W}{B}_{u,k}\left(x\right){B}_{v,l}\left(y\right){B}_{w,m}\left(z\right){a}_{u,v,w}}}}$$

with *B _{u,k},B_{v,l},B_{w,m}* univariate
B-splines. Correspondingly, this spline is of order

A very different bivariate spline is the *thin-plate spline*.
This is a function of the form

$$f\left(x\right)={\displaystyle \sum _{j=1}^{n-3}\Psi \left(x-{c}_{j}\right){a}_{j}+x\left(1\right){a}_{n-2}+x\left(2\right){a}_{n-1}+{a}_{n}}$$

with ψ(*x*)=|*x*|^{2}log|*x*|^{2} the
thin-plate spline basis function, and |*x*| denoting
the Euclidean length of the vector *x*. Here, for
convenience, denote the independent variable by *x*,
but *x* is now a *vector* whose
two components, *x*(1) and *x*(2),
play the role of the two independent variables earlier denoted *x* and *y*.
Correspondingly, the sites *c _{j}* are
points in ℜ

Thin-plate splines arise as bivariate *smoothing splines*,
meaning a thin-plate spline minimizes

$$p{\displaystyle \sum _{i=1}^{n-3}\left|{y}_{i}-f{c}_{i}{}^{2}\right|+\left(1-p\right){\displaystyle \int \left({\left|{D}_{1}{D}_{1}f\right|}^{2}+2{\left|{D}_{1}{D}_{2}f\right|}^{2}+{\left|{D}_{2}{D}_{2}f\right|}^{2}\right)}}$$

over all sufficiently smooth functions *f*.
Here, the *y _{i}* are data values
given at the data sites

Thin-plate splines are functions in stform, meaning that, up
to certain polynomial terms, they are a weighted sum of arbitrary
or scattered translates Ψ(· -c) of one fixed function,
Ψ. This so-called basis function for the
thin-plate spline is special in that it is radially symmetric, meaning
that Ψ(*x*) only depends on the Euclidean length,
|*x*|, of *x*. For that reason,
thin-plate splines are also known as RBFs or radial basis functions. See Constructing and Working with stform Splines for more information.

A *rational spline* is any function of the
form *r*(*x*) = *s*(*x*)/*w*(*x*),
with both *s* and *w* splines and,
in particular, *w* a scalar-valued spline, while *s* often
is vector-valued.

Rational splines are attractive because it is possible to describe various basic geometric shapes, like conic sections, exactly as the range of a rational spline. For example, a circle can so be described by a quadratic rational spline with just two pieces.

In this toolbox, there is the additional requirement that both *s* and *w* be
of the same form and even of the same order, and with the same knot
or break sequence. This makes it possible to store the rational spline *r* as
the ordinary spline *R* whose value at *x* is
the vector [*s*(*x*);*w*(*x*)].
Depending on whether the two splines are in B-form or ppform, such
a representation is called here the rBform or the rpform of such a
rational spline.

It is easy to obtain *r* from *R*. For example, if
`v`

is the value of *R* at *x*,
then `v(1:end-1)/v(end)`

is the value of *r* at
*x*. As another example, consider getting derivatives of *r* from those of *R*.
Because *s* = *wr*, Leibniz' rule tells us that

$${D}^{m}s={\displaystyle \sum _{j=0}^{m}\left(\begin{array}{c}m\\ j\end{array}\right){D}^{j}w{D}^{m-j}r}$$

where *D ^{m}s* the

Hence, if `v(:,j)`

contains
*D*^{j–1}*R*(*x*),
*j* = 1...`m`

+ 1, then

$$\left(\left(\left(v(1:\text{end}-1,m+1\right)-{\displaystyle \sum _{j=1}^{m}\left(\begin{array}{c}m\\ j\end{array}\right)v(\text{end},j+1)v(1:\text{end}-1,j+1)}\right)/v(\text{end},1)\right)$$

provides the value of
*D ^{m}R*(