[Numpy-discussion] Matrix square root

Bernard Frankpitt frankpit at erols.com
Sat Sep 6 07:28:02 CDT 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