eigen.pda: Stability Analysis for Principle Differential Analysis

View source: R/eigen.pda.R

eigen.pdaR Documentation

Stability Analysis for Principle Differential Analysis

Description

Performs a stability analysis of the result of pda.fd, returning the real and imaginary parts of the eigenfunctions associated with the linear differential operator.

Usage

eigen.pda(pdaList,plotresult=TRUE,npts=501,...)

Arguments

pdaList

a list object returned by pda.fd.

plotresult

should the result be plotted? Default is TRUE

npts

number of points to use for plotting.

...

other arguments for 'plot'.

Details

Conducts an eigen decomposition of the linear differential equation implied by the result of pda.fd. Imaginary eigenvalues indicate instantaneous oscillatory behavior. Positive real eigenvalues indicate exponential increase, negative real eigenvalues correspond to exponential decay. If the principle differential analysis also included the estimation of a forcing function, the limiting stable points are also tracked.

Value

Returns a list with elements

argvals

The evaluation points of the coefficient functions.

eigvals

The corresponding eigenvalues at each time.

limvals

The stable points of the system at each time.

References

Ramsay, James O., Hooker, Giles, and Graves, Spencer (2009), Functional data analysis with R and Matlab, Springer, New York.

Ramsay, James O., and Silverman, Bernard W. (2005), Functional Data Analysis, 2nd ed., Springer, New York.

Ramsay, James O., and Silverman, Bernard W. (2002), Applied Functional Data Analysis, Springer, New York.

See Also

pda.fd plot.pda.fd pda.overlay

Examples


#  A pda analysis of the handwriting data

# reduce the size to reduce the compute time for the example
ni <- 281
indx <- seq(1, 1401, length=ni)
fdaarray = handwrit[indx,,]
fdatime  <- seq(0, 2.3, len=ni)

#  basis for coordinates

fdarange <- c(0, 2.3)
breaks = seq(0,2.3,length.out=116)
norder = 6
fdabasis = create.bspline.basis(fdarange,norder=norder,breaks=breaks)
nbasis <- fdabasis$nbasis

#  parameter object for coordinates

fdaPar = fdPar(fd(matrix(0,nbasis,1),fdabasis),int2Lfd(4),1e-8)

#  coordinate functions and a list tontaining them

Xfd = smooth.basis(fdatime, fdaarray[,,1], fdaPar)$fd
Yfd = smooth.basis(fdatime, fdaarray[,,2], fdaPar)$fd

xfdlist = list(Xfd, Yfd)

#  basis and parameter object for weight functions

fdabasis2 = create.bspline.basis(fdarange,norder=norder,nbasis=31)
fdafd2    = fd(matrix(0,31,2),fdabasis2)
pdaPar    = fdPar(fdafd2,1,1e-8)

pdaParlist = list(pdaPar, pdaPar)

bwtlist = list( list(pdaParlist,pdaParlist), list(pdaParlist,pdaParlist) )


fda documentation built on Sept. 30, 2024, 9:19 a.m.