| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → MATLAB |
| Contents | Index |
| Learn more about MATLAB |
L = logm(A)
[L, exitflag] = logm(A)
L = logm(A) is the principal matrix logarithm of A, the inverse of expm(A). L is the unique logarithm for which every eigenvalue has imaginary part lying strictly between -π and π. If A is singular or has any eigenvalues on the negative real axis, the principal logarithm is undefined. In this case, logm computes a non-principal logarithm and returns a warning message.
[L, exitflag] = logm(A) returns a scalar exitflag that describes the exit condition of logm:
If exitflag = 0, the algorithm was successfully completed.
If exitflag = 1, too many matrix square roots had to be computed. However, the computed value of L might still be accurate. This is different from R13 and earlier versions that returned an expensive and often inaccurate error estimate as the second output argument.
The input A can have class double or single.
If A is real symmetric or complex Hermitian, then so is logm(A).
Some matrices, like A = [0 1; 0 0], do not have any logarithms, real or complex, so logm cannot be expected to produce one.
For most matrices:
logm(expm(A)) = A = expm(logm(A))
These identities may fail for some A. For example, if the computed eigenvalues of A include an exact zero, then logm(A) generates infinity. Or, if the elements of A are too large, expm(A) may overflow.
Suppose A is the 3-by-3 matrix
1 1 0
0 0 2
0 0 -1and Y = expm(A) is
Y =
2.7183 1.7183 1.0862
0 1.0000 1.2642
0 0 0.3679Then A = logm(Y) produces the original matrix A.
Y =
1.0000 1.0000 0.0000
0 0 2.0000
0 0 -1.0000But log(A) involves taking the logarithm of zero, and so produces
ans =
0.0000 0 -35.5119
-Inf -Inf 0.6931
-Inf -Inf 0.0000 + 3.1416iThe algorithm logm uses is described in [1].
[1] Davies, P. I. and N. J. Higham, "A Schur-Parlett algorithm for computing matrix functions," SIAM J. Matrix Anal. Appl., Vol. 25, Number 2, pp. 464-485, 2003.
[2] Cheng, S. H., N. J. Higham, C. S. Kenney, and A. J. Laub, "Approximating the logarithm of a matrix to specified accuracy," SIAM J. Matrix Anal. Appl., Vol. 22, Number 4, pp. 1112-1125, 2001.
[3] Higham, N. J., "Evaluating Pade approximants of the matrix logarithm," SIAM J. Matrix Anal. Appl., Vol. 22, Number 4, pp. 1126-1135, 2001.
[4] Golub, G. H. and C. F. Van Loan, Matrix Computation, Johns Hopkins University Press, 1983, p. 384.
[5] 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.
![]() | loglog | logspace | ![]() |

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |