Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
3.6.1
-
None
-
None
-
None
-
linux RH6
netbeans 8.2
java 1.8
Description
When using RRQRDecomposition on rank deficient matrix, results are wrong.
double[][] Xi = {
{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.