octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #38577] Eig returns non-unitary transformation


From: Jordi Gutiérrez Hermoso
Subject: [Octave-bug-tracker] [bug #38577] Eig returns non-unitary transformation matrix
Date: Mon, 25 Mar 2013 16:06:27 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20130109 Firefox/10.0.12

Update of bug #38577 (project octave):

                  Status:                    None => Confirmed              

    _______________________________________________________

Follow-up Comment #5:

I can confirm this. My first instinct is that the matrix is numerically
defective, so that v not being of full rank would make sense:


a = sparse ([200,100], [100, 200], [-1,-1]);
[v,~] = eig (a);
rank (v)


That's of rank 199, not 200. It is akin to the following situation:


b = [0 1; 0 0];
[v,~] = eig (b);
rank (v)


However, this doesn't seem to explain it. The original 200x200 matrix is not
apparently numerically defective:


rank (null (a)) ## Since 0 is the repeated eigenvalue...


Compare with


rank (null (b))


which is 1, showing the spectral defect.

At any rate, eig returning a zero eigenvector *is* a sign of a defective
matrix. I would need to study deeper the Schur decomposition method to
understand this... Curiously enough, as a workaround, you can use schur()
instead of eig, since in this case it does produce the eigenvectors (the upper
triangular S matrix ends up being not just upper triangular, but diagonal).

I have heard reports that this problem doesn't exist in some Windows builds.
Which version of LAPACK and which BLAS are you using?

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?38577>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]