# Linear interpolation

Linear interpolation is a process employed in mathematics, and numerous applications thereof including computer graphics. It is a very simple form of interpolation.

 Contents

## How to do linear interpolation

You know the coordinates (x0, y0) and (x1, y1). You want to pick points on this line with a given x in the interval [x0, x1]. By inspecting the figure we see that:

[itex]\frac{y - y_0}{y_1 - y_0} = \frac{x - x_0}{x_1 - x_0}. \,\![itex]

Let us write [itex]\alpha[itex] for the value equal to both sides. This is the interpolation coefficient—the proportion of the distance from x0 to x1 you have traversed at the point when you encounter x. Since you know the required value of x, you can find [itex]\alpha[itex] from the formula

[itex]\alpha = \frac{x-x_0}{x_1-x_0}. \,\![itex]

But it is also true that

[itex]\alpha = \frac{y-y_0}{y_1-y_0} \,\![itex]

which can be manipulated algebraically into either the form:

[itex]y = (1 - \alpha) y_0 + \alpha y_1 \,\![itex]

or if you prefer:

[itex]y = y_0 + \alpha (y_1-y_0)\,\![itex]

from which you can find y directly using your computed value of [itex]\alpha[itex]. This formula is in fact valid even when x is not between x0 and x1, although [itex]\alpha[itex] will then not be between 0 and 1 and therefore cannot be said to be a "proportion" in the usual sense of the word. In this case the method is called linear extrapolation—see extrapolation.

When y is known and x must be found, the procedure is identical with x and y interchanged.

## Linear interpolation as approximation

In numerical analysis a linear interpolation of certain points that are in reality values of some function f is typically used to approximate the function f. Linear interpolation can be regarded as a trivial example of polynomial interpolation. The error of this approximation is defined as

[itex]R_T = f(x) - p(x) \,\![itex]

where p denotes the linear interpolation polynomial defined above

[itex]p(x) = f(x_0) + \frac{f(x_1)-f(x_0)}{x_1-x_0}(x-x_0). \,\![itex]

It can be proven using Rolle's theorem that if f has two continuous derivatives, the error is bounded by

[itex]|R_T| \leq \frac{(x_1-x_0)^2}{8} \max_{x_0 \leq x \leq x_1} |f''(x)|. \,\![itex]

As you see, the approximation between two points on a given function gets worse with the second derivative of the function that is approximated. This is intuitively correct as well: the "curvier" the function is, the worse is the approximations made with simple linear interpolation.

## Applications

Linear interpolation is often used to fill the gaps in a table. Suppose you have a table listing the population of some country in 1970, 1980, 1990 and 2000, and that you want to estimate the population in 1994. Linear interpolation gives you an easy way to do this.

The basic operation of linear interpolation between two values is so commonly used in computer graphics that it is sometimes called a lerp in the jargon of computer graphics. The term can be used as a verb or noun for the operation. e.g. "Bresenham's algorithm lerps incrementally between the two endpoints of the line."

Lerp operations are built into the hardware of all modern computer graphics processors. They are often used as building blocks for more complex operations: for example, a bilinear interpolation can be accomplished in three lerps. Because this operation is cheap, it's also a good way to implement accurate lookup tables with quick lookup for smooth functions without having too many table entries.

## History

Linear interpolation has been used since antiquity for filling the gaps in tables, often with astronomical data. It is believed that it was used in the Seleucid Empire (last three centuries BC) and by the Greek astronomer and mathematician Hipparchus (second century BC). A description of linear interpolation can be found in the Almagest (second century AD) of Ptolemy.

## Extensions

In demanding situations, linear interpolation is often not accurate enough. In that case, it can be replaced by polynomial interpolation or spline interpolation.

Linear interpolation can also be extended to bilinear interpolation for interpolating functions of two variables. Bilinear interpolation is often used as a crude anti-aliasing filter. Similarly, trilinear interpolation is used to interpolate functions of three variables. Other extensions of linear interpolation can be applied to other kinds of mesh such as triangular and tetrahedral meshes.

## References

• Art and Cultures
• Countries of the World (http://www.academickids.com/encyclopedia/index.php/Countries)
• Space and Astronomy