calls |
interv
|
calculates value at | |
x of jderiv-th derivative of spline from b-repr.
the spline is taken to be continuous from the right, EXCEPT at the
rightmost knot, where it is taken to be continuous from the left.
|
****** |
i n p u t ******
|
t, bcoef, n, k......forms the b-representation of the spline | |
f to
be evaluated. specifically,
|
t.....knot sequence, of length | |
n+k, assumed nondecreasing.
|
bcoef.....b-coefficient sequence, of length | |
n .
|
n.....length of | |
bcoef and dimension of spline(k,t),
|
a s s u m e d | |
positive .
k.....order of the spline .
|
|
|
w a r n i n g . . . | |
the restriction k .le. kmax (=20) is imposed
|
arbitrarily by the dimension statement for | |
aj, dl, dr below,
|
but is |
n o w h e r e c h e c k e d for.
|
|
|
x.....the point at which to evaluate .
jderiv.....integer giving the order of the derivative to be evaluated
|
|
a s s u m e d | |
to be zero or positive.
|
|
|
|
|
****** |
o u t p u t ******
|
bvalue.....the value of the (jderiv)-th derivative of | |
f at x .
|
|
|
****** |
m e t h o d ******
|
The nontrivial knot interval | |
(t(i),t(i+1)) containing x is lo-
|
|
|
cated with the aid of | |
interv . The k b-coeffs of f relevant for
|
this interval are then obtained from | |
bcoef (or taken to be zero if
|
not explicitly available) and are then differenced | |
jderiv times to
|
obtain the b-coeffs of | |
(d**jderiv)f relevant for that interval.
|
Precisely, with | |
j = jderiv, we have from x.(12) of the text that
|
(d**j)f = sum ( bcoef(.,j)*b(.,k-j,t) )
where
|
|
|
bcoef(.,j) | |
= / bcoef(.,j-1) - bcoef(.-1,j-1)
|
/ ----------------------------- , | |
j .gt. 0
|
/ |
(t(.+k-j) - t(.))/(k-j)
|
|
|
Then, we use repeatedly the fact that
|
|
sum ( a(.)*b(.,m,t)(x) ) | |
= sum ( a(.,x)*b(.,m-1,t)(x) )
with
(x - t(.))*a(.) + (t(.+m-1) - x)*a(.-1)
|
a(.,x) |
= ---------------------------------------
|
(x - t(.)) | |
+ (t(.+m-1) - x)
|
|
|
|
|
to write | |
(d**j)f(x) eventually as a linear combination of b-splines
|
of order | |
1 , and the coefficient for b(i,1,t)(x) must then be the
|
desired number | |
(d**j)f(x). (see x.(17)-(19) of text).
|
|
|
|
|