eval.penalty | Language Reference for FDA Library
|
eval.penalty(basisobj, Lfdobj=int2Lfd(0), rng=rangeval)
basisobj
.
If
Lfdobj
is m or a linear
differential operator of order m, the rank
of the matrix should be at least approximately equal to
its order minus m.
The inner product can be computed exactly for many types of bases if m is an integer. These include B-spline, fourier, exponential, monomial, polynomial and power bases. In other cases, and for noninteger operators, the inner products are computed by an iterative numerical integration method called Richard extrapolation using the trapezoidal rule.
The computation of the penalty matrix is a relatively
lengthy operation, and particular in S-PLUS code, so that
the calculations are made with a C++ function. The function
getbasispenaltyC
calls this function, but can
only do so for integer-valued linear differential operators.
If the penalty matrix must be evaluated repeatedly,
computation can be greatly speeded up by avoiding the use
of this function, and instead using quadrature points and
weights defined by Simpson's rule. These may be conveniently
computed using function
quadset
, and stored along
with the associated basis function/derivative values as a
part of the basis object.