From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Re: EIG function and unexpected complex modes
Date: Tue, 14 Jun 2011 17:59:05 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 26
Message-ID: <it87h9$9k8$>
References: <it85cc$1to$>
Reply-To: <HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: 1308074345 9864 (14 Jun 2011 17:59:05 GMT)
NNTP-Posting-Date: Tue, 14 Jun 2011 17:59:05 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1187260
Xref: comp.soft-sys.matlab:731910

"Alessandro " <> wrote in message <it85cc$1to$>...
> Hello,
> I'm using the EIG function to find vibrational modes of a free structure. Mass and stiffness matrices come from a FE model of the structure written in Matlab as well.
> >> [V D] = eig(M\K);
> What happens then is that some eigenvalues stored in D are like this
> real_part + 0.000000000000000i
> where the real parts are exactly those I expect (by means of a comparison with outputs from another FEM). 
> The problem is that the correspondent eigenvectors (modes) are complex with real and imaginary parts of the same order of magnitude. 
> Complex eigenvectors are quite unexpected since the structure is undamped and M, K are simmetric.
> I was wondering if the modes could be miscalculated due to the strange format in which the eigenvalues are handled.
> Thank
- - - - - - - - -
  Any eigenvector can always be multiplied by an arbitrary scalar and it remains an eigenvector.  The matlab 'eig' function as a rule normalizes each eigenvector but that does not give a unique result.  In the real field it could be either of two opposite directions.  In the complex field it remains arbitrary up to a multiple of a complex root of unity.

  You might check to see if your complex-valued eigenvectors that correspond to almost real eigenvalues can be multiplied by a complex root of unity such as to have almost real-valued components.

Roger Stafford