MATRIX_EXPONENTIAL
Algorithms for the Matrix Exponential
MATRIX_EXPONENTIAL
is a FORTRAN90 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.
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 FORTRAN77 version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
EXPOKIT,
a FORTRAN77 library which
solves various forms of the matrix exponential problem,
by Roger Sidje.
TEST_MAT,
a FORTRAN90 library which
defines test matrices.
TEST_MATRIX_EXPONENTIAL,
a FORTRAN90 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 779-781.
-
Cleve Moler, Charles VanLoan,
Nineteen Dubious Ways to Compute the Exponential of a Matrix,
SIAM Review,
Volume 20, Number 4, October 1978, pages 801-836.
-
Cleve Moler, Charles VanLoan,
Nineteen Dubious Ways to Compute the Exponential of a Matrix,
Twenty-Five Years Later,
SIAM Review,
Volume 45, Number 1, March 2003, pages 3-49.
-
Roger Sidje,
EXPOKIT: Software Package for Computing Matrix Exponentials,
ACM Transactions on Mathematical Software,
Volume 24, Number 1, 1998, pages 130-156.
-
Robert Ward,
Numerical computation of the matrix exponential with accuracy estimate,
SIAM Journal on Numerical Analysis,
Volume 14, Number 4, September 1977, pages 600-610.
Source Code:
Examples and Tests:
List of Routines:
-
EXPM1 is essentially MATLAB's built-in matrix exponential algorithm.
-
EXPM2 uses the Taylor series for the matrix exponential.
-
EXPM3 approximates the matrix exponential using an eigenvalue approach.
-
R8_LOG_2 returns the logarithm base 2 of an R8.
-
R8MAT_FSS factors and solves multiple R8GE systems.
-
R8MAT_IDENTITY stores the identity matrix in an R8MAT.
-
R8MAT_INSIGNIFICANT determines if an R8MAT is insignificant.
-
R8MAT_MINVM computes inverse(A) * B for R8MAT's.
-
R8MAT_NORM_L1 returns the matrix L1 norm of an R8MAT.
-
R8MAT_NORM_LI returns the matrix L-oo norm of an R8MAT.
-
R8MAT_PRINT prints an R8MAT.
-
R8MAT_PRINT_SOME prints some of an R8MAT.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the FORTRAN90 source codes.
Last modified on 28 November 2011.