# MatrixLog

MatrixLog[m]

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 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.

# Examples

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 and 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: 