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