expmv
Description
calculates the product of a matrix exponential and a vector. This function computes
F = expmv(A,b,t)expm(t*A)*b without explicitly forming the matrix exponential
expm(t*A). Here, A is an
n-by-n square matrix, b is an
n-by-1 column vector, and t is a
scalar. The output F is an n-by-1 column
vector.
A can also be a function handle, where A(flag,X)
must accept an input matrix X, create a square matrix
Am with an order that is equal to the column length of
X, and return the following values for the indicated flag:
A("real",X)returns logical1(true) if the square matrixAmis real and returns logical0(false) otherwise.A("notransp",X)returnsAm*X.A("transp",X)returnsAm'*X.
computes F = expmv(A,b,tvals)expm(t*A)*b without explicitly forming
expm(t*A) for each element t in
tvals. Here, tvals is a vector of length
m and the output F is an
n-by-m matrix such that each column of
F is F(:,j) = expm(tvals(j)*A)*b for j =
1:m.
For an equally spaced tvals, such as a time vector with a fixed time
step, expmv uses an efficient algorithm that reuses information based on
the spacing pattern of tvals. MATLAB® uses the isuniform function to check whether
tvals is equally spaced.
Examples
Input Arguments
References
[1] Al-Mohy, Awad H., and Nicholas J. Higham. “Computing the Action of the Matrix Exponential, with an Application to Exponential Integrators.” SIAM Journal on Scientific Computing 33, no. 2 (January 2011): 488–511. https://doi.org/10.1137/100788860.
Version History
Introduced in R2023b
