Matrix logarithm
L = logm( is the
principal matrix logarithm of A)A, the inverse of expm(A).
The output, 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, then the principal logarithm is undefined. In
this case, logm computes a nonprincipal 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.
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.
[1] Al-Mohy, A. H. and Nicholas J. Higham, “Improved inverse scaling and squaring algorithms for the matrix logarithm,” SIAM J. Sci. Comput., 34(4), pp. C153–C169, 2012
[2] Al-Mohy, A. H., Higham, Nicholas J. and Samuel D. Relton, “Computing the Frechet derivative of the matrix logarithm and estimating the condition number,” SIAM J. Sci. Comput.,, 35(4), pp. C394–C410, 2013