MatrixExp {msm} | R Documentation |
Calculates the exponential of a square matrix.
MatrixExp(mat, t = 1, n = 20, k = 3, method="pade")
mat |
A square matrix |
t |
An optional scaling factor, or a vector or scaling factors, for the eigenvalues of |
n |
Number of terms in the series approximation to the exponential |
k |
Underflow correction factor, for the series approximation |
method |
|
The exponential E of a square matrix M is calculated as
E = U exp(D) U^{-1}
where D is a diagonal matrix with the eigenvalues of M on the diagonal, exp(D) is a diagonal matrix with the exponentiated eigenvalues of M on the diagonal, and U is a matrix whose columns are the eigenvectors of M.
This method of calculation is used if M has distinct eigenvalues. I If M has repeated eigenvalues, then its eigenvector matrix may be non-invertible. In this case, the matrix exponential is calculated using the Pade approximation defined by Moler and van Loan (2003), or the less robust power series approximation,
exp(M) = I + M + M^2/2 + M^3 / 3! + M^4 / 4! + ...
For a continuous-time homogeneous Markov process with transition intensity matrix Q, the probability of occupying state s at time u + t conditional on occupying state r at time u is given by the (r,s) entry of the matrix exp(tQ).
The implementation of the Pade approximation was taken from JAGS by Martyn Plummer (http://www-fis.iarc.fr/~martyn/software/jags).
The series approximation method was adapted from the corresponding
function in Jim Lindsey's R package rmutil
(http://popgen.unimaas.nl/~jlindsey/rcode.html).
The exponentiated matrix exp(mat). Or, if t
is
a vector of length 2 or more, an array of exponentiated matrices.
Cox, D. R. and Miller, H. D. The theory of stochastic processes, Chapman and Hall, London (1965)
Moler, C and van Loan, C (2003). Nineteen dubious ways to compute
the exponential of a matrix, twenty-five years later.
SIAM Review 45,
3–49.
At http://epubs.siam.org/sam-bin/dbq/article/41801