Multivariate interpolation

Interpolation on functions of more than one variable

In numerical analysis, multivariate interpolation is interpolation on functions of more than one variable (multivariate functions); when the variates are spatial coordinates, it is also known as spatial interpolation.

The function to be interpolated is known at given points ( x i , y i , z i , ) {\displaystyle (x_{i},y_{i},z_{i},\dots )} and the interpolation problem consists of yielding values at arbitrary points ( x , y , z , ) {\displaystyle (x,y,z,\dots )} .

Multivariate interpolation is particularly important in geostatistics, where it is used to create a digital elevation model from a set of points on the Earth's surface (for example, spot heights in a topographic survey or depths in a hydrographic survey).

Regular grid

Comparison of some 1- and 2-dimensional interpolations.
Black and red/yellow/green/blue dots correspond to the interpolated point and neighbouring samples, respectively.
Their heights above the ground correspond to their values.

For function values known on a regular grid (having predetermined, not necessarily uniform, spacing), the following methods are available.

Any dimension

  • Nearest-neighbor interpolation
  • n-linear interpolation (see bi- and trilinear interpolation and multilinear polynomial)
  • n-cubic interpolation (see bi- and tricubic interpolation)
  • Kriging
  • Inverse distance weighting
  • Natural neighbor interpolation
  • Spline interpolation
  • Radial basis function interpolation

2 dimensions

Bitmap resampling is the application of 2D multivariate interpolation in image processing.

Three of the methods applied on the same dataset, from 25 values located at the black dots. The colours represent the interpolated values.

  • Nearest neighbor
    Nearest neighbor
  • Bilinear
    Bilinear
  • Bicubic
    Bicubic

See also Padua points, for polynomial interpolation in two variables.

3 dimensions

See also bitmap resampling.

Tensor product splines for N dimensions

Catmull-Rom splines can be easily generalized to any number of dimensions. The cubic Hermite spline article will remind you that C I N T x ( f 1 , f 0 , f 1 , f 2 ) = b ( x ) ( f 1 f 0 f 1 f 2 ) {\displaystyle \mathrm {CINT} _{x}(f_{-1},f_{0},f_{1},f_{2})=\mathbf {b} (x)\cdot \left(f_{-1}f_{0}f_{1}f_{2}\right)} for some 4-vector b ( x ) {\displaystyle \mathbf {b} (x)} which is a function of x alone, where f j {\displaystyle f_{j}} is the value at j {\displaystyle j} of the function to be interpolated. Rewrite this approximation as

C R ( x ) = i = 1 2 f i b i ( x ) {\displaystyle \mathrm {CR} (x)=\sum _{i=-1}^{2}f_{i}b_{i}(x)}

This formula can be directly generalized to N dimensions:[1]

C R ( x 1 , , x N ) = i 1 , , i N = 1 2 f i 1 i N j = 1 N b i j ( x j ) {\displaystyle \mathrm {CR} (x_{1},\dots ,x_{N})=\sum _{i_{1},\dots ,i_{N}=-1}^{2}f_{i_{1}\dots i_{N}}\prod _{j=1}^{N}b_{i_{j}}(x_{j})}

Note that similar generalizations can be made for other types of spline interpolations, including Hermite splines. In regards to efficiency, the general formula can in fact be computed as a composition of successive C I N T {\displaystyle \mathrm {CINT} } -type operations for any type of tensor product splines, as explained in the tricubic interpolation article. However, the fact remains that if there are n {\displaystyle n} terms in the 1-dimensional C R {\displaystyle \mathrm {CR} } -like summation, then there will be n N {\displaystyle n^{N}} terms in the N {\displaystyle N} -dimensional summation.

Irregular grid (scattered data)

Schemes defined for scattered data on an irregular grid are more general. They should all work on a regular grid, typically reducing to another known method.

Gridding is the process of converting irregularly spaced data to a regular grid (gridded data).

See also

Notes

  1. ^ Two hierarchies of spline interpolations. Practical algorithms for multivariate higher order splines

External links

  • Example C++ code for several 1D, 2D and 3D spline interpolations (including Catmull-Rom splines).
  • Multi-dimensional Hermite Interpolation and Approximation, Prof. Chandrajit Bajaja, Purdue University
  • Python library containing 3D and 4D spline interpolation methods.