Matrix Logarithm with Frechet Derivatives and Condition Number

Computing the matrix logarithm in real/complex arithmetic with derivatives and condition numbers.


Updated 5 Nov 2012

View License

Computes the log(A) for any square matrix A with non-negative eigenvalues using the inverse scaling and squaring algorithm. When A is real this algorithm uses only real arithmetic. It is also possible to compute the Frechet derivative of log(A) in any direction E and cond(log, A) to give some idea of the accuracy.

This code can be called in the following ways:
X = logm_frechet(A)
L = logm_frechet(A,E)
[X, cond] = logm_frechet(A)
[X, L] = logm_frechet(A,E)
[X, L, cond] = logm_frechet(A,E)
where X is log(A), L is the Frechet derivative and cond is the condition number.

Function LOGM_FRECHET_TEST.M runs a simple test of the codes.

More detail on the algorithm can be found in:
A. H. Al-Mohy, N. J. Higham and S. D. Relton. Computing the Frechet Derivative of the Matrix Logarithm and Estimating the Condition Number, MIMS Eprint 2012.72, Manchester Institute for Mathematical Sciences, The University of Manchester, UK, July 2012.

Cite As

Samuel Relton (2023). Matrix Logarithm with Frechet Derivatives and Condition Number (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2012b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired: Condition Numbers Comparison

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes