Why B-Splines Are the Best Basis

B-splines speak for themselves. If you have read the other pages, there should not be any need to further convince you of the advantages of B-splines. If not or if you need more arguments, this page contains a list of the amenities of the B-splines. In addition, the beauty of B-splines is shown by giving three different motivations for the cardinal B-splines.


The Zen of B-Splines

Stochastic Characterization

Assume that you arrive on a bus stop where the bus departs only once per hour. As you have forgotten your watch and your mobile phone at home, you do not know the time and when the next bus will depart. Your only option is to wait. If \(X\) is the random variable describing the time of waiting in hours, then \(X \sim \mathcal{U}(0, 1)\) is uniformly distributed on the unit interval \([0, 1]\). This means that the wait could be anything between 0 (the bus departs just after you have arrived) and 1 hour (you just missed the previous bus).

If you are an absent-minded person, this might happen again and again, say another \(p \in \mathbb{N}_0\) times (\((p+1)\) times in total). Of course, as a good mathematician, you want to keep track of how much time you wasted. If the individual waiting times are given by \(X_0, \dotsc, X_p \sim \mathcal{U}(0, 1)\) i.i.d. (independent and identically distributed), then the total time spent waiting in hours is \(Y_p := X_0 + \dotsb + X_p\).

What is the distribution of \(Y_p\)? It turns out that its PDF (probability density function) is exactly the cardinal B-spline \(b^p\) of degree \(p\)!

Smallest Support Characterization

The task of finding the definition of B-splines was closely connected to finding a numerically suitable basis of the spline space of degree \(p\). For simplicity, suppose \(p \ge 1\) and we want to find a basis of the space of all functions \(s\colon [\underline{k}, \overline{k}] \to \mathbb{R}\) that are \(\mathcal{C}^{p-1}\) and piecewise polynomial of degree \(p\) on \([k, k+1]\) for all \(k = \underline{k}, \dotsc, \overline{k} – 1\). This means that all of these functions \(s\) can be represented as \(s = \sum_{k=0}^{m-1} c_k \varphi_k\), where \(m\) is the dimensionality of the spline space and \(\{\varphi_k \mid k = 0, \dotsc, m – 1\}\) are the basis functions.

However, we do not want to find just any basis. We want to find the “most beautiful” one 🙂

We define a basis to be beautiful, if the basis functions are just translates \(\varphi_k = \varphi(\cdot\, – k)\) of a single function \(\varphi\). In addition, the support \(\mathsf{supp}\, \varphi\) of that function should be as small as possible. This would be numerically beneficial, as then the influence of the coefficients \(c_k\) would be local and most summands would vanish if we evaluated \(s\) at a single point \(x\), saving a lot of basis evaluations.

In fact, we can isolate these claims completely from the requirement that it should be a spline basis: Assume we want to find a function \(\varphi\) with smallest support such that \(\varphi \in \mathcal{C}^{p-1}(\mathbb{R})\) and \(\varphi\) is a piecewise polynomial of degree \(p\) on \([k, k+1]\) for all \(k \in \mathbb{Z}\). It turns out that the only possibility for \(\varphi\) is being a scaled translate \(\varphi = c b^p(\cdot\, – a)\) of the cardinal B-spline \(b^p\) of degree \(p\). Normalizing the support \(\mathsf{supp}\, \varphi\) to start at \(0\) and the integral \(\int_{\mathbb{R}} \varphi(x) \mathsf{d}x\) to be \(1\) makes the function unique, i.e., \(\varphi = b^p\).

The translates \(b^p(\cdot\, – k)\), when setting the summation bounds correctly, now additionally just happen to form a basis of the spline space!

Truncated Power Characterization

This content is to be added. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


A Ten-Point Plea for B-Splines

B-splines… (expand all, collapse all)

  • … are beautiful.
    B-splines can be derived in a natural way in various different fields. These include geometry (generalization of Bernstein polynomials and BĂ©zier curves), stochastics (density function of the Irwin-Hall distribution, limit for \(p \to \infty\) is the Gaussian bell curve), and numerics (basis of the spline space). Some derivations have been shown above.
  • … have an extensive and well-studied theory.
    Due to their simplicity, B-splines enable theoretic results on properties and estimates.
  • … generalize hat functions and BĂ©zier curves.
    Piecewise linear functions can be represented easily by the “hat function” basis. This basis is a special case of B-splines by choosing the degree to be \(p = 1\). This enables to apply all of the extensive theoretic framework of general B-splines to applications where hat functions are used, e.g., finite elements. BĂ©zier curves, on the other hand, are important tools in geometric modeling. If you know them already, then it should not be hard to learn how B-spline curves work.
  • … can be differentiated very easily.
    The derivative of a B-spline of degree \(p\) is simply a weighted difference of two B-splines of degree \(p-1\). This means that derivatives, gradients, and Hessians of B-spline functions can be computed easily (regarding implementation time) and efficiently (regarding computation time). This is important for applications like finite elements where explicit derivatives are needed.
  • … have proved their suitability in many applications.
    On the applications page, a few applications are mentioned. But there are numerous of other real-world applications for which the space here does not suffice.
  • … enable natural and efficient algorithms.
    There are a lot of efficient numerical algorithms for the work with B-splines. For example, non-uniform B-splines \(b_{k,\vec{\xi}}^p\) can be evaluated recursively with the Cox–de Boor recurrence. Uniform B-splines can be evaluated even faster by precomputing the polynomial pieces. Splines \(s = \sum_{k=0}^{m-1} c_k b_{k,\vec{\xi}}^p\) can be evaluated efficiently using de Boor’s algorithm [Höllig 2013]. Other algorithms, which are similarily efficient, exist for differentiation and knot insertion.
  • … can be implemented easily.
    This fact should not be underestimated. Computation time is one thing, but the development time needed for understanding and implementing algorithms is another. Fortunately, both is low for B-splines. This is true in practically all programming languages. In scientific scripting languages like MATLAB and R, (B-)splines are likely already included within the corresponding “standard library”, see the implementation page for examples.
  • … follow a nice learning curve.
    The initial level of training required to understand the cardinal B-spline is very low: High school mathematics suffices if the convolution is rewritten as an integral or the polynomial recurrence formula is used. The following learning curve to learn the generalizations (uniform B-splines, non-uniform B-splines, B-spline curves, …) is nice and moderate.
  • … are a very powerful tool.
    As seen on the flavors page, B-splines exist in various forms and flavors. The different approaches, for instance hierarchical refinement, tensor product B-splines, B-spline surfaces, and NURBS, can all be combined, making B-splines a powerful and versatile tool in numerics.
  • … have a still active scientific and industrial community.
    B-splines have just the right age: Most work was done in the late 1960s and early 1970s. On the one hand, this is long enough to allow for a solid theoretic foundation. On the other hand, B-splines have aged very well, as the scientific and industrial community around B-splines is still active.