【发布时间】:2012-10-11 09:42:17
【问题描述】:
我正在寻找一个在不牺牲数值稳定性的情况下对大型稀疏矩阵执行矩阵运算的库。矩阵将是 1000+ x 1000+,矩阵的值将在 0 到 1000 之间。我将执行索引演算算法(en.wikipedia.org/wiki/Index_calculus_algorithm),因此我将生成(稀疏)行向量矩阵串行。在我开发每一行时,我需要测试线性独立性。一旦我用所需数量的线性独立向量填充我的矩阵,我就需要将矩阵转换为简化的行梯形。
现在的问题是我的实现使用高斯消元法来确定线性独立性(一旦找到我的所有行向量,确保行梯形)。然而,考虑到矩阵的密度和大小,这意味着每个新行中的条目随着时间的推移呈指数增长,因为必须找到前导条目的 lcm 才能执行取消。找到矩阵的简化形式会进一步加剧这个问题。
所以我的问题是,是否有一种算法,或者更好的实现,可以测试线性独立性并解决减少的行梯形,同时保持条目尽可能小?对线性独立性的有效测试尤为重要,因为在索引演算算法中它执行得最多。
提前致谢!
【问题讨论】:
-
您使用什么语言?
-
我猜你把cryptography放在那里是因为线性独立性测试可能与密码分析有关?
-
@owlstead:不,这个问题与密码学无关。
-
你不会找到比 O3(n) 更好的算法,所以你必须做大约 10^9 次数学运算。你需要一台超级计算机来完成这项任务。
-
或者您可以以某种方式优化内存使用情况,以普遍使用处理器的缓存。
标签: algorithm matrix linear-algebra numerical-stability