- Trilinear interpolation
Trilinear interpolation is a method of
multivariate interpolation on a 3-dimensionalregular grid . It approximates the value of an intermediate point within the local axial rectangular prism linearly, using data on the lattice points. For an arbitrary, unstructured mesh (as used infinite element analysis), other methods of interpolation must be used; if all the mesh elements are tetrahedra (3D simplices), then barycentric coordinates provide a straightforward procedure.Trilinear interpolation is frequently used in
numerical analysis ,data analysis , andcomputer graphics .Compared to linear and bilinear interpolation
Trilinear interpolation is the extension of
linear interpolation , which operates in spaces withdimension , andbilinear interpolation , which operates with dimension , to dimension . The order of accuracy is 1 for all these interpolation schemes, and it requires adjacent pre-defined values surrounding the interpolation point. There are several ways to arrive at trilinear interpolation, it is equivalent to 3-dimensionaltensor B-spline interpolation of order 1, and the trilinear interpolation operator is also a tensor product of 3 linear interpolation operatorsMethod
On a periodic and cubic lattice with spacing 1, let , , and be the differences between each of , , and the smaller coordinate related, that is:
:::
First we interpolate along (imagine we are pushing the front face of the cube to the back), giving:
::::
Then we interpolate these values (along , as we were pushing the top edge to the bottom), giving:
::
Finally we interpolate these values along (walking through a line):
:
This gives us a predicted value for the point.
The result of trilinear interpolation is independent of the order of the interpolation steps along the three axes: any other order, for instance along , then along , and finally along , produces the same value.
The above operations can be visualized as follows: First we find the eight corners of a cube that surround our point of interest. These corners have the values C000, C100, C010, C110, C001, C101, C011, C111.
Next, we perform linear interpolation between C000 and C100 to find C00, C001 and C101 to find C01, C011 and C111 to find C11, C010 and C110 to find C10.
Now we do interpolation between C00 and C10 to find C0, C01 and C11 to find C1. Finally, we calculate the value C via linear interpolation of C0 and C1
ee also
*
Linear interpolation
*Bilinear interpolation
*Tricubic interpolation External links
* [http://www.grc.nasa.gov/WWW/winddocs/utilities/b4wind_guide/trilinear.html pseudo-code]
*Paul Bourke, [http://local.wasp.uwa.edu.au/~pbourke/other/interpolation/index.html Interpolation methods] , 1999. Contains a section on trilinear interpolation.
Wikimedia Foundation. 2010.