I am interested in computing the solution of a lage system of ODEs using a krylov method as in [1]. Such method involve functions related to the exponential (the so-called $\varphi$-functions). It essentially consists of computing the action of the matrix function by constructing a Krylov subspace using Arnoldi iteration and projecting the function on this subspace. This reduce the problem to compute the exponential of a much smaller Hessenberg matrix.I am aware that there are several algorithms to compute the exponential (see [2][3] and references therein). I wonder if there is a special algorithm to calculate the exponential that can takes advantage of the fact that the matrix is Hessenberg ?[1] Sidje, R. B. (1998). Expokit: a software package for computing matrix exponentials. ACM Transactions on Mathematical Software (TOMS), 24(1), 130-156.[2] Moler, C., & Van Loan, C. (1978). Nineteen dubious ways to compute the exponential of a matrix. SIAM review, 20(4), 801-836.[3] Moler, C., & Van Loan, C. (2003). Nineteen dubious ways to compute the exponential of a matrix, twenty-five years later. SIAM review, 45(1), 3-49.
Algorithm to calculate the exponential of an Hessenberg matrix
linear algebra;matrices;numerical analysis;time integration;krylov method
Since expokit seems to use a Krylov subspace method, usually (at least, the hope is that) the upper Hessenberg matrices are of small dimension, say $m \sim 100$. For matrices of these sizes, there should not be any major difference in computational time by using any method for dense matrix exponential computation. For example, 'expm' in MATLAB seems to use scaling and squaring method with a Pade approximation near zero.If the dimension of the Krylov subspace is large, then you might consider either preconditioning http://link.springer.com/article/10.1023%2FA%3A1023219016301 or restarting the Krylov subspace method http://www.mathe.tu-freiberg.de/~Ernst/PubArchive/eiermannErnstKrylovExp.pdf 