Is a B-spline curve uniquely defined by one set of coefficients?

1k Views Asked by At

Let $C(u)$ be a B-spline curve of fixed degree $p$ depending on the parameter $u\in[0,1]$

$C(u) = \sum_{i=0}^n c_i \, B_i(u)$

with $n+1$ coefficients $\{c_i\}$ and basis functions $\{B_i(u)\}$ of degree $p$. The knots $\{\bar u_i\}$ defining the parametrization are fixed (and equidistantly spaced).

Now, I would like to know if a B-spline curve is uniquely defined by its coefficients. To rephrase the question: Can two non-identical sets of coefficients $\{c'_i\}\neq\{c_i\}$ result in the exact same curve $C(u)$?

Furthermore, if I lower this restriction, how easily can two very different sets of coefficients $\{c'_i\}\neq\{c_i\}$ yield a curve $C'(u) \approx C(u)$.

My motivation is a bit unusual: I want to minimize a cost function that depends on the curve and use the coefficients $c_i$ as the optimization parameters. Has anyone experience with this? Are there strong arguments against doing so? I know that the B-spline curve representation gets very flexible for large numbers of coefficients $n+1$. Should I expect many local minima in which I can run into that prevent me from finding the global one?

Edit: I figured out a case myself, where two non-identical lists of coeffcients $\{c'_i\}\neq\{c_i\}$ result in the same curve:

Imagine an set that contains $p$ repeated/identical coefficients so that

$c_j = c_{j+1}=\dots= c_{j+p}$.

For a certain parameter $u^*\in[0,1]$ , the B-spline curve passes exactly through the coefficient $c_j=\dots= c_{j+p}$ (because the basis spans a partion of unity for $u[0,1]$ and $B_j(u^*)+B_{j+1}(u^*)+B_{j+2}(u^*) = 1$).

Imagine that the set contains another $p$ repeated coefficients

$c_k = c_{k+1}=\dots= c_{k+p}$

with $j>i+3$. In this situation, the same curve can be obtained by either repeating $c_j$ or $c_k$ a $p+1$-th time in the respective sequence.

Parametric plot of a B-spline curve of degree $p=2$ from $u=0$ to $u=1$ with the two dimensional coefficients {{0, 1},{1, 3},{2, 2},{2, 2},{3, 1},{4, 4},{4, 4},{5, 4},{6, 1}}. Repeating {2,2} or {4,4} does not change the curve.

Has anyone an idea if this is possible without repeating coefficients?

2

There are 2 best solutions below

2
On BEST ANSWER

If the degree and the knots are fixed (as you said), then you are dealing with a vector space of piecewise polynomials. The b-spline functions form a basis for this vector space; in fact, the "b" in "b-spline" stands for "basis". Specifically, they are linearly independent, so the coefficients $c_i$ of any given curve in this vector space are uniquely determined. For proofs and further details, look at a book like "A Practical Guide to Splines" by Carl deBoor.

The qualifier "with the same parameterization" is important. Some people consider a curve to be a mapping (with an associated parameterization), and others consider a curve to be just a point set (the image of the interval $[0,1]$ under the parameterization mapping).

If you take the second view (that a curve is just a point set), then a given curve can be generated by several different sets of coefficients $c_i$, even if you fix degree and knots.

Using the $c_i$ as a parameters in optimization problems typically works well. Or, at least, the b-spline coefficients work a lot better than things like polynomial coefficients. Generally, you end up with systems of equations that are well-conditioned numerically.

As an example, this web page shows how you can use the b-spline coefficients as the independent variables in a least-squares fitting problem.

0
On

For two B-spline curves with different number of control points, different number of knots and even different degrees, they could still represent the same curve. For example, performing knot insertion or degree elevation on one curve will change the control points and knots but maintain the curve's shape unchanged.

If you want to minimize a cost function that depends on a B-spline curve, indeed you will possibly encounter many local minimums.