expm {Matrix} | R Documentation |
Compute the exponential of a matrix.
expm(x)
x |
a matrix, typically inheriting from the
|
The exponential of a matrix is defined as the infinite Taylor
series expm(A) = I + A + A^2/2! + A^3/3! + ...
(although this is
definitely not the way to compute it). The method for the
dgeMatrix
class uses Ward's diagonal Pade' approximation with
three step preconditioning.
The matrix exponential of x
.
The expm package contains newer (partly faster and more
accurate) algorithms for expm()
and includes
logm
and sqrtm
.
This is a translation of the implementation of the corresponding Octave function contributed to the Octave project by A. Scottedward Hodel A.S.Hodel@Eng.Auburn.EDU. A bug in there has been fixed by Martin Maechler.
http://en.wikipedia.org/wiki/Matrix_exponential
Cleve Moler and Charles Van Loan (2003) Nineteen dubious ways to compute the exponential of a matrix, twenty-five years later. SIAM Review 45, 1, 3–49.
Eric W. Weisstein et al. (1999) Matrix Exponential. From MathWorld, http://mathworld.wolfram.com/MatrixExponential.html
Schur
; additionally,
expm
, logm
, etc in package expm.
(m1 <- Matrix(c(1,0,1,1), nc = 2)) (e1 <- expm(m1)) ; e <- exp(1) stopifnot(all.equal(e1@x, c(e,0,e,e), tol = 1e-15)) (m2 <- Matrix(c(-49, -64, 24, 31), nc = 2)) (e2 <- expm(m2)) (m3 <- Matrix(cbind(0,rbind(6*diag(3),0))))# sparse! (e3 <- expm(m3)) # upper triangular