De Boor's algorithm: Difference between revisions

Content deleted Content added
No edit summary
Bender the Bot (talk | contribs)
m Computer code: HTTP to HTTPS for SourceForge
 
(3 intermediate revisions by 3 users not shown)
Line 11:
== Local support ==
 
B-splines have local support, meaning that the polynomials are positive only in a finitecompact ___domain and zero elsewhere. The Cox-de Boor recursion formula<ref>C. de Boor, p. 90</ref> shows this:
<math display="block">B_{i,0}(x) :=
\begin{cases}
Line 23:
<math display="block"> \mathbf{S}(x) = \sum_{i=k-p}^{k} \mathbf{c}_i B_{i,p}(x). </math>
 
It follows from <math> i \geq 0 </math> that <math> k \geq p </math>. Similarly, we see in the recursion that the highest queried knot ___location is at index <math> k + 1 + p </math>. This means that any knot interval <math> [t_k,t_{k+1}) </math> which is actually used must have at least <math> p </math> additional knots before and after. In a [[computer program]], this is typically achieved by repeating the first and last used knot ___location <math> p </math> times. For example, for <math> p = 3 </math> and real knot locations <math> (0, 1, 2) </math>, one would pad the knot vector to <math> (0,0,0,0,1,2,2,2,2) </math>.
 
== The algorithm ==
Line 75:
 
== See also ==
* [[De Casteljau's algorithm]]
* [[Bézier curve]]
* [[Non-uniform rational B-spline]]
 
== External links ==
* [http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/de-Boor.html De Boor's Algorithm]
* [http://www.idav.ucdavis.edu/education/CAGDNotes/Deboor-Cox-Calculation/Deboor-Cox-Calculation.html The DeBoor-Cox Calculation]
 
== Computer code ==
Line 87:
* [https://www.gnu.org/software/gsl/ GNU Scientific Library]: C-library, contains a sub-library for splines ported from [[Netlib|PPPACK]]
* [https://www.scipy.org/ SciPy]: Python-library, contains a sub-library ''scipy.interpolate'' with spline functions based on [[Netlib|FITPACK]]
* [https://github.com/msteinbeck/tinyspline TinySpline]: C-library for splines with a C++ wrapper and bindings for C#, Java, Lua, [[PHP]], Python, and Ruby
* [httphttps://einspline.sourceforge.net/ Einspline]: C-library for splines in 1, 2, and 3 dimensions with Fortran wrappers
 
== References ==
Line 94:
 
'''Works cited'''
* {{cite book | author = Carl de Boor | title = A Practical Guide to Splines, Revised Edition | publisher = Springer-Verlag | year = 2003|isbn=0-387-95366-3}}
 
[[Category:Articles with example Python (programming language) code]]
[[Category:Numerical analysis]]
[[Category:Splines (mathematics)]]