Geometric Numerical
Integration and Applications
An efficient alternative to
the function expm of Matlab for the computation of the
exponential of a matrix
In the paper
- P. Bader, S. Blanes, and F. Casas.
Computing the matrix exponential with an optimized Taylor polynomial expansion. Mathematics 7
(2019), 1174
we propose a new
implementation of the Taylor polynomial approximating the
exponential of a matrix in such a way that the number of matrix
products is reduced with respect to the Patterson-Stockmeyer
technique. This technique is used in combination with the
scaling and squaring procedure in such a way that the algorithm
is superior in performance to the standard approach based on
Padé approximants, such as it is used by the Matlab function expm.
You can download all the material needed for
generating the figures of the paper through the file FigureGeneration.zip, together
with an implementation of the algorithm proposed in comparison
with others based on Padé approximants. Here
there is a file containing additional help.
For convenience, we also provide separately the
Matlab implementation of all the algorithms collected in the
paper:
- expm2.m:
the simplest implementation of the new algorithm based on
Taylor polynomials
- expm3.m:
a most sophisticated implementation to deal with overscaling
based on Taylor polynomials
- expm2005.m:
the simplest implementation of the scaling and squaring
procedure with Padé approximants (expm in Matlab from
R2013a)
- expm2009[2].m:
algorithm based on Padé approximants and norm estimators to
avoid overscaling
- expm2016.m: algorithm based on Padé
approximants, norm estimators to avoid overscaling and
special devices to deal with small matrices, symmetric
matrices, Schur-decompositions and block structures (expm in
Matlab from R2016a)
The file helper.zip contains an
additional folder with several files needed for the previous
programmes.