IMSL C# Numerical Library

BSpline Class

Spline represents and evaluates univariate B-splines.

For a list of all members of this type, see BSpline Members.

System.Object
   Imsl.Math.BSpline
      Imsl.Math.BsInterpolate
      Imsl.Math.BsLeastSquares

public abstract class BSpline

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Remarks

B-splines provide a particularly convenient and suitable basis for a given class of smooth ppoly functions. Such a class is specified by giving its breakpoint sequence, its order k, and the required smoothness across each of the interior breakpoints. The corresponding B-spline basis is specified by giving its knot sequence {\bf t} \in {\bf R}^M. The specification rule is as follows: If the class is to have all derivatives up to and including the j-th derivative continuous across the interior breakpoint \xi_i, then the number \xi_i should occur k - j - 1 times in the knot sequence. Assuming that \xi_1 and \xi_n are the endpoints of the interval of interest, choose the first k knots equal to \xi_1 and the last k knots equal to \xi_n. This can be done because the B-splines are defined to be right continuous near \xi_1 and left continuous near \xi_n.

When the above construction is completed, a knot sequence {\bf t} of length M is generated, and there are m: = M-k B-splines of order k, for example B_0, ..., B_{m-1}, spanning the ppoly functions on the interval with the indicated smoothness. That is, each ppoly function in this class has a unique representation p = a_0B_0 + a_1B_1 + ... + a_{m-1}B_{m-1} as a linear combination of B-splines. A B-spline is a particularly compact ppoly function. B_i is a nonnegative function that is nonzero only on the interval [{\bf t}_i,{\bf t}_{i+k}]. More precisely, the support of the i-th B-spline is \left[ t_i,t_{i+k}\right]. No ppoly function in the same class (other than the zero function) has smaller support (i.e., vanishes on more intervals) than a B-spline. This makes B-splines particularly attractive basis functions since the influence of any particular B-spline coefficient extends only over a few intervals.

Requirements

Namespace: Imsl.Math

Assembly: ImslCS (in ImslCS.dll)

See Also

BSpline Members | Imsl.Math Namespace | BsInterpolate Example | BsLeastSquares Example