【发布时间】:2013-07-15 11:50:19
【问题描述】:
我正在编写一些 Java 软件,它需要计算正定对称稀疏矩阵的特征值和特征向量。我不需要所有的特征值,但我最感兴趣的是小的。问题是:
1) 出于测试目的,我的代码需要在笔记本电脑上运行(四核,4 GB RAM)
2) 测试数据涉及大矩阵 - 一般超过 10000 x 10000
这两个限制意味着大多数常用的 Java 矩阵包都不足以满足我当前的需求——我什至无法在内存中存储密集的 10000 x 10000 矩阵,更不用说用它们进行计算了。
所以我的问题是:人们在进行矩阵计算时如何解决内存限制?我的矩阵通常非常稀疏 - 通常低于 5% 的条目是非零的。有没有利用这一点的算法?我能否以某种方式将矩阵存储在我的硬盘驱动器上,并且一次只加载它的一部分以减少我的 RAM 上的压力?
【问题讨论】:
-
这里有一些关于如何有效存储稀疏矩阵的好信息,以及一些稀疏矩阵的特征值算法www-users.cs.umn.edu/~saad/eig_book_2ndEd.pdf
标签: java sparse-matrix eigenvalue