Learn R Programming

pdSpecEst (version 1.2.4)

pdPolynomial: Generate intrinsic HPD polynomial curves

Description

pdPolynomial generates intrinsic polynomial curves in the manifold of HPD matrices equipped with the affine-invariant Riemannian metric (see B09pdSpecEst[Chapter 6] or PFA05pdSpecEst) according to the numerical integration procedure in HFJ14pdSpecEst. Given an initial starting point p0 (i.e., a HPD matrix) in the Riemannian manifold and covariant derivatives up to order \(k - 1\) at p0, pdPolynomial approximates the uniquely existing intrinsic polynomial curve of degree \(k\) passing through p0 with the given covariant derivatives up to order \(k - 1\) and vanishing higher order covariant derivatives.

Usage

pdPolynomial(p0, v0, delta.t = 0.01, steps = 100)

Arguments

p0

a \((d, d)\)-dimensional HPD matrix specifying the starting point of the polynomial curve.

v0

a \((d, d, k)\)-dimensional array corresponding to a sequence of \((d,d)\)-dimensional Hermitian matrix-valued covariant derivatives from order zero up to order \(k - 1\) at the starting point p0.

delta.t

a numeric value determining the incrementing step size in the numerical integration procedure. A smaller step size results in a higher resolution and therefore a more accurate approximation of the polynomial curve, defaults to delta.t = 0.01.

steps

number of incrementing steps in the numerical integration procedure, defaults to steps = 100.

Value

A (d, d, length(steps))-dimensional array corresponding to a generated (approximate) intrinsic polynomial curve in the space of \((d,d)\)-dimensional HPD matrices of degree \(k\) passing through p0 with the given covariant derivatives v0 up to order \(k - 1\) and vanishing higher order covariant derivatives.

References

See Also

pdNeville, pdParTrans

Examples

Run this code
# NOT RUN {
## First-order polynomial
p0 <- diag(3) ## HPD starting point
v0 <- array(H.coeff(rnorm(9), inverse = TRUE), dim = c(3, 3, 1)) ## zero-th order cov. derivative
P.poly <- pdPolynomial(p0, v0)

## First-order polynomials coincide with geodesic curves
P.geo <- sapply(seq(0, 1, length = 100), function(t) Expm(p0, t * Logm(p0, P.poly[, , 100])),
               simplify = "array")
all.equal(P.poly, P.geo)

# }

Run the code above in your browser using DataLab