title: Multivariate interpolation
text: # Multivariate interpolation
  
  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},\dots )$ and the interpolation problem consists of yielding values at arbitrary points $(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
  
  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
  
  * Barnes interpolation
  * Bilinear interpolation
  * Bicubic interpolation
  * Bézier surface
  * Lanczos resampling
  * Delaunay triangulation
  
  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
  * Bilinear
  * Bicubic
  
  See also Padua points, for polynomial interpolation in two variables.
  
  ### 3 dimensions
  
  * Trilinear interpolation
  * Tricubic interpolation
  
  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 $\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 $\mathbf {b} (x)$ which is a function of x alone, where $f_{j}$ is the value at $j$ of the function to be interpolated. Rewrite this approximation as
  
      $\mathrm {CR} (x)=\sum _{i=-1}^{2}f_{i}b_{i}(x)$
  
  This formula can be directly generalized to N dimensions:
  
      $\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 $\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$ terms in the 1-dimensional $\mathrm {CR}$-like summation, then there will be $n^{N}$ terms in the $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.
  
  * Nearest-neighbor interpolation
  * Triangulated irregular network-based natural neighbor
  * Triangulated irregular network-based linear interpolation (a type of piecewise linear function)
     * n-simplex (e.g. tetrahedron) interpolation (see barycentric coordinate system)
  * Inverse distance weighting
  * Kriging
  * Gradient-enhanced kriging (GEK)
  * Thin plate spline
  * Polyharmonic spline (the thin-plate-spline is a special case of a polyharmonic spline)
  * Radial basis function (Polyharmonic splines are a special case of radial basis functions with low degree polynomial terms)
  * Least-squares spline
  * Natural neighbour interpolation
  
  Gridding is the process of converting irregularly spaced data to a regular grid (gridded data).
  
  