MATRIX_EXPONENTIAL
Algorithms for the Matrix Exponential
MATRIX_EXPONENTIAL
is a C++ library which
exhibits and compares some algorithms for approximating the matrix
exponential function.
Formally, for a square matrix A and scalar t, the matrix exponential
exp(A*t) can be defined as the sum:
exp(A*t) = sum ( 0 <= i < oo ) A^i t^i / i!
The simplest form of the matrix exponential problem asks for the
value when t = 1. Even for this simple case, and for a matrix
of small order, it can be quite difficult to compute the matrix
exponential accurately.
MATRIX_EXPONENTIAL needs the R8LIB library.
The test code for MATRIX_EXPONENTIAL requires the TEST_MATRIX_EXPONENTIAL
library.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
MATRIX_EXPONENTIAL is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version and
a Python version.
Related Data and Programs:
R8LIB,
a C++ library which
contains many utility routines using double precision real (R8) arithmetic.
TEST_MAT,
a C++ library which
defines test matrices.
TEST_MATRIX_EXPONENTIAL,
a C++ library which
defines a set of test cases for computing the matrix exponential.
Reference:

Alan Laub,
Review of "Linear System Theory" by Joao Hespanha,
SIAM Review,
Volume 52, Number 4, December 2010, page 779781.

Cleve Moler, Charles VanLoan,
Nineteen Dubious Ways to Compute the Exponential of a Matrix,
SIAM Review,
Volume 20, Number 4, October 1978, pages 801836.

Cleve Moler, Charles VanLoan,
Nineteen Dubious Ways to Compute the Exponential of a Matrix,
TwentyFive Years Later,
SIAM Review,
Volume 45, Number 1, March 2003, pages 349.

Roger Sidje,
EXPOKIT: Software Package for Computing Matrix Exponentials,
ACM Transactions on Mathematical Software,
Volume 24, Number 1, 1998, pages 130156.

Robert Ward,
Numerical computation of the matrix exponential with accuracy estimate,
SIAM Journal on Numerical Analysis,
Volume 14, Number 4, September 1977, pages 600610.
Source Code:
Examples and Tests:
List of Routines:

C8MAT_EXPM1 is essentially MATLAB's builtin matrix exponential algorithm.

R8MAT_EXPM1 is essentially MATLAB's builtin matrix exponential algorithm.

R8MAT_EXPM2 uses the Taylor series for the matrix exponential.

R8MAT_EXPM3 approximates the matrix exponential using an eigenvalue approach.
You can go up one level to
the C++ source codes.
Last modified on 17 October 2012.