En el camp matemàtic d'anàlisi numèrica, un B-spline és un spline que té suport mínim respecte a un grau, suavitat, i partició del domini donats. Els B-splines varen ser investigats a segle xix per Nikolai Lobachevsky. Un teorema fonamental estableix que cada spline d'un grau, suavitat, i partició del camp donats, es pot representar de manera única com a combinació lineal de B-splines d'aquell mateix grau i suavitat, i sobre aquella mateixa partició.[1]

El terme "B-spline" va ser encunyat per Isaac Schoenberg i és una abreviatura de base spline.[2][3] els B-splines poden ser avaluats d'una manera numèricament estable amb l'algorisme de De Boor. S'han creat variants simplificades, potencialment més ràpides de l'algorisme de De Boor però pateixen d'estabilitat comparativament més baixa.[4][5]

En els camps d'informàtica de gràfics i d'infografia, el terme B-spline freqüentment es refereix a una corba spline parametritzada per funcions spline que s'expressen com combinacions lineals de B-splines (en el sentit matemàtic de damunt). Un B-spline és simplement una generalització d'una [corba de Bézier], i pot evitar el fenomen de Runge sense augmentar el grau del B-spline.

Definició modifica

Donats m valors reals ti, anomenats nusos, amb

 

un B-spline de grau n és una corba paramètrica

 

composta per una combinació lineal de B-splines base bi,n de grau n

 .

Els punts   s'anomenen punts de control o punts de Boor. Hi ha m−n-1 punts de control, i formen un embolcall convex.

Els m-n-1 B-splines base de grau n poden ser definits, per n =0,1...,m-2, utilitzant la fórmula de recurrència de De Boor Cox

 
 

Fixeu-vos que j+n+1 no pot excedir m-1, que limita tant j com n.

Quan els nusos són equidistants el B-splines es diu que és uniforme, altrament no-uniforme. Si dos nusos tj són idèntics, totes les formes 0/0 indeterminades que resulten es consideren que són 0.

Fixeu-vos que quan se suma un conjunt de B-splines adjacents de base de grau n s'obté, d'aquesta recurrència

 

per a qualsevol suma amb  

Quan   aquí, llavors aquesta suma és, per aquesta recurrència, idènticament igual a 1 dins del subrang limitad  (ja que aquest interval exclou els suports dels dos B-splines base en els termes separats als extrems d'aquesta suma).

B-spline Uniforme modifica

Quan el B-spline és uniforme, la base de B-splines per a un grau donat n són còpies desplaçades l'un de l'altre. Una definició no recursiva alternativa per la base m−n-1 dels B-splines és

 

amb

 

i

 

on

 

és la funció potencial truncada.

B-spline Cardinal modifica

Es defineixi B0 com la funció característica de  , i Bk recursivament com el producte de convolució

 

llavors Bk s'anomenen B-splines cardinals (centrats). Aquesta definició es remunta a Isaac Schoenberg.

Bk té suport compacte   i és una funció parella. Com   els B-splines cardinals normalitzats tendeixen a la funció gaussiana.[6]

Notes modifica

Quan el nombre de punts de control de De Boor és un més que el grau i   i   (així  ), el B-Spline degenera en una corba de Bézier. En particular, la funció B-Spline base   coincideix amb el polinomi de Bernstein de grau de n-th.[7] La forma de les funcions base està determinada per la posició dels nodes. Una dilatació o una Translació dels vector de nodes no canvia les funcions base.

L'spline és contingut al embolcall convex dels seus punts de control.

Una base de B-splines de grau n

 

és diferent de zero només a l'interval [t i , t i+n+1 ] és a dir

 

En altres paraules si es manipula un punt de control que només es canvia el comportament local de la corba i no el comportament global com en les corbes de Bézier.

Exemples modifica

B-spline Constant modifica

El B-spline constant és l'spline més simple. Es defineix en només una amplitud de node i no és ni tan sols continu als nodes. És la funció característica pels diferents intervals entre nodes.

 

B-spline Lineal modifica

El B-spline lineal està definit en dos intervals entre nodes consecutius i és continu als nodes, però no diferenciable.

 

B-spline quadràtic uniforme modifica

Els B-splines quadràtics amb vector de nodes uniforme és un tipus de B-splines que es fa servir sovint. La funció base es pot precalcular fàcilment, i en aquest cas, és igual per a cada segment.

 

Posada en forma de matriu, és:[8]

  per  

B-Spline Cúbic modifica

La fórmula del B-spline per a un segment únic es pot escriure com:

 

on Si és el segment i-èsim del B-spline, P és el conjunt de punts de control, i i k són els índexs dels punts de control locals. Un conjunt de punts de control serien   on el   és el pes, que estira la corba cap al punt de control   quan augmenta o aparta la corba lluny del punt quan disminueix.

Un conjunt complet de segments de m-2 corbes ( ) definit per m +1 punts de control ( ), com un B-spline en t estaria definit per:

 

on i és el número de punt de control i t és un paràmetre global que dona els valors dels nodes. Aquesta formulació expressa una corba B-spline com una combinació lineal de B-spline base, d'aquí el nom.

Hi ha dos tipus de B-splines - uniformes i no-uniformes. Un B-spline no uniforme és una corba on els intervals entre punts successius de control no són necessàriament iguals (les separacions entre els nodes del vector de nodes no són iguals). Una forma freqüent és quan l'amplada dels intervals es redueix successivament cap a zero, interpolant punts de control.

 
Comparació entre un B-spline cúbic uniforme (groc) i un spline cúbic d'Hermite (vermell fosc).

B-splines cúbics uniformes modifica

Els B-splines cúbics amb un vector de nodes uniforme és la forma més habitualment emprada de B-splines. La funció base es pot precalcular fàcilment, i en aquest cas és igual per a cada segment. Posada en forma matricial, és:

 

per a  ..

Vegeu també modifica

Referències modifica

  1. Carl de Boor. A Practical Guide to Splines. Springer-Verlag, 1978, p. 113–114. 
  2. Carl de Boor. A Practical Guide to Splines. Springer-Verlag, 1978, p. 114–115. 
  3. Gary D. Knott (2000), Interpolating cubic splines. Springer. p. 151
  4. Lee, E. T. Y. «A Simplified B-Spline Computation Routine». Computing. Springer-Verlag, 29, 4, desembre 1982, pàg. 365–371. DOI: 10.1007/BF02246763.
  5. . Lee, E. T. Y. «Comments on some B-spline algorithms». Computing. Springer-Verlag, 36, 3, 1986, pàg. 229–238. DOI: 10.1007/BF02240069.
  6. Brinks R: On the convergence of derivatives of B-splines to derivatives of the Gaussian function, Comp. Appl. Math., 27, 1, 2008
  7. Prautzsch et al., Hartmut. Bezier and B-Spline Techniques. Springer-Verlag, 2002, p. 60–66. ISBN 3540437614. 
  8. Splitting a uniform B-spline curve

Enllaços externs modifica