[
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.