expmFrechet: Frechet Derivative of the Matrix Exponential
Description
Compute the Frechet derivative of the matrix exponential operator
Usage
expmFrechet(A, E, method = c("SPS", "blockEnlarge"), expm = TRUE)
Arguments
A
square matrix ($n \times n$).
E
the small Error matrix,
used in $L(A,E) = f(A + E, A)$
method
string specifying the method / algorithm; the default
"SPS" is Scaling + Pade + Squaring as in the
algorithm 6.4 below; otherwise see the Details section.
expm
logical indicating if the matrix exponential itself, which
is computed anyway, should be returned as well.
Value
a list with components
expmif expm is true, the matrix exponential
($n \times n$ matrix).
Lexpmthe Exponential-Frechet-Derivative $L(A,E)$, a matrix
of the same dimension.
encoding
UTF-8
Details
Calculation of $e^A$ and the Exponential Frechet-Derivative
$L(A,E)$.
method = "blockEnlarge" uses the matrix identity of $$f([A E ; 0 A ]) = [f(A) Df(A); 0 f(A)]$$ for the $2n \times
2n$ block matrices where $f(A) := expm(A)$ and
$Df(A) := L(A,E)$. Note that "blockEnlarge" is much
simpler to implement but slower (CPU time is doubled for $n = 100$).