MATLAB Function Reference | ![]() ![]() |
Syntax
Description
Y = logm(X)
returns the matrix logarithm: the inverse function of expm(X)
. Complex results are produced if X
has negative eigenvalues. A warning message is printed if the computed expm(Y)
is not close to X
.
[Y,esterr] = logm(X)
does not print any warning message, but returns an estimate of the relative residual, norm(expm(Y)-X)/norm(X)
.
Remarks
If X
is real symmetric or complex Hermitian, then so is logm(X)
.
Some matrices, like X = [0 1; 0 0]
, do not have any logarithms, real or complex, and logm
cannot be expected to produce one.
Limitations
These identities may fail for some X
. For example, if the computed eigenvalues of X
include an exact zero, then logm(X)
generates infinity. Or, if the elements of X
are too large, expm(X)
may overflow.
Examples
Suppose A
is the 3-by-3 matrix
Then A = logm(X)
produces the original matrix A
.
But log(X)
involves taking the logarithm of zero, and so produces
Algorithm
The matrix functions are evaluated using an algorithm due to Parlett, which is described in [1]. The algorithm uses the Schur factorization of the matrix and may give poor results or break down completely when the matrix has repeated eigenvalues. A warning message is printed when the results may be inaccurate.
See Also
References
[1] Golub, G. H. and C. F. Van Loan, Matrix Computation, Johns Hopkins University Press, 1983, p. 384.
[2] Moler, C. B. and C. F. Van Loan, "Nineteen Dubious Ways to Compute the Exponential of a Matrix," SIAM Review 20, 1979,pp. 801-836.
![]() | loglog | logspace | ![]() |