Path: news.mathworks.com!not-for-mail From: <HIDDEN> Newsgroups: comp.soft-sys.matlab Subject: Re: Need help: EIGS gets complex result Date: Sat, 7 Feb 2009 17:36:01 +0000 (UTC) Organization: University of Texas at Dallas Lines: 23 Message-ID: <gmkgq1$7fc$1@fred.mathworks.com> References: <gmhun7$dl0$1@fred.mathworks.com> <gmi2f5$m2m$1@fred.mathworks.com> Reply-To: <HIDDEN> NNTP-Posting-Host: webapp-02-blr.mathworks.com Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 8bit X-Trace: fred.mathworks.com 1234028161 7660 172.30.248.37 (7 Feb 2009 17:36:01 GMT) X-Complaints-To: news@mathworks.com NNTP-Posting-Date: Sat, 7 Feb 2009 17:36:01 +0000 (UTC) X-Newsreader: MATLAB Central Newsreader 1702500 Xref: news.mathworks.com comp.soft-sys.matlab:516807 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