Multivariate interpolation

From HandWiki
Short description: 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 [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

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

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.

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.

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

See also

Notes

External links