B-spline

B-spline.

En mathématiques, une B-spline est une combinaison linéaire de splines positives à support compact minimal. Les B-splines sont la généralisation des courbes de Bézier, elles peuvent être à leur tour généralisées par les NURBS.

Définition

Étant donné m+1 nœuds ti dans [0, 1] avec 0 t 0 t 1 t m 1 {\displaystyle 0\leq t_{0}\leq t_{1}\leq \ldots \leq t_{m}\leq 1} une courbe spline de degré n {\displaystyle n} est une courbe paramétrique S : [ 0 , 1 ] R d {\displaystyle \mathbf {S} \,:\,[0,1]\to \mathbb {R} ^{d}} composée de fonctions B-splines de degré n S ( t ) = i = 0 m n 1 b i , n ( t ) . P i , t [ t n , t m n ] {\displaystyle \mathbf {S} (t)=\sum _{i=0}^{m-n-1}b_{i,n}(t).\mathbf {P} _{i}\,,\,t\in [t_{n},t_{m-n}]} , où les Pi forment un polygone appelé polygone de contrôle ; le nombre de points de contrôle composant ce polygone est égal à m-n.

Les m-n fonctions B-splines de degré n sont définies par récurrence (récurrence de Cox-de Boor) sur le degré inférieur : b j , 0 ( t ) := { 1 s i t j t < t j + 1 0 s i n o n {\displaystyle b_{j,0}(t):=\left\{{\begin{matrix}1&\mathrm {si} \quad t_{j}\leqslant t<t_{j+1}\\0&\mathrm {sinon} \end{matrix}}\right.} b j , n ( t ) := t t j t j + n t j b j , n 1 ( t ) + t j + n + 1 t t j + n + 1 t j + 1 b j + 1 , n 1 ( t ) . {\displaystyle b_{j,n}(t):={\frac {t-t_{j}}{t_{j+n}-t_{j}}}b_{j,n-1}(t)+{\frac {t_{j+n+1}-t}{t_{j+n+1}-t_{j+1}}}b_{j+1,n-1}(t).}

Quand les nœuds sont équidistants, c’est-à-dire quand ils sont en progression arithmétique, les B-splines sont dites « uniformes » : c'est le cas des courbes de Bézier qui sont des B-splines uniformes, dont les nœuds ti (pour i entre 0 et m) forment une suite arithmétique de 0 à 1 avec un pas constant 1/m, et où le degré n de la courbe de Bézier ne peut être supérieur à m.

Par extension, lorsque deux nœuds successifs t j {\displaystyle t_{j}} et t j + 1 {\displaystyle t_{j+1}} sont confondus, on pose 0 0 = 0 {\displaystyle {\frac {0}{0}}=0}  : cela a pour effet de définir une discontinuité de la tangente, pour le point de la courbe paramétré par une valeur de t, donc d'y créer un sommet d'angle non plat ; toutefois il est souvent plus simple de définir ce « B-spline étendu » comme l'union de deux B-splines définis avec des nœuds distincts, ces splines étant simplement joints par ce sommet commun, sans introduire de difficulté dans l'évaluation paramétrique ci-dessus des B-splines pour certaines valeurs du paramètre t. Mais cela permet de considérer alors tout polygone simple comme un B-spline étendu.

Propriétés

La forme des fonctions de base est déterminée par la position des nœuds.

La courbe est à l'intérieur de l'enveloppe convexe des points de contrôle.

Une B-spline de degré n b i , n ( t ) {\displaystyle b_{i,n}(t)} est non nulle dans l'intervalle [ti, ti+n+1[ : b i , n ( t ) = { > 0 s i t i t < t i + n + 1 0 s i n o n {\displaystyle b_{i,n}(t)=\left\{{\begin{matrix}>0&\mathrm {si} \quad t_{i}\leqslant t<t_{i+n+1}\\0&\mathrm {sinon} \end{matrix}}\right.}

En d'autres termes, déplacer un point de contrôle ne modifie que localement l'allure de la courbe.

B-splines en une dimension

Les B-splines peuvent être utilisées comme fonctions de base dans la théorie de l'approximation. La B-spline de degré n est donnée par : x R ,   β n ( x ) = k = 0 n + 1 ( 1 ) k ( n + 1 ) ( n + 1 k ) ! k ! ( x k + n + 1 2 ) + n {\displaystyle \forall x\in \mathbb {R} ,\ \beta ^{n}(x)=\sum _{k=0}^{n+1}(-1)^{k}{\frac {(n+1)}{(n+1-k)!k!}}\left(x-k+{\frac {n+1}{2}}\right)_{+}^{n}} ,(y)+ est une version étendue de la fonction partie positive : ( x ) + n = { 0  si  x < 0 1 2  si  x = 0  et  n = 0 1  si  x > 0  et  n = 0 x n  si  x 0  et  n 1 {\displaystyle (x)_{+}^{n}={\begin{cases}0&{\text{ si }}x<0\\{\tfrac {1}{2}}&{\text{ si }}x=0{\text{ et }}n=0\\1&{\text{ si }}x>0{\text{ et }}n=0\\x^{n}&{\text{ si }}x\geqslant 0{\text{ et }}n\geqslant 1\end{cases}}}

On reconnaît notamment la spline de degré 0 comme la fonction porte.

Ces fonctions ne sont pas interpolantes, mais leur régularité élevée sur un support compact en font des candidats intéressants dans l'approximation de fonctions[1].

Références

  1. (en) P. Thevenaz, T. Blu et M. Unser, « Interpolation revisited », IEEE Transactions on Medical Imaging, vol. 19, no 7,‎ (DOI 10.1109/42.875199)

Liens internes

Liens externes

Sur les autres projets Wikimedia :

  • B-spline, sur le Wiktionnaire
  • (en) Splines: A unifying framework for image processing (tutoriel sur les B-splines)
  • icône décorative Portail de la géométrie