Main Content

expm

Matrix exponential

Description

Y = expm(X) computes the matrix exponential of X. Although it is not computed this way, if X has a full set of eigenvectors V with corresponding eigenvalues D, then [V,D] = eig(X) and

expm(X) = V*diag(exp(diag(D)))/V

Use exp for the element-by-element exponential.

example

Examples

collapse all

Compute and compare the exponential of A with the matrix exponential of A.

A = [1 1 0; 0 0 2; 0 0 -1];
exp(A)
ans = 3×3

    2.7183    2.7183    1.0000
    1.0000    1.0000    7.3891
    1.0000    1.0000    0.3679

expm(A)
ans = 3×3

    2.7183    1.7183    1.0862
         0    1.0000    1.2642
         0         0    0.3679

Notice that the diagonal elements of the two results are equal, which is true for any triangular matrix. The off-diagonal elements, including those below the diagonal, are different.

Input Arguments

collapse all

Input matrix, specified as a square matrix.

Data Types: single | double
Complex Number Support: Yes

Algorithms

The algorithm expm uses is described in [1] and [2].

Note

Matrix Exponentials illustrates the use of Padé approximation, Taylor series approximation, and eigenvalues and eigenvectors to compute the matrix exponential. References [3] and [4] describe and compare many algorithms for computing a matrix exponential.

References

[1] Higham, N. J., “The Scaling and Squaring Method for the Matrix Exponential Revisited,” SIAM J. Matrix Anal. Appl., 26(4) (2005), pp. 1179–1193.

[2] Al-Mohy, A. H. and N. J. Higham, “A new scaling and squaring algorithm for the matrix exponential,” SIAM J. Matrix Anal. Appl., 31(3) (2009), pp. 970–989.

[3] Golub, G. H. and C. F. Van Loan, Matrix Computation, p. 384, Johns Hopkins University Press, 1983.

[4] Moler, C. B. and C. F. Van Loan, “Nineteen Dubious Ways to Compute the Exponential of a Matrix,” SIAM Review 20, 1978, pp. 801–836. Reprinted and updated as “Nineteen Dubious Ways to Compute the Exponential of a Matrix, Twenty-Five Years Later,” SIAM Review 45, 2003, pp. 3–49.

Extended Capabilities

Version History

Introduced before R2006a

expand all

See Also

| | | | | |