Ways to introduce B-splines

256 Views Asked by At

I asked this on overflow, but it hasn't gotten many responses so I'll try here as well.

I have the option of mentoring some undergrads in a topic lying within approximation theory and I really want to do $B$-splines. Mostly because I have recently found applications of them in my own research and I think it's a good opportunity for me to further learn the material. (And to show them cool stuff as well of course.)

Suppose we are given a sequence of knots t $= (t_i)_{i \in \mathbb{Z}} \subset \mathbb{R}$. I am aware of two ways in which $B$-splines can be defined.

Method 1: First define the $B$-splines of order $1$ (or degree $0$) to be the characteristic functions $B_{i1} = \chi_{[t_i,t_{i+1})}$. Then we define the $B$-splines of higher order by the recurrence relation

$$B_{ik} = \lambda_{ik}B_{i,k-1} + (1 - \lambda_{i+1,k})B_{i+1,k-1}$$
where \begin{equation*} \lambda_{ik}(t) = \left\{ \begin{array}{ll} \frac{t - t_i}{t_{i+k-1} - t_i} & \quad \text{if} \ \ \ t_i \neq t_{i+k-1} \\ 0 & \quad \text{otherwise} \end{array} \right. \end{equation*}

I understand that this is a computationally practical way of defining $B$-splines and that many of the early theorems about $B$-splines have simple proof when given this definition. However, I am of the opinion that you wouldn't introduce $B$-splines this way unless you really want to bore your audience as this recurrence relation is highly unmotivated and, until you begin to actually prove theorems with it, it simply doesn't look interesting.

The next way is longer but the idea is more natural (at first at least). I don't want to make this post too long so I will skip details. I include some details for completion, but I suspect someone with an answer to this post is likely familiar with everything I mention below.

Method 2: Suppose we are investigating the problem of finding a basis for the space of piece-wise polynomials of order $k$ (or degree $k-1$) with breakpoints at $(t_i)$ with some specified smoothness condition at each $t_i$. To find this basis we first make the problem easier by finding a basis for the space of piece-wise polynomials on $\mathbb{R}$ with a finite set of breakpoints and some specified smoothness condition at these breakpoints. If this finite knot sequence is $\{x_1, \dots x_n\} $, we get led to the truncated power basis $\{(t - x_i)_+^{j} | 1 \leq i \leq n , 0 \leq j \leq k-1\}$.

We then find some linear combination of these truncated powers to begin constructing compactly supported piece-wise polynomials supported on closed intervals with end points belonging to our knot sequence t. (I have skipped many details here). But in order to actually define the $B$-splines, we need to find out the coefficients of the truncated powers that yield them. This takes us to the divided difference operators and I am not a fan of these operators either. I also find considering them to be somewhat unmotivated (albeit not as unmotivated as the first idea).

My question: Are there other ways to introduce $B$-splines aside from the $2$ methods I have given?

I suspect the solution to my dilemna is to understand these divided difference operators more in depth, but I want to know if there are other ways. I've been reading through a book on Box Splines which are defined as distributions. It seems interesting, but I've only begun and don't yet fully see how they generalize $B$-splines. Even if this approach would work as well, I am unsure whether it would be accessible to undergrads.

1

There are 1 best solutions below

5
On

I wouldn't say that the recurrence formula is unmotivated. What's mysterious about it is the choice of the coefficients $\lambda_{ik}$. But, you can show that these coefficients are the only ones that will work if you want compact supports and the magical continuity properties of b-splines. For further motivation, you can look at this book draft.

I second what @Jean-Marie said: blossoming is the best way to teach people about Bezier curves and b-splines. Ramshaw's original document is overly general and hard to read, in my view, but you can find numerous simpler accounts. For example, this book by Gallier is pretty good, in my opinion.

Even of you don't get into blossoming, I'd be inclined to define b-spline curves as the things produced by the deBoor algorithm applied to a given sequence of control points.

Divided differences were the original approach to b-splines, but most people steer clear of them, these days. They're the most boring and obscure approach, in my view.