Introduction

Polynomial Interpolations by Various Approaches

Cubic and Quintic Hermite Interpolation

Implementation

 


Introduction --

A common problem in curve design is point data interpolation: from data points pi with corresponding parameter values ti , find a curve that passes through pi . One of the oldest techniques to solve this problem is to find an interpolating polynomial through the given points. This technique is usually called polynomial interpolation. Several algorithms exist for this problem-any textbook on numerical analysis will discuss several of them. We will also discuss several approaches, which will include Aitken's approach, Lagrange's method and the Vandermonde approach.

Polynomial Interpolations by Various Approaches --

Aitken's Approach --

The Aitken recursion computes a point on the interpolating polynomial through a sequence of repeated linear interpolations, starting with Let us now suppose (as one does in recursive techniques) that we have already solved the problem for the case n-1. To be more precise, assume that we have found a polynomial that interpolates to the n first data points p0,..., pn-1, and also a polynomial that interpolates to the n last data points p1,..., pn. Under these assumptions, it is easy to write down the form of the final interpolant, now called :

Aitken's Algorithm -- (*junk*)

The Vandermonde Approach --

Suppose we want the interpolating polynomial in the monomial basis: The standard approach to finding the unknown coefficients from the known data is simply to write down everything one knows about the problem: In matrix form: We can shorten this to We already know that a solution a to this linear system exists, but one can show independently that the determinant det T is non-zero (for distinct parameter values ti). This determinant is known as the Vandermonde of the interpolation problem. The solution, i.e. the vector a containing the coefficients aj , can be found from

Interpolation of Curves with Lagrange Polynomials --

In terms of the Lagrange polynomials, the solution of the interpolation problem is given by with the given interpolation points. For example, suppose we want to interpolate the points given in the following table: The associated Lagrange polynomials are then and the Lagrange formula for the solution is given by

Disadvantage: There remains, however, one disadvantage in using Lagrange polynomials to solve the interpolation problem: if we add one additional knot, then all of the basis functions have to be recomputed. This disadvantage can be eliminated if we use the Newton interpolation method discussed in the following section.

Interpolation of Curves with Newton Polynomials --

Now suppose we look for a solution of the interpolation problem in the form
The coefficients A j can be found directly:
which gives:
etc. To make this computation systematic, we introduce the idea of a divided difference:
Then the coefficients can be written as
It is clear that if we add a new point , then we simply have to carry out one more step in this divided difference scheme.

Cubic Hermite Interpolation --

Polynomial interpolation is not restricted to interpolation to point data: one can also interpolate to other information, such as derivative data. This leads to an interpolation scheme that is more useful than Lagrange interpolation: it is called Hermite interpolation. We treat the cubic case first, in which one is given two points p0, p1 and two tangent vectors m0, m1. The objective is to find a cubic polynomial curve p that interpolates to these data: p(0) = p0, p'(0) = m0, p'(1) = m1, p(1) = p1, where the prime denotes differentiation. Let be in cubic Bezier form. We wish to determine the coefficients bi , i=0,1,2,3. Claim: Now plugging the obtained bi into p(t) we get

Cardinal Form of the interpolating polynomial To obtain the cardinal form, we simply rearrange: where we have set The are called "cubic Hermite polynomials." Note: The cubic Hermite polynomials satisfy the cardinal properties,

Peculiarity of Cubic Hermite Interpolation Cubic Hermite interpolation has one annoying peculiarity: it is not invariant under affine domain transformations. Let a cubic Hermite interpolant given as i.e. having the interval [0,1] as its domain. Now apply an affine domain transformation to it by changing t to , thereby changing [0,1] to some [a,b]. The interpolant then becomes where the are defined through their cardinal properties: To satisfy these requirements, the new must differ from the original . We obtain where t [0,1] is the local parameter of the interval [a,b].

Quintic Hermite Interpolation --

Instead of prescribing only position and first derivative information at two points, one might add information for second-order derivatives. Then our data are p0, m0, s0 and p1, m1, s1, where s0 and s1 denote second derivatives. The lowest order polynomial to interpolate to these data is of degree five. Its Bezier points are easily obtained following the approach used earlier for cubic polynomials. If we rearrange the Bezier form to obtain a cardinal form of the interpolant, we find where It is easy to verify the cardinal properties of the : they are the straighforward generalization of the cardinal properties for cubic Hermite polynomials.

Implementation

The code for Aitken's algorithm is very similar to that for the de Castlejau algorithm. Here is its header:

float aitken(degree, coeff, t)
/* uses Aitken to compute one coordinate value of a
Lagrange interpolating polynomial. Has to be called
for each coordinate (x, y, and/or z) of data points.
Input: degree: degree of curve.
coeff: array with coordinates to be interpolated.
t: parameter value.
Output: coordinate value.
Note: we assume a uniform knot sequence! */