I also use the Jama for SVD and have the same problem in solving big matrix.
In order to reduce memory overflow cases, I have tuned SingularValueDecomposition.java to compact one. The tuning is that in the matrix A it has so many 0 (zero) value so the compact for all of matrices used such as A, U, V, Work, etc only allows memory for available value which is more than 0.
Before you use the compact SVD, you should make A matrix file like
r /t c /t value /n
r /t c /t value /n
... /t and /n means tab and new line respectively.
examples, (0, 0, 0), (0, 1, 0.5), (0, 2, 0), (0, 3, 0.2), (1, 0, 1), (1, 1, 0), (1, 2, 0), (1, 3, 0.3) and the matrix size is 2*4 (R*C) then you just make file like
MATRIXSIZE /t 2 /t 4 /n
0 /t 1 /t 0.5 /n
0 /t 3 /t 0.2 /n
1 /t 0 /t 1 /n
1 /t 3 /t 0.3 /n
If you would like to use it, please give me your email address (mg.hwang@gmail.com).
I will give more details to use it on email.
I checked the result was right. However, I am not sure how much effective it is for the computer.
Anyway, it works and shows better even if not much.