[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