[ https://issues.apache.org/jira/browse/MATH320?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel&focusedCommentId=12776063#action_12776063
]
Luc Maisonobe commented on MATH320:

This is a real new bug, thanks for reporting it.
Before I look more precisely at it, could you do a quick check for me ?
If at the end of the SingularValueDecompositionImpl constructor, around line 118 in the java
source file you change from:
{noformat}
singularValues[i] = Math.sqrt(singularValues[i]);
{noformat}
to
{noformat}
singularValues[i] = Math.sqrt(Math.max(0, singularValues[i]));
{noformat}
does the problem still appear on singular values and does the solver work properly ?
> NaN singular value from SVD
> 
>
> Key: MATH320
> URL: https://issues.apache.org/jira/browse/MATH320
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.0
> Environment: Linux (Ubuntu 9.10) java version "1.6.0_16"
> Reporter: Dieter Vandenbussche
>
> The following jython code
> Start code
> from org.apache.commons.math.linear import *
>
> Alist = [[1.0, 2.0, 3.0],[2.0,3.0,4.0],[3.0,5.0,7.0]]
>
> A = Array2DRowRealMatrix(Alist)
>
> decomp = SingularValueDecompositionImpl(A)
>
> print decomp.getSingularValues()
> End code
> prints
> array('d', [11.218599757513008, 0.3781791648535976, nan])
> The last singular value should be something very close to 0 since the matrix
> is rank deficient. When i use the result from getSolver() to solve a system, i end
> up with a bunch of NaNs in the solution. I assumed i would get back a least squares
solution.
> Does this SVD implementation require that the matrix be full rank? If so, then i would
expect
> an exception to be thrown from the constructor or one of the methods.

This message is automatically generated by JIRA.

You can reply to this email to add a comment to the issue online.
