BAtensorfn: Compute the four-way tensors corresponding to pairs of terms... In Data2LD: Functional Data Analysis with Linear Differential Equations

Description

A linear differential equation involves a set of terms consisting of the product of a coefficient function that must be estimated and a derivative (including a derivative order 0) of one of the variables in the system. We call this portion of the equation the homogeneous part of the equation, as opposed to the part consisting of forcing terms involving known forcing functions. When both of the functions in either a homogeneous term or a forcing term are defined by B-splines, the product involves an inner product of two B-spline basis systems. When a product of a homogeneous term and a forcing term are required, as is usual in the the use of the Data2LD package, a great improvement in efficiency of computation can be acheived by an initial computation of the four-way array or tensor resulting by taking the inner products of all possible quadruples of of the B-spline basis functions involved. Memoization is the process of storing these tensors in memory so that they do not need to be re-computed each time the Data2LD.R function is called. Memoization is taken care of automatically in the code using the R.cache package, and is activated the first time a new `modelList` object is encountered. Normally the user does not have to worry about the memorization procedure. It is possible, however, to manually re-activate the memoization. However, users may also want to construct these four-way tensors manually for debugging and other purposes, and this function is made available for this reason.

Usage

 `1` ``` BAtensorfn(XbasisList, modelList) ```

Arguments

 `XbasisList` A list object of length equal to the number of equations in the system. Each member of this list is a functional basis object used to approximate the values of the corresponding variable. `modelList` A list object containing the specification of a Data2LD model. Each member of this list contains a list object that defines a single linear differential equation.

Details

Variable specifications can be set by an invocation of function `make.Variable` for each linear differential equation in the system. Functions `Atensorfn`, `BAtensorfn` and `Btensorfn` will not normally be required by users since they are invoked automatically with the function `checkModel`, which is required to be invoked before the analysis of the data.

Value

A list object of length equal to the number of variables in the system. Each of the members of this list is a two-dimensional list object, and the members of this list are the four-way tensors set up as vectors for each of the possible pairs of forcing terms. All levels of the this list structure are designed to be accessed numerically by a call like `myBAtensor[[ivar]][[ntermj]][[ntermk]]`.

References

J. O. Ramsay and G. Hooker (2017) Dynamic Data Analysis. Springer.

Data2LD documentation built on Aug. 6, 2020, 1:08 a.m.