[Numpy-discussion] Matrix square root
Bernard Frankpitt
frankpit at erols.com
Sat Sep 6 07:28:02 EDT 2003
Andrew Nesbit wrote:
>Konrad Hinsen <hinsen at cnrs-orleans.fr> writes:
>
>>On Thursday 04 September 2003 16:42, Andrew Nesbit wrote:
>>
>>
>>>I need a function equivalent to Matlab's sqrtm, i.e., a square root
>>>for matrices
>>>
>[snip]
>
>>I'd use an eigenvalue decomposition, then take the square root of the
>>eigenvalues, and then apply the diagonlization matrix in reverse. If you
>>convert to eigenvalues to complex before taking the square root, this will
>>work for non-positive-definite matrices, yielding a complex result
>>
>
>Thankyou for the advice. This gives me a good starting point.
>
>Andrew.
>
>
>
The only problem with this approach is that you have to find all the
eigenvalues and eigenvectors to get the spectral decomposition. For
large, poorly conditioned matrices this can be a source of significant
errors, and a lot of work. An alternative, and often faster and more
accurate approach is to use a series expansion for the square root.
Evaluating the series expansion only requires multiplication.
Bernie
More information about the NumPy-Discussion
mailing list