| Spline Toolbox | ![]() |
Experiment with a B-spline as a function of its knots
Syntax
bspligui
Description
The command bspligui starts a Graphical User Interface (or, GUI) for exploring how a B-spline depends on its knots. As you add, move, or delete knots, you see the B-spline and its first three derivatives change accordingly.
You observe the following basic facts about the B-spline with knot sequence
:
). It is zero at the end knots,
and
, unless they are knots of multiplicity k. The B-spline is also zero outside the closed interval [
], but that part of the B-spline is not shown in the GUI.
) only at a knot of multiplicity at least k-1. On the other hand, that maximum cannot be arbitrarily small; it seems smallest when there are no interior knots.1:4, you can even observe that all its nonzero polynomial pieces are of exact degree k-1, by looking at the first three derivatives of the B-spline. This means that the degree goes up/down by one every time you add/delete a knot.
is a break for the B-spline, but it is permissible for several knots to coincide. Therefore, the number of nontrivial polynomial pieces is maximally k (when all the knots are different) and minimally 1 (when there are no "interior" knots), and any number between 1 and k is possible.
), hence the B-spline itself is unimodal, meaning that it has exactly one maximum. Further, if the second derivative is not identically zero, then it has exactly two sign changes in that interval. Finally, if the third derivative is not identically zero, then it has exactly three sign changes in that interval. This indicates the fact that, for j=0:k-1, if the jth derivative is not identically zero, then it has exactly j sign changes in the interval (
); it is this property that is meant by the term "bell-shaped". For this claim to be strictly true, one has to be careful with the meaning of "sign change" in case there are knots with multiplicities. For example, the (k-1)st derivative is piecewise constant, hence it cannot have k-1 sign changes in the straightforward sense unless there are k polynomial pieces, i.e., unless all the knots are simple.See Also
bspline, bsplidem, spcol, chbpnt
| brk2knt | bspline | ![]() |