W
is a tall and skinny real valued matrix, and diag(S)
is a diagonal matrix consists of +1
or -1
on the diagonal. I want the eigen decomposition of A = W * diag(S) * W'
where single quote denotes transposition. The main problem is that A
is pretty big. Since A
is symmetric, rank deficient, and I actually know the maximum rank of A
(from W
), I think I should be able to do this efficiently. Any idea how to approach this?
My eventual goal is to compute the matrix exponential of A
without using MATLAB's expm
which is pretty slow for big matrices and does not take advantage of rank deficiency. If A = U * diag(Z) * U'
is the eigen decomposition, exp(A) = U * diag(exp(Z)) * U'
.
While finding an orthogonal U
such that W * diag(S) * W' = U' * diag(Z) * U'
looks promising to have an easy algorithm, I need some linear algebra help here.