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

Fahreddın Basegmez mangabasi at gmail.com
Wed Dec 21 07:49:31 EST 2011


According to this page eigenvectors are normalized with respect to the
second matrix.  Do you guys have any idea how that's done?

http://www.kxcad.net/Altair/HyperWorks/oshelp/frequency_response_analysis.htm

 "If the eigenvectors are normalized with respect to the mass matrix, the
modal mass matrix is the unity matrix and the modal stiffness matrix is a
diagonal matrix holding the eigenvalues of the system. This way, the system
equation is reduced to a set of uncoupled equations for the components
of d that
can be solved easily."



On Wed, Dec 21, 2011 at 7:31 AM, Andrew Jaffe <a.h.jaffe at gmail.com> wrote:

> Just to be completely clear, there is no such thing as a
> "non-normalized" eigenvector. An eigenvector is only determined *up to a
> scalar normalization*, which is obvious from the eigenvalue equation:
>
> A v = l v
>
> where A is the matrix, l is the eigenvalue, and v is the eigenvector.
> Obviously v is only determined up to a constant factor. A given eigen
> routine can return anything at all, but there is no native
> "non-normalized" version.
>
> Traditionally, you can decide to return "normalized" eigenvectors with
> the scalar factor determined by norm(v)=1 for some suitable norm. (I
> could imagine that an algorithm could depend on that.)
>
> Andrew
>
>
> On 21/12/2011 07:01, Olivier Delalleau wrote:
>  > Aaah, thanks a lot Lennart, I knew there had to be some logic to
>  > Octave's output, but I couldn't see it...
>  >
>  > -=- Olivier
>  >
>  > 2011/12/21 Lennart Fricke <pge08aqw at studserv.uni-leipzig.de
>  > <mailto:pge08aqw at studserv.uni-leipzig.de>>
>  >
>  >     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
>  >
>  >     _______________________________________________
>  >     NumPy-Discussion mailing list
>  >     NumPy-Discussion at scipy.org <mailto:NumPy-Discussion at scipy.org>
>  >     http://mail.scipy.org/mailman/listinfo/numpy-discussion
>  >
>  >
>  >
>  >
>  > _______________________________________________
>  > NumPy-Discussion mailing list
>  > NumPy-Discussion at scipy.org
>  > http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20111221/e53c043b/attachment.html>


More information about the NumPy-Discussion mailing list