Modification of the definition of basis function in open clamped B-Spline

curvesgeometrynumerical methodsspline

An open B-spline is B-spline in which the end knots satisfy $t_0=t_1\cdots=t_d$ and $t_{m-d}=t_{m-d+1}=\cdots=t_m$. A minor modification of the definition of the basis function
$$N_{i,0}(t)=\begin{cases}1,\quad\text{if} \: t \in [t_i,t_{i+1}) \\
0, \quad\text{otherwise} \end{cases}$$
is required in order to accommodate the multiplicity of the knots: $N_{m-d+1}$ should take the value 1 at $t=m-d$(and 0 elsewhere)

If I try plotting the B-Spline curve out, I do see the direct consequence of not modifying the basis function:
b-spline

The curve at the knot value $t_{m-d},\:{\bf B} (t_{m-d})$ will be equal to the origin instead of the last contol point ${\bf P_5}$. However, I don't really get the reason behind this erratic behaviour, can someone please elaborate more on the reason behind this modification?

Best Answer

Using a half-open interval in the definition of the degree zero basis makes the curve right or left continuous everywhere including discontinuities. When a knot $k$ has multiplicity $d+1$ the curve will be discontinuous at $t=k$. For all $t\notin[t_0,t_m]$ all of your basis functions are $0$, so the curve value is the origin. Therefore the origin is the right continuous limit at the discontinuity $t=t_m$.

The modification you have made is the right way to evaluate the closure of a continuous curve over $(t_0,t_m)$, but for some other purposes the following alternative definition is needed: $$N_{i,0}(t)=\begin{cases} 1 & t \in (t_i,t_{i+1}) \\ 1/2 & t = t_i\ \text{ or }\ t = t_{i+1}\\ 0 & \text{else} \end{cases}$$ This makes the value at a discontinuity equal to the average of the left and right limit. Thereby it is equal to its own Fourier series, and the recurrence relations for computing inner products of basis functions only works when using this definition.

Related Question