[SciPy-User] raising a matrix to float power

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


On Sat, Jul 10, 2010 at 6:15 PM, Charles R Harris <charlesr.harris at gmail.com
> wrote:

>
>
> 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.
>
>
Oops, it is even simpler than that, it reduces to u*v.

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


More information about the SciPy-User mailing list