Interpolation & Function Approximation

a B-spline

If a cubic spline is one smooth curve, a B-spline is a clever set of building BLOCKS for making such curves — a basis. Each B-spline is a little bump-shaped function that is nonzero only over a few neighbouring intervals; you build any spline curve by stacking weighted copies of these bumps. The 'B' stands for basis.

Fix a list of knots (the breakpoints) and a degree, and the B-spline basis functions B_i of that degree are defined by the Cox-de Boor recursion: degree-0 B-splines are simple box (indicator) functions on single intervals, and each higher degree is built as a weighted blend of two lower-degree neighbours, gluing the boxes into ever-smoother bumps. Three facts make them powerful. They have LOCAL SUPPORT: each B_i is nonzero only across a handful of knots, so a curve sum_i c_i B_i(x) changes only locally when you move one coefficient c_i — perfect for interactive design. They form a PARTITION OF UNITY (they sum to 1 everywhere and are nonnegative), which gives the convex-hull property: the curve stays inside the convex hull of its control points and never wildly overshoots. And evaluation is fast and numerically stable via de Boor's algorithm, the spline analogue of Horner's rule.

B-splines are the language of computer-aided geometric design: fonts, car bodies, animation paths, and CAD surfaces are almost all built from B-splines or their weighted cousins, NURBS (non-uniform rational B-splines). The same curve a cubic spline expresses by its second derivatives, a B-spline expresses through control-point coefficients — same family of smooth curves, but a representation tuned for shaping and editing rather than for passing exactly through measured data. An honest distinction: by default a B-spline curve does NOT interpolate its control points (it APPROXIMATES them, staying inside their hull); to make a B-spline pass exactly through given points you solve an interpolation system for the coefficients.

A uniform cubic B-spline basis function is a single smooth bump spanning four intervals, rising and falling to zero. Lay one such bump at each knot, scale each by a control point's height, add them up — and you get a smooth curve whose shape you steer by dragging individual control points, each affecting only its local neighbourhood.

Local bumps summed with control-point weights — edit one, change one region.

A B-spline curve generally APPROXIMATES its control points (stays in their convex hull), it does not pass through them by default. To INTERPOLATE given data points with a B-spline you must solve for the control coefficients first.

Also called
basis splineB-spline basisNURBS basis基底樣條