QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
B-spline basis functions. More...
#include <bspline.hpp>
Public Member Functions | |
BSpline (Natural p, Natural n, const std::vector< Real > &knots) | |
Real | operator() (Natural i, Real x) const |
Private Member Functions | |
Real | N (Natural i, Natural p, Real x) const |
Private Attributes | |
Natural | p_ |
Natural | n_ |
std::vector< Real > | knots_ |
B-spline basis functions.
Follows treatment and notation from:
Weisstein, Eric W. "B-Spline." From MathWorld–A Wolfram Web Resource. http://mathworld.wolfram.com/B-Spline.html
\( (p+1) \)-th order B-spline (or p degree polynomial) basis functions \( N_{i,p}(x), i = 0,1,2 \ldots n \), with \( n+1 \) control points, or equivalently, an associated knot vector of size \( p+n+2 \) defined at the increasingly sorted points \( (x_0, x_1 \ldots x_{n+p+1}) \). A linear B-spline has \( p=1 \), quadratic B-spline has \( p=2 \), a cubic B-spline has \( p=3 \), etc.
The B-spline basis functions are defined recursively as follows:
\[ \begin{array}{rcl} N_{i,0}(x) &=& 1 \textrm{\ if\ } x_{i} \leq x < x_{i+1} \\ &=& 0 \textrm{\ otherwise} \\ N_{i,p}(x) &=& N_{i,p-1}(x) \frac{(x - x_{i})}{ (x_{i+p-1} - x_{i})} + N_{i+1,p-1}(x) \frac{(x_{i+p} - x)}{(x_{i+p} - x_{i+1})} \end{array} \]
Definition at line 58 of file bspline.hpp.
Definition at line 25 of file bspline.cpp.
Definition at line 49 of file bspline.cpp.
|
private |
Definition at line 70 of file bspline.hpp.
|
private |
Definition at line 72 of file bspline.hpp.
|
private |
Definition at line 73 of file bspline.hpp.