Multivariate
A function expresses the idea that one quantity (the argument of the function) completely determines another quantity (the value).
Interpolation is a method of constructing new data points within the range of a discrete set of known data points.
Multivariate interpolation, nearest-neighbor, bilinear, multilinear, bicubic, multicubic
Definition
Multivariate interpolation is an area of data fitting which, as opposed to univariate interpolation which fitted two-dimensional data points, finds the surface that provides an exact fit to a series of multidimensional data points. It is called multivariate since the data points are supposed to be sampled from a function of several variables.
Formally speaking, consider a series of distinct
- dimensional data points
,
, where
is a vector, for each
. By interpolating these data points we mean finding a function
such that:
We will start by describing the most straightforward multivariate interpolation methods, to the more advanced. We start with the description of the method in 3D, and then explain how this generalizes to multidimensional space.
Nearest-neighbor interpolation
This type of interpolation basically assigns to any point in the plane, the value of the closest data point to
. Formally, given a series of data points
, for
, the corresponding nearest-neighbor interpolation function is given by
where is the closest data point to
in the sense of Euclidean distance. In other words,
minimizes the following objective function
where . The image below shows how nearest-neighbor interpolation is applied to a series of data points in the box
.

In general d-dimensional space, nearest-neighbor interpolation assigns to some point the value of the closest data point
to
, i.e. the one which minimizes the objective function
for all , where
are the given data points.
Bilinear interpolation
This is a generalization of linear interpolation, from 2D to 3D data points. It is assumed that the given data points are distributed along an uniform grid, as are the points ,
,
and
in the image below.

The aim is to estimate the value of the function (from which the data points have been sampled) at point
in the above graph. In order to do this, let us define two auxiliary functions
through
where the coordinates of are
and
.
The next thing is to do linear interpolation on the two-dimensional data points ,
and
,
correspondingly. In other words, the linear interpolation functions
,
can be given by:
All that is left is to do linear interpolation on the two-dimensional data points and
, providing the desired formula for the interpolation function
which, with the above notations, can be written:
This solves the problem of doing bilinear interpolation for a set of 4 three-dimensional points. If there are more than 4 points (they should however be a multiple of 2), then we repeat the above algorithm for each cell. The interpolation function over the entire domain is then defined in a piecewise manner on each cell, through the corresponding bilinear interpolation function for that cell.
The image below shows the values obtained by applying linear interpolation on the same series of data points as in the previous graph.

Using the same reasoning as above, we are able to generalize linear interpolation from some d-dimensional space to
(d + 1)-dimensional space, in a recursive manner, giving birth to multilinear interpolation. The concept of uniform grid also generalizes to multidimensional space, as seen in the article: http://en.wikipedia.org/wiki/Honeycomb_(geometry) .
Bicubic Interpolation
Without loss of generality, consider that we are given the values of the points ,
,
and
, i.e. the corners of the unit box
. Our aim is to find a bicubic function
of the form
that provides an exact fit to the given data points. In order to determine , we need to determine its coefficients
. This is only possible if the values of the partial derivatives
,
and
are know at each corner of the unit box.
In this case, by writing the set of linear equations
for all , we are able to find the coefficients
and completely determine the bicubic interpolation function
. As in the case of bilinear interpolation, if there are more than 4 points, then we repeat the above algorithm for each cell. The bicubic interpolation function over the entire domain is then defined in a piecewise fashion on each cell, through the corresponding bicubic interpolation function for that cell. It is also required that all the partial derivatives match on the common boundary of each pair of cells.
The following image shows the values obtained using bicubic interpolation on the same series of data points as in the previous graphs.

Generally, using bicubic instead of bilinear or nearest-neighbor interpolation results in smoother approximations and thus is more advantageous in image restoration techniques.
When generalizing this method to multidimensional space, the function will be of the form
and of course several other partial derivatives may come into play. The resulting system, although large, will still be linear and will allow us to find the coefficients of the cubic interpolation function
. This method is also called multicubic interpolation.
Author Lucian Bentea