# [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?

"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>
```