# Algorithm to calculate the exponential of an Hessenberg matrix

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.

• There's been some newer work by Jitse Niesen you might also want to look at. – Geoff Oxberry Jun 24 '14 at 19:19
• Is the small-scale exponential really the bottleneck of your algorithm? I would expect its cost to be negligible with respect to the Arnoldi part. – Federico Poloni Jun 28 '14 at 20:31

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.