# expm

Matrix exponential

## Description

example

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.

## 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

The files, expmdemo1.m, expmdemo2.m, and expmdemo3.m illustrate the use of Padé approximation, Taylor series approximation, and eigenvalues and eigenvectors, respectively, 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.

## Version History

Introduced before R2006a