2
$\begingroup$

Let $C(u)$ be a B-spline curve 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 B-spline basis functions $\{B_i(u)\}$.

Edited based on origimbo's comment: We define the knots $\{\bar u_i\}$ to be 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 result in the exact same curve?

Furthermore, if I lower this restriction, how likely is it that two very different sets of coefficients $ \{c'_i\}\neq\{c_i\}$ yield a curve $C'(u) \approx C(u) $. Does anyone know some literature about this?

My motivation is something unusual: I want to minimize a cost function that depends on the curve and use the coefficients $c_i$ as the optimization parameters. Is this a suitable approach? I know that for large numbers of coefficients $n+1$, the B-spline curve representation gets very flexible and I assume lots of local minima in which I can run into. Therefore, it is definitely not a convex problem.

$\endgroup$
  • 2
    $\begingroup$ Fairly trivially, let the curve be a straight line, then we can add or remove any number of control points lying on that line and still get the same line. I'm fairly sure that to make things unique you have to fix the knots. $\endgroup$ – origimbo May 17 '17 at 13:26
3
$\begingroup$

No, it's not completely unique. Like @origimbo said, a straight line can have many different representations that describe the same curve. Less trivially, splines can be degree-elevated and have repeated knots inserted and produce an identical curve.

Most unconstrained optimization methods are gradient-based. You were right that if you try to find a location along that spline that is a minimum, you will have potentially a few local minima and which one that it converges to is highly dependent on the initial point. However, it seems that you want to minimize the curve in some way. You might be able to do that if you define an acceptable objective function, like the area under the curve or something.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.