[Numpy-discussion] Getting non-normalized eigenvectors from generalized eigenvalue solution?

Lennart Fricke pge08aqw at studserv.uni-leipzig.de
Wed Dec 21 04:11:08 EST 2011


Dear Fahreddın,
I think, the norm of the eigenvectors corresponds to some generic
amplitude. But that is something you cannot extract from the solution of
the eigenvalue problem but it depends on the initial deflection or
velocities.

So I think you should be able to use the normalized values just as well
as the non-, un- or not normalized ones.

Octave seems to normalize that way that, transpose(Z).B.Z=I, where Z is
the matrix of eigenvectors, B is matrix B of the generalized eigenvalue
problem and I is the identity. It uses lapack functions. But that's only
true if A,B are symmetric. If not it normalizes the magnitude of largest
element of each eigenvector to 1.

I believe you can get it like that. If U is a Matrix with normalization
factors it is diagonal and Z.A contains the normalized column vectors.
then it is:

 transpose(Z.A).B.Z.A
=transpose(A).transpose(Z).B.Z.A
=A.transpose(Z).B.Z.A=I

and thus invert(A).invert(A)=transpose(Z).B.Z
As A is diagonal invert(A) has the reciprocal elements on the diagonal.
So you can easily extract them

A=diag(1/sqrt(diag(transpose(Z).B.Z)))

I hope that's correct.

Best Regards
Lennart




More information about the NumPy-Discussion mailing list