expAtv | R Documentation |
Compute \exp(A t) * v
directly, without evaluating \exp(A)
.
expAtv(A, v, t = 1,
method = "Sidje98",
rescaleBelow = 1e-6,
tol = 1e-07, btol = 1e-07, m.max = 30, mxrej = 10,
verbose = getOption("verbose"))
A |
n x n matrix |
v |
n - vector |
t |
number (scalar); |
method |
a string indicating the method to be used; there's only one currently; we would like to add newer ones. |
rescaleBelow |
if |
tol , btol |
tolerances; these are tuning constants of the "Sidje1998" method which the user should typically not change. |
m.max , mxrej |
integer constants you should only change if you know what you're doing |
verbose |
flag indicating if the algorithm should be verbose.. |
a list with components
eAtv |
.....fixme... |
Ravi Varadhan, Johns Hopkins University;
Martin Maechler (cosmetic, generalization to sparse matrices;
rescaling (see rescaleBelow
).
Roger B. Sidje (1998) EXPOKIT: Software Package for Computing Matrix Exponentials. ACM - Transactions On Mathematical Software 24(1), 130–156.
(Not yet available in our expm package!)
Al-Mohy, A. and Higham, N. (2011).
Computing the Action of the Matrix Exponential, with an Application
to Exponential Integrators.
SIAM Journal on Scientific Computing, 33(2), 488–511.
\Sexpr[results=rd]{tools:::Rd_expr_doi("10.1137/100788860")}
expm
source(system.file("demo", "exact-fn.R", package = "expm"))
##-> rnilMat() ; xct10
set.seed(1)
(s5 <- Matrix(m5 <- rnilMat(5))); v <- c(1,6:9)
(em5 <- expm(m5))
r5 <- expAtv(m5, v)
r5. <- expAtv(s5, v)
stopifnot(all.equal(r5, r5., tolerance = 1e-14),
all.equal(c(em5 %*% v), r5$eAtv))
v <- 10:1
with(xct10, all.equal(expm(m), expm))
all.equal(c(xct10$expm %*% v),
expAtv(xct10$m, v)$eAtv)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.