Math 2.0

Approximations and expansions Splines Theorem

Cox–de Boor recursion

Builds on B-splineDivided differences

Statement

Let (tj)(t_j) be a nondecreasing sequence of real knots. Let ii be an index and k≥1k \ge 1 an order. The normalized B-spline is Bi,k(x)=(ti+k−ti) [ti,…,ti+k] (⋅−x)+k−1.B_{i,k}(x) = (t_{i+k} - t_i)\, [t_i, \dots, t_{i+k}]\, (\cdot - x)_+^{k-1}. Here [ti,…,ti+k][t_i, \dots, t_{i+k}] is the divided difference in the first variable, (u)+k−1=uk−1(u)_+^{k-1} = u^{k-1} for u>0u > 0 and 00 otherwise, also for k=1k = 1. Set Bi,k=0B_{i,k} = 0 when ti=ti+kt_i = t_{i+k}. Then Bi,1(x)={1if ti≤x<ti+1,0otherwise,B_{i,1}(x) = \begin{cases} 1 & \text{if } t_i \le x < t_{i+1}, \\ 0 & \text{otherwise,} \end{cases} and for k≥2k \ge 2 and all real xx, Bi,k(x)=x−titi+k−1−tiBi,k−1(x)+ti+k−xti+k−ti+1Bi+1,k−1(x),B_{i,k}(x) = \frac{x - t_i}{t_{i+k-1} - t_i} B_{i,k-1}(x) + \frac{t_{i+k} - x}{t_{i+k} - t_{i+1}} B_{i+1,k-1}(x), where a term whose denominator is 00 is read as 00.

Remarks

The proof applies the Leibniz rule for divided differences to the product (t−x)+k−1=(t−x)⋅(t−x)+k−2(t - x)_+^{k-1} = (t - x) \cdot (t - x)_+^{k-2} and uses the recursive definition of divided differences. Many texts take the recursion itself as the definition of B-splines, and then the divided difference formula becomes a theorem. Example: with knots 0,1,20, 1, 2, the recursion gives B0,2(x)=xB_{0,2}(x) = x on [0,1)[0, 1), 2−x2 - x on [1,2)[1, 2) and 00 elsewhere, the hat function. The recursion shows at once that Bi,kB_{i,k} is nonnegative, vanishes outside [ti,ti+k)[t_i, t_{i+k}), and is a piecewise polynomial of degree at most k−1k - 1. It is numerically stable, since for xx in the support both coefficients lie in [0,1][0, 1].

Going deeper

For a student

The recursion, found independently by Cox and by de Boor in 1972, is the standard way to evaluate B-splines and their derivatives. Applying it to a whole spline gives de Boor's algorithm, which evaluates ∑jcjBj,k(x)\sum_j c_j B_{j,k}(x) by repeated convex combinations of the coefficients. From it one also derives the derivative formula for B-splines and the partition of unity ∑jBj,k(x)=1\sum_j B_{j,k}(x) = 1 on the basic interval.

Reading path

To understand this page from the ground up, read these 3 pages in order. The foundations come first.

Show the path as a graph
Each page uses the pages above it. The colour of the bar on a box shows how strong the evidence is, and the box also gives it as text. The list has the same pages.
  • no evidence level
  1. B-spline concept
  2. Divided differences concept
  3. Cox–de Boor recursion statement

Where this leads

1 page builds on this one.

Further reading

  1. Web https://en.wikipedia.org/wiki/B-spline
About this page
TagWVD069C7QF
URIm2://WVD069C7QF
Kindstatement, theorem
WritingW0 stub
MSC41A15, 65D07
StatusThis copy of the site has no build data. Run m2 status WVD069C7QF.
AboutB-spline
UsesB-spline, Divided differences

Markdown · JSON · Edit on GitHub

What this page needs for W1

  • an inventory row: the row of the inventory that the node accounts for (0 of 1)
  • a source with a locator (0 of 1)

The writing levels say how complete the text of a page is. They do not measure its truth.

What links here

Used by