Matlab’s function sqrtm computes a square root of a matrix. We propose a replacement for the sqrtm in Matlab that is more accurate and returns useful information about the stability and conditioning of the problem.
Matlab has included since at least version 3 a function sqrtm for computing a square root of a matrix. The function works by reducing the matrix to Schur form and then applying a recurrence of Parlett for computing a general function of a triangular matrix.
An error estimate is computed and if it is too large then an attempt is made to improve the accuracy of the computed square root. The function sqrtm in versions of Matlab can be much less accurate than is warranted by the condition of the problem. We propose a replacement for sqrtm that is more accurate and returns useful
information about the stability and conditioning of the problem.
A New sqrtm