Chemistry Reference and  Research
           
 
Periodic Table
- standard table
- large table
 
Chemical Elements
- by name
- by symbol
- by atomic number
 
Chemical Properties
 
Chemical Reactions
 
Organic Chemistry
 
Branches of Chemistry
Analytical chemistry
Biochemistry
Computational Chemistry
Electrochemistry
Environmental chemistry
Geochemistry
Inorganic chemistry
Materials science
Medicinal chemistry
Nuclear chemistry
Organic chemistry
Pharmacology
Physical chemistry
Polymer chemistry
Supramolecular Chemistry
Thermochemistry

Trilinear interpolation

Trilinear interpolation is the process of taking a three-dimensional set of numbers and interpolating the values linearly, finding a point using a weighted average of eight values.

Contents

Overview

The idea behind three-dimensional interpolation is that having some periodic volume of discrete data you can predict the value of a non-integer x,y,z within the plane. This is done using data for integer coordinate positions in the plane and using this, the aim is to try to predict a value for these non-integer x,y,z positions.

Differences from linear interpolation and bilinear interpolation

  • Trilinear interpolation works over a volume of numbers rather than
    • Linear which works over a line of values
    • Bilinear which works over a plane of values
  • Trilinear interpolation works with eight values (these are the integer coordinate positions surrounding the point)

Example

In order to trilinearly interpolate we need to look at the eight values surrounding the value we want. Let

xf,yf,zf

be the fractional parts of

x,y,z,

that is:

x_f = x - \lfloor x \rfloor
y_f = y - \lfloor y \rfloor
z_f = z - \lfloor z \rfloor

First we interpolate along z, giving:

i_1 = v[\lfloor x \rfloor,\lfloor y \rfloor, \lfloor z \rfloor] \times (1 - z_f) + v[\lfloor x \rfloor, \lfloor y \rfloor, \lceil z \rceil] \times z_f
i_2 = v[\lfloor x \rfloor,\lceil y \rceil, \lfloor z \rfloor] \times (1 - z_f) + v[\lfloor x \rfloor, \lceil y \rceil, \lceil z \rceil] \times z_f
j_1 = v[\lceil x \rceil,\lfloor y \rfloor, \lfloor z \rfloor] \times (1 - z_f) + v[\lceil x \rceil, \lfloor y \rfloor, \lceil z \rceil] \times z_f
j_2 = v[\lceil x \rceil,\lceil y \rceil, \lfloor z \rfloor] \times (1 - z_f) + v[\lceil x \rceil, \lceil y \rceil, \lceil z \rceil] \times z_f.

Then we interpolate these values (along y), giving:

w1 = i1(1 - yf) + i2yf
w2 = j1(1 - yf) + j2yf

Finally we interpolate these value along x:

IV = w1(1 - xf) + w2xf.

This gives us a predicted value for the point.

Note that the result of trilinear interpolation is independent of the order of interpolation, that is, performing the linear interpolations in the other order, along x, along y, then along z horizontally, would also produce an equivalent expression for the predicted value.

See also

01-04-2007 01:16:19
The contents of this article are licensed from Wikipedia.org under the GNU Free Documentation License. How to see transparent copy