Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
EIG function and unexpected complex modes

Subject: EIG function and unexpected complex modes

From: Alessandro

Date: 14 Jun, 2011 17:22:20

Message: 1 of 10

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

   

Subject: EIG function and unexpected complex modes

From: Roger Stafford

Date: 14 Jun, 2011 17:59:05

Message: 2 of 10

"Alessandro " <aledipo10@gmail.com> wrote in message <it85cc$1to$1@newscl01ah.mathworks.com>...
> 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
  

Subject: EIG function and unexpected complex modes

From: Greg Heath

Date: 14 Jun, 2011 20:01:52

Message: 3 of 10

On Jun 14, 1:22 pm, "Alessandro " <aledip...@gmail.com> wrote:
> 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

Check to see if M\K is exactly symmetric.
Also see what you get from eigs.

Hope this helps.

Greg

Subject: EIG function and unexpected complex modes

From: Dario

Date: 14 Jun, 2011 23:58:02

Message: 4 of 10

Greg Heath <heath@alumni.brown.edu> wrote in message <926b6c5c-7c54-4ab3-a207-4932c4d76938@f11g2000vbx.googlegroups.com>...
> On Jun 14, 1:22 pm, "Alessandro " <aledip...@gmail.com> wrote:
> > 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
>
> Check to see if M\K is exactly symmetric.
> Also see what you get from eigs.
>
> Hope this helps.
>
> Greg

Hi Greg,

Thamks for answering. I'm Dario and I'm working at the same project of Alessandro. M and K are exactly symmetric, M\K is not. But as far as I know complex modes should appear just when one between M and K is not symmetric. Since the damping matrix is not considered in our case, what we expect are real modes.
I didn't get why you suggested us to use the eigs function.

Thanks,

Dario

Subject: EIG function and unexpected complex modes

From: Dario

Date: 15 Jun, 2011 00:00:21

Message: 5 of 10

"Roger Stafford" wrote in message <it87h9$9k8$1@newscl01ah.mathworks.com>...
> "Alessandro " <aledipo10@gmail.com> wrote in message <it85cc$1to$1@newscl01ah.mathworks.com>...
> > 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
>

Hello,

I'm Dario and I'm working at the same project of Alessandro. As expected, sometimes we have two eigenvectors with the the same eigenvalues (for example two symmetric modes).

For example:
considering the problem [V D] = eig(M\K);
at some point in the diagonal of the D matrix we encounter two eigenvalues with the same real part of the form:
l1 = a + 0.0000000i
l2 = a - 0.0000000i
The corrisponding two eigenvectors are complex conjugated. It doesn't seem that a scalar value could make the imaginary part negligible.

Subject: EIG function and unexpected complex modes

From: Roger Stafford

Date: 15 Jun, 2011 02:19:14

Message: 6 of 10

"Dario " <dario.donatiello@gmail.com> wrote in message <it8sml$a6j$1@newscl01ah.mathworks.com>...
> I'm Dario and I'm working at the same project of Alessandro. As expected, sometimes we have two eigenvectors with the the same eigenvalues (for example two symmetric modes).
>
> For example:
> considering the problem [V D] = eig(M\K);
> at some point in the diagonal of the D matrix we encounter two eigenvalues with the same real part of the form:
> l1 = a + 0.0000000i
> l2 = a - 0.0000000i
> The corrisponding two eigenvectors are complex conjugated. It doesn't seem that a scalar value could make the imaginary part negligible.
- - - - - - - - - - -
  If you have two eigenvalues that are (nearly) equal, then any linear combination of their two eigenvectors will also be (nearly) an eigenvector. If they are (nearly) complex conjugates of one another, then the common real part is one such linear combination and the difference of their imaginary parts is another. Each of these linear combinations contains only real components and constitutes a valid eigenvector (which you can normalize if desired.)

Roger Stafford

Subject: EIG function and unexpected complex modes

From: Roger Stafford

Date: 15 Jun, 2011 02:33:05

Message: 7 of 10

"Roger Stafford" wrote in message <it94r2$t1o$1@newscl01ah.mathworks.com>...
> .... If they are (nearly) complex conjugates of one another, then the common real part is one such linear combination and the difference of their imaginary parts is another. ....
- - - - - - - - -
  I should have said their sum is one such linear combination and their difference divided by i is another. Each of these linear combinations contains (almost) only real components.

Roger Stafford

Subject: EIG function and unexpected complex modes

From: Greg Heath

Date: 15 Jun, 2011 15:55:30

Message: 8 of 10

On Jun 14, 7:58 pm, "Dario " <dario.donatie...@gmail.com> wrote:
> Greg Heath <he...@alumni.brown.edu> wrote in message <926b6c5c-7c54-4ab3-a207-4932c4d76...@f11g2000vbx.googlegroups.com>...
> > On Jun 14, 1:22 pm, "Alessandro " <aledip...@gmail.com> wrote:
> > > 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
>
> > Check to see if M\K is exactly symmetric.
> > Also see what you get from eigs.
>
> > Hope this helps.
>
> > Greg
>
> Hi Greg,
>
> Thamks for answering. I'm Dario and I'm working at the same project of Alessandro. M and K are exactly symmetric, M\K is not. But as far as I know complex modes should appear just when one between M and K is not symmetric. Since the damping matrix is not considered in our case, what we expect are real modes.
> I didn't get why you suggested us to use the eigs function.

