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 [math]\displaystyle{ (x_i, y_i, z_i, \dots) }[/math] and the interpolation problem consists of yielding values at arbitrary points [math]\displaystyle{ (x,y,z,\dots) }[/math].
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.
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 [math]\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) }[/math] for some 4-vector [math]\displaystyle{ \mathbf{b}(x) }[/math] which is a function of x alone, where [math]\displaystyle{ f_j }[/math] is the value at [math]\displaystyle{ j }[/math] of the function to be interpolated. Rewrite this approximation as
- [math]\displaystyle{ \mathrm{CR}(x) = \sum_{i=-1}^2 f_i b_i(x) }[/math]
This formula can be directly generalized to N dimensions:[1]
- [math]\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) }[/math]
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 [math]\displaystyle{ \mathrm{CINT} }[/math]-type operations for any type of tensor product splines, as explained in the tricubic interpolation article. However, the fact remains that if there are [math]\displaystyle{ n }[/math] terms in the 1-dimensional [math]\displaystyle{ \mathrm{CR} }[/math]-like summation, then there will be [math]\displaystyle{ n^N }[/math] terms in the [math]\displaystyle{ N }[/math]-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).
See also
- Smoothing
- Surface fitting
Notes
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.
Original source: https://en.wikipedia.org/wiki/Multivariate interpolation.
Read more |