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:
Need help: EIGS gets complex result

Subject: Need help: EIGS gets complex result

From: Yang Liu

Date: 6 Feb, 2009 18:15:03

Message: 1 of 3

Hi,

I am using EIGS to get smallest eigen values and corresponding eigen vectors. When I use EIG, all results are real numbers. If I use EIGS, there are lots of complex results.

Is this problem caused by EIGS/ARPACK? Is there any way to overcome this?

Thanks.

Subject: Need help: EIGS gets complex result

From: Roger Stafford

Date: 6 Feb, 2009 19:19:01

Message: 2 of 3

"Yang Liu" <yxl072100_at@utdallas.edu> wrote in message <gmhun7$dl0$1@fred.mathworks.com>...
> Hi,
>
> I am using EIGS to get smallest eigen values and corresponding eigen vectors. When I use EIG, all results are real numbers. If I use EIGS, there are lots of complex results.
>
> Is this problem caused by EIGS/ARPACK? Is there any way to overcome this?
>
> Thanks.

  Are you speaking of the eigenvalues or the eigenvectors here? The eigenvalues of an n by n square matrix are just the n roots of its characteristic equation. Whether they are complex or real depends only on that matrix. Ideally those found by 'eigs' should be among those found by 'eig'.

  On the other hand eigenvectors are not uniquely determined. Any eigenvector can be multiplied by a complex number of absolute value one - that is, on the unit circle about the origin of the complex plane - and it will still be a valid eigenvector. One eigenvector found by 'eig' might be entirely real while a corresponding eigenvector found by 'eigs' might be complex-valued. Also when two or more eigenvalues are equal, the corresponding set of eigenvectors are only required to span (in the complex field sense) a particular linear subspace of that many dimensions, and are therefore even less uniquely determined.

  If you are seeking the smallest eigenvalues in magnitude from 'eigs', there is also the possibility that they are so small in relation to larger eigenvalues that differences in rounding between 'eig' and 'eigs' would yield real values from the one and complex values from the other.

Roger Stafford

Subject: Need help: EIGS gets complex result

From: Yang Liu

Date: 7 Feb, 2009 17:36:01

Message: 3 of 3

Hi,

Thank you for reply. I mean eigen values of matrix n by n. One example is a 1000 by 1000 matrix. With the same matrix, eig() produce all real eigen values, while eigs() produce complex eigen values. I compared smallest 1 eigen value and corresponding eigen vectors from eig() and eigs(). They are similar, but the one from eigs() seems to have more "noise". This makes my work looks bad. I just want to remove these "noise" if possible.

btw, In my work I need only smallest 200 eigen values and corresponding eigen vectors. I don't need all results.

"Roger Stafford" <ellieandrogerxyzzy@mindspring.com.invalid> wrote in message <gmi2f5$m2m$1@fred.mathworks.com>...
> "Yang Liu" <yxl072100_at@utdallas.edu> wrote in message <gmhun7$dl0$1@fred.mathworks.com>...
> > Hi,
> >
> > I am using EIGS to get smallest eigen values and corresponding eigen vectors. When I use EIG, all results are real numbers. If I use EIGS, there are lots of complex results.
> >
> > Is this problem caused by EIGS/ARPACK? Is there any way to overcome this?
> >
> > Thanks.
>
> Are you speaking of the eigenvalues or the eigenvectors here? The eigenvalues of an n by n square matrix are just the n roots of its characteristic equation. Whether they are complex or real depends only on that matrix. Ideally those found by 'eigs' should be among those found by 'eig'.
>
> On the other hand eigenvectors are not uniquely determined. Any eigenvector can be multiplied by a complex number of absolute value one - that is, on the unit circle about the origin of the complex plane - and it will still be a valid eigenvector. One eigenvector found by 'eig' might be entirely real while a corresponding eigenvector found by 'eigs' might be complex-valued. Also when two or more eigenvalues are equal, the corresponding set of eigenvectors are only required to span (in the complex field sense) a particular linear subspace of that many dimensions, and are therefore even less uniquely determined.
>
> If you are seeking the smallest eigenvalues in magnitude from 'eigs', there is also the possibility that they are so small in relation to larger eigenvalues that differences in rounding between 'eig' and 'eigs' would yield real values from the one and complex values from the other.
>
> Roger Stafford

Tags for this Thread

No tags are associated with 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