gives the matrix logarithm of a matrix m.

Details and Options

  • MatrixLog is effectively the functional inverse of MatrixExp, so that MatrixExp[MatrixLog[m]] is m for a nonsingular matrix.
  • MatrixLog works only on square nonsingular matrices.
  • A Method option can be given, with possible explicit settings:
  • "Jordan"Jordan decomposition
    "Schur"Schur decomposition for inexact numerical matrices
  • The default setting of Method->Automatic uses the Schur decomposition for inexact numerical matrices and Jordan decomposition for exact and symbolic matrices.
  • The "Schur" method can also be specified by Method->{"Schur",Tolerance->tol}, where eigenvalues with a relative magnitude less than tol are effectively considered as 0 so that the matrix is considered as singular. Use Tolerance->0 to allow any nonzero eigenvalue, no matter how small.
  • MatrixLog works on SparseArray objects.


open allclose all

Basic Examples  (1)

Logarithm of a 2×2 matrix:

Scope  (4)

Use exact arithmetic to compute the matrix logarithm:

Use machine arithmetic:

Use 24-digit-precision arithmetic:

Compute a matrix logarithm of a complex matrix:

A matrix logarithm of a symbolic matrix:

A matrix logarithm of a sparse 10×10 matrix applied to a vector:

Options  (1)

Method  (1)

Eigenvalues with relatively very small magnitude are treated as zero:

Use Tolerance->0 to include nonzero eigenvalues of any magnitude:

Applications  (1)

Given the vectors , and a number , compute the matrix for which :

Form the matrices s=TemplateBox[{{{, {{z, _, 0}, ,, ..., ,, {z, _, {(, {n, -, 1}, )}}}, }}}, Transpose] and w=TemplateBox[{{{, {{z, _, 1}, ,, ..., ,, {z, _, n}}, }}}, Transpose] to compute the matrix such that :

Check that applying the matrix iteratively starting with generates the rest of the vectors :

Properties & Relations  (2)

If m is a nonsingular numeric matrix, then MatrixExp[MatrixLog[m]] is effectively equal to m:

But it is not always true for symbolic matrices:

The identity does not hold in general:

If a matrix is positive definite, then the identity holds:

Possible Issues  (3)

MatrixLog does not work with singular matrices:

The method "Jordan" can work with exact and inexact matrices:

The method "Schur" works only with inexact matrices:

Neat Examples  (1)

Wolfram Research (2012), MatrixLog, Wolfram Language function,


Wolfram Research (2012), MatrixLog, Wolfram Language function,


@misc{reference.wolfram_2020_matrixlog, author="Wolfram Research", title="{MatrixLog}", year="2012", howpublished="\url{}", note=[Accessed: 02-March-2021 ]}


@online{reference.wolfram_2020_matrixlog, organization={Wolfram Research}, title={MatrixLog}, year={2012}, url={}, note=[Accessed: 02-March-2021 ]}


Wolfram Language. 2012. "MatrixLog." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2012). MatrixLog. Wolfram Language & System Documentation Center. Retrieved from