As far as I know, eigenvector matricies should be idempotent. The eigendecompsotion in matlab however, fails to satisfy this.
Here is an example with my comments:
numel=3;
a = rand(numel);a2=a*a';%gen symmetric matrix
[G,L] = eig(a); %eigendecomposiaion
%i know this is what matlab is solving for
norm(a*G-G*L)%and it does, this quantity is close to zero
%eigenvector matricies should be idempotent
norm(G'*G-eye(numel))
norm(G*G'-eye(numel))
%neither of these are close to zero… that is troubling
%Also, if G was idempotent, these would be zero
norm(a-(G*L*G'))
norm(a-(G'*L*G)) %i checked this too b/c i thought i made a mistake with the transpose
%why should this be true?
%AG=GL — what matlab solves for
%A=GL*inv(G)
%inv(G)=G' for idempotent matrices, so A=GL*G'
Can anyone explain what is going on here? I have an application where I am trying to orthoganalize a set of equations using an eigen decomposition, and the resulting matrix is not exactly diagonal.
ex. in my example, G'*a*G should be diagonal (it should equal L), but it is not
Cheating, and using the inverse, we get that (G\a)*G is 'almost' diagonal
Thanks,
Marco
Best Answer