B-spline
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ó
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
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
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
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
B-spline Constant
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
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
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
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.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/SplinesTilburg.pdf/page1-220px-SplinesTilburg.pdf.jpg)
B-splines cúbics uniformes
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é
- Spline
- B-spline Racional No Uniforme (NURBS)
Referències
- ↑ Carl de Boor. A Practical Guide to Splines. Springer-Verlag, 1978, p. 113–114.
- ↑ Carl de Boor. A Practical Guide to Splines. Springer-Verlag, 1978, p. 114–115.
- ↑ Gary D. Knott (2000), Interpolating cubic splines. Springer. p. 151
- ↑ 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.
- ↑ . Lee, E. T. Y. «Comments on some B-spline algorithms». Computing. Springer-Verlag, 36, 3, 1986, pàg. 229–238. DOI: 10.1007/BF02240069.
- ↑ Brinks R: On the convergence of derivatives of B-splines to derivatives of the Gaussian function, Comp. Appl. Math., 27, 1, 2008
- ↑ Prautzsch et al., Hartmut. Bezier and B-Spline Techniques. Springer-Verlag, 2002, p. 60–66. ISBN 3540437614.
- ↑ «Splitting a uniform B-spline curve». Arxivat de l'original el 2009-04-14. [Consulta: 13 novembre 2011].
Enllaços externs
- B-spline a MathWorld
- Mòdul de B-Splines per John H. Mathews
- B-spline bivariant a numpy
- B-splines interactiu amb JSXGraph