Spline Toolbox    

What Is the Spline Toolbox?

This toolbox contains MATLAB versions of the essential programs of the B-spline package (extended to handle also vector-valued splines) as described in A Practical Guide to Splines, (Applied Math. Sciences Vol. 27, Springer Verlag, New York (1978), xxiv + 392p; revised edition (2001), xviii+346p), hereafter referred to as PGS. The toolbox makes it easy to create and work with piecewise-polynomial functions.

The typical use envisioned for this toolbox involves the construction and subsequent use of a piecewise-polynomial approximation. This construction would involve data fitting, but there is a wide range of possible data that could be fit. In the simplest situation, one is given points and is looking for a piecewise-polynomial function that satisfies , all , more or less. An exact fit would involve interpolation, an approximate fit might involve least-squares approximation or the smoothing spline. But the function to be approximated may also be described in more implicit ways, for example as the solution of a differential or integral equation. In such a case, the data would be of the form , with A some differential or integral operator. On the other hand, one might want to construct a spline curve whose exact location is less important than is its overall shape. Finally, in all of this, one might be looking for functions of more than one variable, such as tensor product splines.

Care has been taken to make this work as painless and intuitive as possible. In particular, the user need not worry about just how splines are constructed or stored for later use, nor need the casual user worry about such items as "breaks" or "knots" or "coefficients". It is enough to know that each function constructed is just another variable that is freely usable as input (where appropriate) to many of the commands, including all commands beginning with fn, which stands for function. At times, it may be also useful to know that, internal to the toolbox, splines are stored in different forms, with the command fn2fm available to convert between forms.

At present, the toolbox supports two major forms for the representation of piecewise-polynomial functions, because each has been found to be superior to the other in certain common situations. The B-form is particularly useful during the construction of a spline, while the ppform is more efficient when the piecewise-polynomial function is to be evaluated extensively. These two forms are almost exactly the B-representation and the pp representation used in PGS.

In addition, the toolbox supports the `scattered translates' form, or stform, in order to handle the construction and use of bivariate thin-plate splines.

Splines can be very effective for data fitting because the linear systems to be solved for this are banded, hence the work needed for their solution, done properly, grows only linearly with the number of data points. In particular, the MATLAB sparse matrix facilities are used in the Spline Toolbox when that is more efficient than the toolbox's own equation solver, slvblk, which relies on the fact that some of the linear systems here are even almost block diagonal.

All polynomial spline construction commands are equipped to produce bivariate (or even multivariate) piecewise-polynomial functions as tensor products of the univariate functions used here, and the various fn... commands also work for these multivariate functions.

There are various demos, all accessible through the MATLAB demo interface, i.e., by the command demos. You are strongly urged to have a look at some of them, like the GUI splinetool, before attempting to use this toolbox, or even before reading on.


  Introduction New Features in Version 3.1.1