commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marisa Thoma (JIRA)" <j...@apache.org>
Subject [jira] Created: (MATH-465) Incorrect matrix rank via SVD
Date Wed, 05 Jan 2011 17:34:46 GMT
Incorrect matrix rank via SVD
-----------------------------

                 Key: MATH-465
                 URL: https://issues.apache.org/jira/browse/MATH-465
             Project: Commons Math
          Issue Type: Bug
    Affects Versions: 2.1
         Environment: Windows XP Prof. Vs. 2002
            Reporter: Marisa Thoma


The getRank() function of SingularValueDecompositionImpl does not work properly. This problem
is probably related to the numerical stability problems mentioned in [MATH-327|https://issues.apache.org/jira/browse/MATH-327]
and [MATH-320|https://issues.apache.org/jira/browse/MATH-320].

Example call with the standard matrix from R (rank 2):

{code:title=TestSVDRank.java}
import org.apache.commons.math.linear.Array2DRowRealMatrix;
import org.apache.commons.math.linear.RealMatrix;
import org.apache.commons.math.linear.SingularValueDecomposition;
import org.apache.commons.math.linear.SingularValueDecompositionImpl;

public class TestSVDRank {
	public static void main(String[] args) {
		double[][] d = { { 1, 1, 1 }, { 0, 0, 0 }, { 1, 2, 3 } };
		RealMatrix m = new Array2DRowRealMatrix(d);
		SingularValueDecomposition svd = new SingularValueDecompositionImpl(m);
		int r = svd.getRank();
		System.out.println("Rank: "+r);
	}
}
{code} 

The rank is computed as 3. This problem also occurs for larger matrices. I discovered the
problem when trying to replace the corresponding JAMA method.

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