[Numpy-discussion] Matrix square root

Andrew Nesbit alnesbit at students.cs.mu.oz.au
Thu Sep 4 07:46:55 EDT 2003

I need a function equivalent to Matlab's sqrtm, i.e., a square root
for matrices.

I constructed the following definition:

def sqrtm(M):
    (U,S,VT) = LinearAlgebra.singular_value_decomposition(M)
    D = MLab.diag(sqrt(S))
    return matrixmultiply(matrixmultiply(U,D),VT)

but this technique only works for Hermitian, positive definite
matrices.  The matrices I operate on don't necessarily satisfy that

Does anybody know of a more general technique, preferably with an
accompanying Python implementation?



More information about the NumPy-Discussion mailing list