Solve the maximal value point of B-spline basis function

723 Views Asked by At

Description

Let $\vec{U}=\{u_0,u_1,\ldots,u_m\}$ denotes a non-decreasing sequence of real numbers, i.e, $u_i\leq u_{i+1} \quad i=0,1,2\ldots m-1$.

and the $i$-th B-spline basis function of $p$-degree, denoted by $N_{i,p}(u)$, is defined as below:

$$N_{i,0}(u)= \begin{cases} 1 & u_i\leq u<u_{i+1}\\ 0 & otherwise \end{cases} $$ $$N_{i,p}(u)=\frac{u-u_i}{u_{i+p}-u_i}N_{i,p-1}(u)+\frac{u_{i+p+1}-u}{u_{i+p+1}-u_{i+1}}N_{i+1,p-1}(u) $$

Aim

Now I want to solve the maximal value point of the $N_{i,p}(u)$, the following steps is my initial trial.

For instance, now I have a knots vector $U=\{0, 0, 0, 0, 1/5, 1/4, 1/3, 1/2, 1, 1, 1, 1\}$. Namely, $m=11$ and I assume that the degree of the basis function is $3$.

  • How to solve the maximal value point of the $N_{3,3}(u)$?

Step 1: Calculate the mathematical expression of $N_{3,3}(u)$

To achieve the $N_{3,3}(u)$ expression, I draw the following schematic diagram enter image description here

Then I ultilize the recursive formula to calculate the mathematical expression of $N_{3,3}(u)$ by hand.

$$ N_{3,3}(x)= \begin{cases} 60 x^3 & 0\leq x<\frac{1}{5} \\ -10 \left(119 x^3-75 x^2+15 x-1\right) & \frac{1}{5}\leq x<\frac{1}{4} \\ 10 \left(73 x^3-69 x^2+21 x-2\right) & \frac{1}{4}\leq x<\frac{1}{3} \\ -10 \left(8 x^3-12 x^2+6 x-1\right) & \frac{1}{3}\leq x\leq \frac{1}{2} \\ \end{cases} $$

Step 2: Differentiate the $N_{3,3}(x)$ expression with respect to the varible $x$ $$ \frac{d}{dx}N_{3,3}(x)= \begin{cases} 180 x^2 & 0\leq x<\frac{1}{5} \\ -10 \left(357 x^2-150 x+15\right) & \frac{1}{5}\leq x<\frac{1}{4} \\ 10 \left(219 x^2-138 x+21\right) & \frac{1}{4}\leq x<\frac{1}{3} \\ -10 \left(24 x^2-24 x+6\right) & \frac{1}{3}\leq x\leq \frac{1}{2} \\ \end{cases} $$

Step 3: Set the $N'_{3,3}(x)$ to $0$. Namely, $$ \begin{cases} 180 x^2=0 & 0\leq x<\frac{1}{5} \\ -10 \left(357 x^2-150 x+15\right)=0 & \frac{1}{5}\leq x<\frac{1}{4} \\ 10 \left(219 x^2-138 x+21\right)=0 & \frac{1}{4}\leq x<\frac{1}{3} \\ -10 \left(24 x^2-24 x+6\right)=0 & \frac{1}{3}\leq x\leq \frac{1}{2} \\ \end{cases} $$ $$ \Rightarrow \quad \left( \begin{array}{c} x_1=0 \\ x_2=\frac{1}{119} \left(25-\sqrt{30}\right) \\ x_3=\frac{1}{73} \left(23-3 \sqrt{2}\right) \\ x_4=\frac{1}{2} \\ \end{array} \right) $$

Step 4: Compare to the value of $N_{3,3}(x_1),N_{3,3}(x_2),N_{3,3}(x_3)$ and $N_{3,3}(x_4)$

By the calculation, I discovered that the maximal value point is

$$x_3=\frac{1}{73} \left(23-3 \sqrt{2}\right)$$

QUESTION

  • However, I think my initial trial is very complicated and very time-consuming. I would like to know is there a simple/elegant method to solve this question. Because in my actual work, I need to calculate all the maximal value point of $N_{i,p}(u)$ where, $i \in [0, m-n-1]$. Thanks a lot sincerely!
1

There are 1 best solutions below

7
On BEST ANSWER

B-spline basis functions are piecewise polynomials, so this is a problem of finding the maximum value of a polynomial. There is nothing special about the polynomials that occur in b-spline basis functions. Or, saying it another way, every polynomial will show up somewhere as part of some b-spline basis function, so there can be no special tricks for finding their maxima.

For cubic b-splines, you can find the maxima by solving quadratics, as you did.

For higher degrees, numerical methods will be needed. You can take advantage of the fact that a b-spline basis function always has a single maximum. And this maximum will always occur on the middle segment of the support (for even degree splines) or on one of the two middle segments (for odd degree splines), so no point doing any analysis of the other segments.