Lecomte created MATH-1417:
-----------------------------

             Summary: weird result in RRQR decomposition.
                 Key: MATH-1417
                 URL: https://issues.apache.org/jira/browse/MATH-1417
             Project: Commons Math
          Issue Type: Bug
    Affects Versions: 3.6.1
         Environment: linux RH6
netbeans 8.2 
java 1.8
            Reporter: Lecomte


When using RRQRDecomposition on rank deficient matrix, results are wrong.

double[][] Xi = {
            {0, 0, 0, 0, 0, 0, 0, 0, 0},
            {0, 1, 0, 0, 0, 0, 0, 0, 0},
            {0, 0, 1, 0, 0, 0, 0, 0, 0},
            {0, 0, 1, 0, 0, 0, 0, 0, 0},
            {0, 0, 1, 0, 0, 0, 0, 0, 0},
            {0, 0, 0, 1, 0, 0, 0, 0, 0},
            {0, 0, 0, 0, 0, 0, 1, 0, 0},
            {0, 0, 0, 0, 0, 0, 0, 0, 0},};

With this matrix, i obtain: 

rank 6

R:
|1,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000|
|0,000 1,000 1,000 1,000 0,000 0,000 0,000 0,000|
|0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000|
|0,000 0,000 0,000 0,000 1,000 0,000 0,000 0,000|
|0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000|
|0,000 0,000 0,000 0,000 0,000 1,000 0,000 0,000|
|0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000|
|0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000|
|0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000|

Q:
|0,000 0,000 1,000 0,000 0,000 0,000 0,000 0,000 0,000|
|1,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000|
|0,000 1,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000|
|0,000 0,000 0,000 1,000 0,000 0,000 0,000 0,000 0,000|
|0,000 0,000 0,000 0,000 1,000 0,000 0,000 0,000 0,000|
|0,000 0,000 0,000 0,000 0,000 0,000 1,000 0,000 0,000|
|0,000 0,000 0,000 0,000 0,000 1,000 0,000 0,000 0,000|
|0,000 0,000 0,000 0,000 0,000 0,000 0,000 1,000 0,000|
|0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 1,000|

Where Scipy (lapack) or ejml gives me:
rank 4
Type = dense real , numRows = 9 , numCols = 8
-1,000   0,000   0,000   0,000   0,000   0,000   0,000   0,000  
 0,000  -1,000   0,000   0,000  -1,000   0,000  -1,000   0,000  
 0,000   0,000  -1,000   0,000   0,000   0,000   0,000   0,000  
 0,000   0,000   0,000  -1,000   0,000   0,000   0,000   0,000  
 0,000   0,000   0,000   0,000   0,000   0,000   0,000   0,000  
 0,000   0,000   0,000   0,000   0,000   0,000   0,000   0,000  
 0,000   0,000   0,000   0,000   0,000   0,000   0,000   0,000  
 0,000   0,000   0,000   0,000   0,000   0,000   0,000   0,000  
 0,000   0,000   0,000   0,000   0,000   0,000   0,000   0,000  

Type = dense real , numRows = 9 , numCols = 9
 0,000   0,000   0,000   0,000   0,000   0,000   1,000   0,000   0,000  
-1,000   0,000   0,000   0,000   0,000   0,000   0,000   0,000   0,000  
 0,000  -1,000   0,000   0,000   0,000   0,000   0,000   0,000   0,000  
 0,000   0,000  -1,000   0,000   0,000   0,000   0,000   0,000   0,000  
 0,000   0,000   0,000   0,000   1,000   0,000   0,000   0,000   0,000  
 0,000   0,000   0,000   0,000   0,000   1,000   0,000   0,000   0,000  
 0,000   0,000   0,000  -1,000   0,000   0,000   0,000   0,000   0,000  
 0,000   0,000   0,000   0,000   0,000   0,000   0,000   1,000   0,000  
 0,000   0,000   0,000   0,000   0,000   0,000   0,000   0,000   1,000  

That are the results i expect.



 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to