re [R] matrix^(-1/2)

re the discussion in November on this thread. I don't know about expm but
the problem must be equivalent to solve(B^(1/2)) and a solution will exist
iff B is invertible and has a square root A with A%*%A = B. For 2x2
matrices necessary and sufficient conditions for B to have a square root
are that either B = diag(0,2) or B%*%B != diag(0,2). This follows from the
fact that B%*%B - t(B)*B + det(B) = 0 and A%*%A - t(A)*A + det(A) = 0.
Many non-symmetric B satisfy B%*%B != diag(0,2) and many of them are
invertible. e.g. all the rotations.

If expm has a function, perhaps Exp, which exponentiates matrices using
matrix multiplication, then if B = Exp(C), B^(-1/2) = Exp(-C/2) would be a
solution. There is an open neighbourhood of the identity matrix in which B
= Exp(C) must hold. Since t(B) = Exp(t(C)), such B will not in general be
symmetric.

If N satisfies N%*%N=0, then B = I+N where I is the identity matrix will
have B^(-1/2) = 1-N/2. Such B are not symmetric as N cannot be symmetric
(for non-zero N).

So, for B^(-1/2) to exist, B must be invertible but need not be symmetric.

hope that helps

Greg

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to