fda (version 2.4.7)

Lfd: Define a Linear Differential Operator Object

Description

A linear differential operator of order $m$ is defined, usually to specify a roughness penalty.

Usage

Lfd(nderiv=0, bwtlist=vector("list", 0))

Arguments

nderiv

a nonnegative integer specifying the order $m$ of the highest order derivative in the operator

bwtlist

a list of length $m$. Each member contains a functional data object that acts as a weight function for a derivative. The first member weights the function, the second the first derivative, and so on up to order $m-1$.

Value

a linear differential operator object

Details

To check that an object is of this class, use functions is.Lfd or int2Lfd.

Linear differential operator objects are often used to define roughness penalties for smoothing towards a "hypersmooth" function that is annihilated by the operator. For example, the harmonic acceleration operator used in the analysis of the Canadian daily weather data annihilates linear combinations of $1, sin(2 pi t/365)$ and $cos(2 pi t/365)$, and the larger the smoothing parameter, the closer the smooth function will be to a function of this shape.

Function pda.fd estimates a linear differential operator object that comes as close as possible to annihilating a functional data object.

A linear differential operator of order $m$ is a linear combination of the derivatives of a functional data object up to order $m$. The derivatives of orders 0, 1, ..., $m-1$ can each be multiplied by a weight function $b(t)$ that may or may not vary with argument $t$.

If the notation $D^j$ is taken to mean "take the derivative of order $j$", then a linear differental operator $L$ applied to function $x$ has the expression

$Lx(t) = b_0(t) x(t) + b_1(t)Dx(t) + ... + b_{m-1}(t) D^{m-1} x(t) + D^mx(t)$

There are print, summary, and plot methods for objects of class Lfd.

See Also

int2Lfd, vec2Lfd, fdPar, pda.fd plot.Lfd

Examples

Run this code
# NOT RUN {
#  Set up the harmonic acceleration operator
dayrange  <- c(0,365)
Lbasis  <- create.constant.basis(dayrange,
                  axes=list("axesIntervals"))
Lcoef   <- matrix(c(0,(2*pi/365)^2,0),1,3)
bfdobj  <- fd(Lcoef,Lbasis)
bwtlist <- fd2list(bfdobj)
harmaccelLfd <- Lfd(3, bwtlist)
# }

Run the code above in your browser using DataCamp Workspace