# Lfd: Define a Linear Differential Operator Object In fda: Functional Data Analysis

## Description

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

## Usage

 `1` ```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\$.

## 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`.

## Value

a linear differential operator object

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

## Examples

 ```1 2 3 4 5 6 7 8``` ```# 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) ```

### Example output

```Loading required package: splines