Calculates the matrix exponential.
EXPM(a)
a |
- |
A square matrix. |
A square matrix.
W1: ravel({1,2,3,4}, 2)
W2: expm(w1)
produces the following matrix in W2:
{{51.968956, 112.104847},
{74.736565, 164.073803}}
W1: ravel(1..9, 3)
W2: expm(w1)
W3: logm(w2)
W1 == {{1, 4, 7},
{2, 5, 8},
{3, 6, 9}}
W2 == {{1118906.699, 2533881.042, 3948856.384},
{1374815.063, 3113415.031, 4852013.000},
{1630724.426, 3692947.021, 5755170.615}}
W3 == {{1, 4, 7},
{2, 5, 8},
{3, 6, 9}}
demonstrating EXPM and LOGM are inverse functions.
EXPM(A) returns a matrix X such that logm(X) == A.
If DADiSP/MatrixXL is available, the algorithm in [1] is used to significantly optimize EXPM, else a 7th order Padé approximation algorithm of [2] is used to calculate the matrix exponential.
See FUNM to compute the general matrix function.
[1] |
Nicholas J. Higham |
|
Functions of Matrices: Theory and Computation |
|
SIAM, Sep 11, 2008 |
|
Chapter 10, Algorithm 10.20 |
[2] |
Gene H. Golub and Charles F. Van Loan |
|
Matrix Computations |
|
The Johns Hopkins University Press, London, 1989 |
|
Second Edition, pp. 555-558 |