[
https://issues.apache.org/jira/browse/MATH-327?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12915656#action_12915656
]
Luc Maisonobe commented on MATH-327:
------------------------------------
Checking again this issue with current version in branch 2.X on subversion
repository.
Using the original low accuracy values and making sure we simply have two
different rows, I get the two largest singular values 30.157767108847384 and
0.2709545346259456, a large set of 0 values and a last non null values at
3.547702387229884E-7.
Reconstructing the matrix from its decomposition and subtracting the initial
matrix gives a norm of 7.9e-7.
I suspect there are numerical problems here, enhanced by the large number of
identical rows and initial low accuracy of the numbers in the issue report.
The current implementation of SVD uses directly A.At and At.A (where t is the
transpose) and eigen decomposition. I think in this case lots of precision is
lost. I would be happy with singular values and reconstruction errors at about
1.0e-10 or something like that, but a result larger than 1.0e-7 seems a real
problem to me.
> Maximal number of iterations (540) exceeded
> --------------------------------------------
>
> Key: MATH-327
> URL: https://issues.apache.org/jira/browse/MATH-327
> Project: Commons Math
> Issue Type: Bug
> Environment: Windows 7 (32-bit) JDK 1.6_16
> Reporter: Mansoor Ahmed Khan
> Priority: Critical
> Fix For: 2.2
>
>
> I have a matrix of size 49x19 and when I apply SVD on this matrix it raises
> the following exception. The problem which I am facing is that SVD works for
> some matrix and doesn't work for others. I have no clue what is the possible
> reason.
> Exception::
> CorrespondenceAnalysis:
> org.apache.commons.math.MaxIterationsExceededException: Maximal number of
> iterations (540) exceeded
> [org.apache.commons.math.linear.EigenDecompositionImpl.processGeneralBlock(EigenDecompositionImpl.java:881),
>
> org.apache.commons.math.linear.EigenDecompositionImpl.findEigenvalues(EigenDecompositionImpl.java:651),
>
> org.apache.commons.math.linear.EigenDecompositionImpl.decompose(EigenDecompositionImpl.java:243),
>
> org.apache.commons.math.linear.EigenDecompositionImpl.<init>(EigenDecompositionImpl.java:202),
>
> org.apache.commons.math.linear.SingularValueDecompositionImpl.<init>(SingularValueDecompositionImpl.java:114),
> RealMatrix m = [[1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096, 1.00000000,
> 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096,
> 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143,
> 0.95238096, 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000, 1.00000000,
> 0.99107143, 0.95238096, 1.00000000, 1.00000000, 0.96428573],[1.00000000,
> 1.00000000, 0.94999999, 0.95833331, 1.00000000, 1.00000000, 0.99107143,
> 0.94583333, 1.00000000, 0.95000000, 0.98333333, 0.92106681, 0.97368419,
> 1.00000000, 0.95357142, 0.95238096, 1.00000000, 0.93333334,
> 0.96428573],[1.00000000, 1.00000000, 0.94999999, 0.95833331, 1.00000000,
> 1.00000000, 0.99107143, 0.94583333, 1.00000000, 0.95000000, 0.98333333,
> 0.92106681, 0.97368419, 1.00000000, 0.95357142, 0.95238096, 1.00000000,
> 0.93333334, 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096,
> 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143,
> 0.95238096, 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000, 1.00000000,
> 0.99107143, 0.95238096, 1.00000000, 1.00000000, 0.96428573],[1.00000000,
> 1.00000000, 0.94999999, 0.95833331, 1.00000000, 1.00000000, 0.99107143,
> 0.94583333, 1.00000000, 0.95000000, 0.98333333, 0.92106681, 0.97368419,
> 1.00000000, 0.95357142, 0.95238096, 1.00000000, 0.93333334,
> 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096, 1.00000000,
> 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096,
> 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000, 0.94999999,
> 0.95833331, 1.00000000, 1.00000000, 0.99107143, 0.94583333, 1.00000000,
> 0.95000000, 0.98333333, 0.92106681, 0.97368419, 1.00000000, 0.95357142,
> 0.95238096, 1.00000000, 0.93333334, 0.96428573],[1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000, 1.00000000,
> 0.99107143, 0.95238096, 1.00000000, 1.00000000, 0.96428573],[1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000,
> 1.00000000, 0.99107143, 0.95238096, 1.00000000, 1.00000000,
> 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096, 1.00000000,
> 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096,
> 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143,
> 0.95238096, 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000,
> 0.94999999, 0.95833331, 1.00000000, 1.00000000, 0.99107143, 0.94583333,
> 1.00000000, 0.95000000, 0.98333333, 0.92106681, 0.97368419, 1.00000000,
> 0.95357142, 0.95238096, 1.00000000, 0.93333334, 0.96428573],[1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000,
> 1.00000000, 0.99107143, 0.95238096, 1.00000000, 1.00000000,
> 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096, 1.00000000,
> 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096,
> 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143,
> 0.95238096, 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000, 1.00000000,
> 0.99107143, 0.95238096, 1.00000000, 1.00000000, 0.96428573],[1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000,
> 1.00000000, 0.99107143, 0.95238096, 1.00000000, 1.00000000,
> 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096, 1.00000000,
> 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096,
> 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000, 0.94999999,
> 0.95833331, 1.00000000, 1.00000000, 0.99107143, 0.94583333, 1.00000000,
> 0.95000000, 0.98333333, 0.92106681, 0.97368419, 1.00000000, 0.95357142,
> 0.95238096, 1.00000000, 0.93333334, 0.96428573],[1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000, 1.00000000,
> 0.99107143, 0.95238096, 1.00000000, 1.00000000, 0.96428573],[1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000,
> 1.00000000, 0.99107143, 0.95238096, 1.00000000, 1.00000000,
> 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096, 1.00000000,
> 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096,
> 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000, 0.94999999,
> 0.95833331, 1.00000000, 1.00000000, 0.99107143, 0.94583333, 1.00000000,
> 0.95000000, 0.98333333, 0.92106681, 0.97368419, 1.00000000, 0.95357142,
> 0.95238096, 1.00000000, 0.93333334, 0.96428573],[1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000, 1.00000000,
> 0.99107143, 0.95238096, 1.00000000, 1.00000000, 0.96428573],[1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000,
> 1.00000000, 0.99107143, 0.95238096, 1.00000000, 1.00000000,
> 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096, 1.00000000,
> 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096,
> 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143,
> 0.95238096, 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000, 1.00000000,
> 0.99107143, 0.95238096, 1.00000000, 1.00000000, 0.96428573],[1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000,
> 1.00000000, 0.99107143, 0.95238096, 1.00000000, 1.00000000,
> 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096, 1.00000000,
> 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096,
> 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143,
> 0.95238096, 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143, 1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000, 1.00000000,
> 0.99107143, 0.95238096, 1.00000000, 1.00000000, 0.96428573],[1.00000000,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.99107143,
> 1.00000000, 1.00000000, 1.00000000, 1.00000000, 0.94450431, 1.00000000,
> 1.00000000, 0.99107143, 0.95238096, 1.00000000, 1.00000000,
> 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096, 1.00000000,
> 1.00000000, 0.96428573],[1.00000000, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 1.00000000, 0.99107143, 1.00000000, 1.00000000, 1.00000000,
> 1.00000000, 0.94450431, 1.00000000, 1.00000000, 0.99107143, 0.95238096,
> 1.00000000, 1.00000000, 0.96428573],[1.00000000, 1.00000000, 0.94999999,
> 0.95833331, 1.00000000, 1.00000000, 0.99107143, 0.94583333, 1.00000000,
> 0.95000000, 0.98333333, 0.92106681, 0.97368419, 1.00000000, 0.95357142,
> 0.95238096, 1.00000000, 0.93333334, 0.96428573],[1.00000000, 1.00000000,
> 0.94999999, 0.95833331, 1.00000000, 1.00000000, 0.99107143, 0.94583333,
> 1.00000000, 0.95000000, 0.98333333, 0.92106681, 0.97368419, 1.00000000,
> 0.95357142, 0.95238096, 1.00000000, 0.93333334, 0.96428573]]
> RealMatrix rcp = MatrixUtils.createRealMatrix(CP);
> SingularValueDecomposition svd = new SingularValueDecompositionImpl(rcp);
>
> RealMatrix U = svd.getU();
> RealMatrix S = svd.getS();
> RealMatrix Vt = svd.getVT();
> double[] singularValues = svd.getSingularValues();
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.