Construction of a Chebyshev Spline

This example shows how to use commands from Curve Fitting Toolbox™ to construct a Chebyshev spline.

Chebyshev (a.k.a. Equioscillating) Spline Defined

By definition, for given knot sequence t of length n+k, C = C_{t,k} is the unique element of S_{t,k} of max-norm 1 that maximally oscillates on the interval [t_k .. t_{n+1}] and is positive near t_{n+1}. This means that there is a unique strictly increasing tau of length n so that the function C in S_{k,t} given by

C(tau(i)) = (-1)^{n-i},

for all i, has max-norm 1 on [t_k .. t_{n+1}]. This implies that

tau(1) = t_k,
tau(n) = t_{n+1},

and that

t_i < tau(i) < t_{k+i},

for all i. In fact,

t_{i+1} <= tau(i) <= t_{i+k-1},

for all i. This brings up the point that the knot sequence t is assumed to make such an inequality possible, which turns out to be equivalent to having all the elements of S_{k,t} continuous.

In short, the Chebyshev spline C looks just like the Chebyshev polynomial. It performs similar functions. For example, its extrema tau are particularly good sites to interpolate at from S_{k,t} since the norm of the resulting projector is about as small as can be.

Iteration

For the complete leveling, we use the Remez algorithm. This means that we construct a new tau as the extrema of our current approximation, c, to C and try again.

Finding these extrema is itself an iterative process, namely, for finding the zeros of the derivative Dc of our current approximation c.

Dc = fnder(c);

We take the zeros of the control polygon of Dc as our first guess for the zeros of Dc. This control polygon has the vertices (tstar(i),coefs(i)), where coefs are the coefficients of Dc, and tstar the knot averages.

If this is not close enough, simply try again, starting from this new tau. For this particular example, the next iteration already provides the Chebyshev spline to graphic accuracy.

Use of Chebyshev-Demko Points

The Chebyshev spline for a given spline space S_{k,t}, along with its extrema, are available as optional outputs from the chbpnt command in the toolbox. These extrema were proposed as good interpolation sites by Steven Demko, hence are now called the Chebyshev-Demko sites. This section shows an example of their use.

If you have decided to approximate the square-root function on the interval [0 .. 1] by cubic splines with knot sequence

k = 4;
n = 10;
t = augknt(((0:n)/n).^8,k);

then a good approximation to the square-root function from that specific spline space is given by