commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bruce A Johnson (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (MATH-297) Eigenvector computation incorrectly returning vectors of NaNs
Date Tue, 27 Oct 2009 03:18:14 GMT

    [ https://issues.apache.org/jira/browse/MATH-297?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12770367#action_12770367
] 

Bruce A Johnson edited comment on MATH-297 at 10/27/09 3:16 AM:
----------------------------------------------------------------

There still seems to be a problem with the decomposition of some matrices.  For example, the
decomposition of the identity matrix '{{1,0},{0,1}}' yields the correct eigenvalues, but NaN
for all the eigenvector elements.
Crucially, the "isIncludedColumn" in the EigenDecompositionImplTest.java file always returns
true (at least on my system) when the calculated eigenvectors have NaN elements, so is useless
as a test for this problem.

Also, I discovered this problem when getting NaN values doing an SVD of certain matrices (where
each row has only one non-zero value).  Since the SVD algorithm uses the EigenDecompositionImpl
code, this seems to be a result of this current  bug.  (And ironically, I just told my students
that one reason people love the SVD is that it essentially never fails).







      was (Author: bjohnson):
    There still seems to be a problem with the decomposition of some matrices.  For example,
the decomposition of the identity matrix "{{1,0},{0,1}}" yields the correct eigenvalues, but
NaN for all the eigenvector elements.
Crucially, the "isIncludedColumn" in the EigenDecompositionImplTest.java file always returns
true (at least on my system) when the calculated eigenvectors have NaN elements, so is useless
as a test for this problem.

Also, I discovered this problem when getting NaN values doing an SVD of certain matrices (where
each row has only one non-zero value).  Since the SVD algorithm uses the EigenDecompositionImpl
code, this seems to be a result of this current  bug.  (And ironically, I just told my students
that one reason people love the SVD is that it essentially never fails).






  
> Eigenvector computation incorrectly returning vectors of NaNs
> -------------------------------------------------------------
>
>                 Key: MATH-297
>                 URL: https://issues.apache.org/jira/browse/MATH-297
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0
>            Reporter: Phil Steitz
>             Fix For: 2.1
>
>
> As reported by Axel Kramer on commons-dev, the following test case succeeds, but should
fail:
> {code}
> public void testEigenDecomposition() {
>     double[][] m = { { 0.0, 1.0, -1.0 }, { 1.0, 1.0, 0.0 }, { -1.0,0.0, 1.0 } };
>     RealMatrix rm = new Array2DRowRealMatrix(m);
>     assertEquals(rm.toString(),
>         "Array2DRowRealMatrix{{0.0,1.0,-1.0},{1.0,1.0,0.0},{-1.0,0.0,1.0}}");
>     EigenDecompositionImpl ed = new EigenDecompositionImpl(rm,
>         MathUtils.SAFE_MIN);
>     RealVector rv0 = ed.getEigenvector(0);
>     assertEquals(rv0.toString(), "{(NaN); (NaN); (NaN)}");
>   }
> {code}
> ed.getRealEigenvalues() returns the correct eigenvalues (2, 1, -1), but all three eigenvectors
contain only NaNs.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message