Java Jama 矩阵

标签 java matrix jama

我正在与 Jama Matrix 一起工作.我将它用于 LSI。它工作正常。但是,当我传递一个像 8000x8000 这样的大矩阵时,它会杀死我的整个系统。我只是调用 SVD,然后减小矩阵大小并相加。没有其他的 !

任何的想法?我怎么解决这个问题?

core2du

内存 = 10GB

Java 运行时设置

-Xmx5000M

我执行 Jama 矩阵代码时没有其他程序在运行

最佳答案

我也将 Jama 用于 SVD,并且在解决大矩阵时遇到了同样的问题。
为了减少内存溢出的情况,我将 SingularValueDecomposition.java 调整为压缩一个。调整是在矩阵 A 中它有很多 0(零)值,因此所有使用的矩阵(如 A、U、V、Work 等)的压缩只允许内存大于 0 的可用值。
在使用紧凑型 SVD 之前,您应该制作一个矩阵文件,例如
r/t c/t 值/n
r/t c/t 值/n
... '/t' 和 '/n' 分别表示制表符和换行符。

例子, (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) 并且矩阵大小为 2*4 (R*C) 然后你只需像这样制作文件
矩阵尺寸/t 2/t 4/n
0/吨 1/吨 0.5/n
0/t 3/t 0.2/n
1/t 0/t 1/n
1/吨 3/吨 0.3/n

如果您想使用它,请给我您的电子邮件地址(mg.hwang@gmail.com)。
我将提供更多详细信息以在电子邮件中使用它。

我检查结果是正确的。但是,我不确定它对计算机的效果如何。
无论如何,即使不多,它也能工作并显示出更好的效果。

关于Java Jama 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4834910/

相关文章:

java - LibGdx RayCast box2d 调试(屏幕上可见)

java - 实例变量变为 null

java - JAMA 矩阵性能

c# - 最长公共(public)子序列

c# - C# 中的高性能乘法/求值

java - 如何使用 jama 声明矩阵

java - EclipseLink MOXy 动态对象图中的 ALLOW_UNQUOTED_FIELD_NAMES JSON

java - 对于成对的对象来说,哪种包结构更具凝聚力?

c - 如何在C中的while循环中存储数组索引的值