To see if you like it's answer better.

Greg

Subject: EIG function and unexpected complex modes

From: Roger Stafford

Date: 15 Jun, 2011 17:30:10

Message: 9 of 10

"Dario " <dario.donatiello@gmail.com> wrote in message <it8sia$9pd$1@newscl01ah.mathworks.com>...
> Thamks for answering. I'm Dario and I'm working at the same project of Alessandro. M and K are exactly symmetric, M\K is not. But as far as I know complex modes should appear just when one between M and K is not symmetric. Since the damping matrix is not considered in our case, what we expect are real modes. .........
- - - - - - - - -
  Here is a little experiment I carried out to illustrate what can happen with non-Hermitian matrices with multiple or nearly multiple eigenvalues. In this case I have chosen the "defective" matrix A = [5/3,2/3;-2/3,1/3] which ideally has a double eigenvalue of 1 and whose eigenvectors do not form a basis for C^2, all being multiples of [sqrt(1/2),-sqrt(1/2)].

  In actual computations the following are the results using matlab's 'eig' function. Notice that at first the results appear quite different with the two pairs of eigenvectors differing by nearly a multiple of i. However in a sense in both cases we have almost the same eigenvalues and almost the same one-dimensional subspace spanned by the eigenvectors as in the ideal case. In that sense the small errors here have not really produced a large change in the essential results, but only in the way they are represented.

A = [5/3,2/3;-2/3,1/3];
[V,D] = eig(A);

diag(D) =
   1.00000001110667
   0.99999998889333

V(:,1) =
   0.70710678707675
  -0.70710677529635

V(:,2) =
  -0.70710677529635
   0.70710678707675


A = [5/3,2/3+2^(-51);-2/3,1/3];
[V,D] = eig(A);

diag(D) =
  1.00000000000000 + 0.00000001241763i
  1.00000000000000 - 0.00000001241763i

V(:,1) =
  0.00000001317089 - 0.70710678118655i
                 0 + 0.70710678118655i

V(:,2) =
  0.00000001317089 + 0.70710678118655i
                 0 - 0.70710678118655i

  I would speculate that something along this line is what is happening in your case.

Roger Stafford

Subject: EIG function and unexpected complex modes

From: Alessandro

Date: 16 Jun, 2011 11:49:04

Message: 10 of 10

"Roger Stafford" wrote in message <itaq72$n3u$1@newscl01ah.mathworks.com>...
> "Dario " <dario.donatiello@gmail.com> wrote in message <it8sia$9pd$1@newscl01ah.mathworks.com>...
> > Thamks for answering. I'm Dario and I'm working at the same project of Alessandro. M and K are exactly symmetric, M\K is not. But as far as I know complex modes should appear just when one between M and K is not symmetric. Since the damping matrix is not considered in our case, what we expect are real modes. .........
> - - - - - - - - -
> Here is a little experiment I carried out to illustrate what can happen with non-Hermitian matrices with multiple or nearly multiple eigenvalues. In this case I have chosen the "defective" matrix A = [5/3,2/3;-2/3,1/3] which ideally has a double eigenvalue of 1 and whose eigenvectors do not form a basis for C^2, all being multiples of [sqrt(1/2),-sqrt(1/2)].
>
> In actual computations the following are the results using matlab's 'eig' function. Notice that at first the results appear quite different with the two pairs of eigenvectors differing by nearly a multiple of i. However in a sense in both cases we have almost the same eigenvalues and almost the same one-dimensional subspace spanned by the eigenvectors as in the ideal case. In that sense the small errors here have not really produced a large change in the essential results, but only in the way they are represented.
>
> A = [5/3,2/3;-2/3,1/3];
> [V,D] = eig(A);
>
> diag(D) =
> 1.00000001110667
> 0.99999998889333
>
> V(:,1) =
> 0.70710678707675
> -0.70710677529635
>
> V(:,2) =
> -0.70710677529635
> 0.70710678707675
>
>
> A = [5/3,2/3+2^(-51);-2/3,1/3];
> [V,D] = eig(A);
>
> diag(D) =
> 1.00000000000000 + 0.00000001241763i
> 1.00000000000000 - 0.00000001241763i
>
> V(:,1) =
> 0.00000001317089 - 0.70710678118655i
> 0 + 0.70710678118655i
>
> V(:,2) =
> 0.00000001317089 + 0.70710678118655i
> 0 - 0.70710678118655i
>
> I would speculate that something along this line is what is happening in your case.
>
> Roger Stafford

Hi Roger,

I think it is exactly what is happening in our simulations. Probably fixed it.

Thanks a lot for your invaluable help

Alessandro Dipaola

Tags for this Thread

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us