|
JMSLTM Numerical Library 6.1 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.imsl.math.BSpline
public abstract class BSpline
BSpline represents and evaluates univariate B-splines.
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 . 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 , then the number should occur k - j - 1 times in the knot sequence. Assuming that and are the endpoints of the interval of interest, choose the first k knots equal to and the last k knots equal to . This can be done because the B-splines are defined to be right continuous near and left continuous near .
When the above construction is completed, a knot sequence of length M is generated, and there are m: = M-k B-splines of order k, for example , spanning the ppoly functions on the interval with the indicated smoothness. That is, each ppoly function in this class has a unique representation as a linear combination of B-splines. A B-spline is a particularly compact piecewise polynomial function. is a nonnegative function that is nonzero only on the interval . More precisely, the support of the i-th B-spline is . No piecewise polynomial 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.
Field Summary | |
---|---|
protected double[] |
coef
The B-spline coefficient array. |
protected double[] |
knot
The knot array of length n + order, where n is the number of coefficients in the B-spline. |
protected int |
order
Order of the spline. |
Constructor Summary | |
---|---|
BSpline()
|
Method Summary | |
---|---|
double |
derivative(double x)
Returns the value of the first derivative of the B-spline at a point. |
double[] |
derivative(double[] x,
int ideriv)
Returns the value of the derivative of the B-spline at each point of an array. |
double |
derivative(double x,
int ideriv)
Returns the value of the derivative of the B-spline at a point. |
double[] |
getKnots()
Returns a copy of the knot sequence. |
Spline |
getSpline()
Returns a Spline representation of the B-spline. |
double |
integral(double a,
double b)
Returns the value of an integral of the B-spline. |
double |
value(double x)
Returns the value of the B-spline at a point. |
double[] |
value(double[] x)
Returns the value of the B-spline at each point of an array. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected double[] coef
protected double[] knot
protected int order
Constructor Detail |
---|
public BSpline()
Method Detail |
---|
public double derivative(double x)
x
- a double
specifying a point at which the
derivative is to be evaluated
double
containing the value of the first
derivative of the B-spline at the point x
public double[] derivative(double[] x, int ideriv)
x
- a double
array of points at which the
derivative is to be evaluatedideriv
- an int
specifying the derivative to be
computed. If zero, the function value is returned. If
one, the first derivative is returned, etc.
double
array containing the value of the
derivative the B-spline at each point of the array
x
public double derivative(double x, int ideriv)
x
- a double
specifying a point at which the
derivative is to be evaluatedideriv
- an int
specifying the derivative to be
computed. If zero, the function value is returned. If
one, the first derivative is returned, etc.
double
containing the value of the derivative of
the B-spline at the point x
public double[] getKnots()
double
array containing a copy of the knot
sequence.public Spline getSpline()
Spline
representation of the B-spline.
Spline
representation of the BSpline
public double integral(double a, double b)
a
- a double
specifying the lower limit of
integrationb
- a double
specifying the upper limit of
integration
double
which specifies the B-spline integral
value from a
to b
public double value(double x)
x
- a double
specifying the point at which the
B-spline is to be evaluated
double
giving the value of the B-spline at the
point xpublic double[] value(double[] x)
x
- a double
array of points at which the B-spline
is to be evaluated
double
array containing the value of the B-spline
at each point of the array x
|
JMSLTM Numerical Library 6.1 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |