[SciPy-User] raising a matrix to float power

Charles R Harris charlesr.harris at gmail.com
Sat Jul 10 20:15:25 EDT 2010


On Sat, Jul 10, 2010 at 5:57 PM, Alexey Brazhe <brazhe at gmail.com> wrote:

> >Sure, M**0.5 is cho_factor(M). For other non-integers I am not sure what
>
> >matrix exponentiation could possibly mean.
>
> >Are you sure you don't mean array exponentiation?
>
> Indeed, I needed to raise a matrix (not array) to power 1/2 (in fact,
> -1/2).
> More precisely, I need to compute W(W^TW)^(-1/2).
> cho_factor fails with "matrix not positive definite", and I don't know how
> to avoid that
>

Well, the question remains as to the precise meaning of the square root
(what is the application?), but my guess is that if you use eigh to
decompose  (W^TW) into u*d*u^T then form u*(d^{-1/2}*u^T you will get what
you need. Maybe ;) Zero elements of d, if any, will be a problem.

You can also use the svd if the previous interpretation is correct, since if
W = u*d*v the whole expression above reduces to u*d^(.5)*v.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20100710/df0bfce8/attachment.html>


More information about the SciPy-User mailing list