Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Spline (mathematics)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Representations and names == For a given interval {{math|[''a'',''b'']}} and a given extended knot vector on that interval, the splines of degree {{mvar|n}} form a [[vector space]]. Briefly this means that adding any two splines of a given type produces spline of that given type, and multiplying a spline of a given type by any constant produces a spline of that given type. The [[Hamel dimension|dimension]] of the space containing all splines of a certain type can be counted from the extended knot vector: <math display=block>\begin{align} a &= t_0 < \underbrace{t_1 = \cdots = t_1}_{j_1} < \cdots < \underbrace{t_{k-2} = \cdots = t_{k-2}}_{j_{k-2}} < t_{k-1} = b \\[4pt] j_i &\le n+1, \qquad i=1,\ldots,k-2. \end{align}</math> The dimension is equal to the sum of the degree plus the multiplicities :<math>d = n + \sum_{i=1}^{k-2} j_i.</math> If a type of spline has additional linear conditions imposed upon it, then the resulting spline will lie in a subspace. The space of all natural cubic splines, for instance, is a subspace of the space of all cubic ''C''<sup>2</sup> splines. The literature of splines is replete with names for special types of splines. These names have been associated with: * The choices made for representing the spline, for example: ** using [[basis (linear algebra)|basis]] functions for the entire spline (giving us the name [[B-spline]]s) ** using [[Bernstein polynomial]]s as employed by Pierre Bézier to represent each polynomial piece (giving us the name [[Bézier spline (disambiguation)|Bézier splines]]<!--Intentional link to DAB page-->) * The choices made in forming the extended knot vector, for example: ** using single knots for {{math|''C''{{sup|''n''–1}}}} continuity and spacing these knots evenly on {{math|[''a'',''b'']}} (giving us '''uniform splines''') ** using knots with no restriction on spacing (giving us '''nonuniform splines''') * Any special conditions imposed on the spline, for example: ** enforcing zero second derivatives at {{mvar|a}} and {{mvar|b}} (giving us '''natural splines''') ** requiring that given data values be on the spline (giving us '''interpolating splines''') Often a special name was chosen for a type of spline satisfying two or more of the main items above. For example, the [[Hermite spline]] is a spline that is expressed using Hermite polynomials to represent each of the individual polynomial pieces. These are most often used with {{math|1=''n'' = 3}}; that is, as [[Cubic Hermite spline]]s. In this degree they may additionally be chosen to be only tangent-continuous ({{math|''C''<sup>1</sup>}}); which implies that all interior knots are double. Several methods have been invented to fit such splines to given data points; that is, to make them into interpolating splines, and to do so by estimating plausible tangent values where each two polynomial pieces meet (giving us [[Cardinal spline]]s, [[Catmull-Rom spline]]s, and [[Kochanek-Bartels spline]]s, depending on the method used). For each of the representations, some means of evaluation must be found so that values of the spline can be produced on demand. For those representations that express each individual polynomial piece {{math|''P{{sub|i}}''(''t'')}} in terms of some basis for the degree {{mvar|n}} polynomials, this is conceptually straightforward: * For a given value of the argument {{mvar|t}}, find the interval in which it lies <math>t \in [t_i,t_{i+1}]</math> * Look up the polynomial basis chosen for that interval <math>P_0, \ldots, P_{k-2}</math> * Find the value of each basis polynomial at {{mvar|t}}: <math>P_0(t), \ldots, P_{k-2}(t)</math> * Look up the coefficients of the linear combination of those basis polynomials that give the spline on that interval {{math|''c''<sub>0</sub>, ..., ''c''<sub>''k''–2</sub>}} * Add up that linear combination of basis polynomial values to get the value of the spline at {{mvar|t}}: <math display=block>\sum_{j=0}^{k-2} c_j P_j(t).</math> However, the evaluation and summation steps are often combined in clever ways. For example, Bernstein polynomials are a basis for polynomials that can be evaluated in linear combinations efficiently using special recurrence relations. This is the essence of [[De Casteljau's algorithm]], which features in [[Bézier curve]]s and [[Bézier spline (disambiguation)|Bézier splines]]<!--Intentional link to DAB page-->). For a representation that defines a spline as a linear combination of basis splines, however, something more sophisticated is needed. The [[de Boor algorithm]] is an efficient method for evaluating [[B-spline]]s.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)