【问题标题】:How to compute null of large sparse matrix in Matlab?如何在 Matlab 中计算大型稀疏矩阵的空值?
【发布时间】:2015-11-06 02:21:51
【问题描述】:

我在 Matlab 中有一个矩阵问题。
我有一个 100 万 x 100 万的稀疏矩阵,我一直在使用 null。通常,问题是我的内存不足。我试过svds(用于稀疏矩阵的svd),但我的问题是我的内存也用完了。 Matlab 中 null() 函数的大型稀疏矩阵是否有可能解决?

【问题讨论】:

  • 一个可能更好的问题是如何在 Matlab 中处理内存,以便我们可以添加物理 RAM 或虚拟内存?

标签: matlab null sparse-matrix


【解决方案1】:

一般来说,即使输入矩阵是稀疏的,矩阵的零空间或奇异值分解的酉矩阵(UV)也不是稀疏的。因此,如果您尝试使用 1M×1M 矩阵,即使它是稀疏的,您的操作输出也不是,因此您会耗尽内存。

你能做什么?
如果您的输入矩阵具有某种结构(除了其稀疏性),您可能会找到一些代数方法来利用这种结构。
您应该考虑的另一条路径是,为什么需要计算矩阵的零空间?你能在不明确估计零空间的情况下实现相同的目标吗?

【讨论】:

  • 添加一个可以帮助您的结构示例:拥有一个块对角矩阵将允许您将问题拆分为几个较小的问题,从而允许您计算空空间跨度>
  • 好!并且稀疏矩阵中每个元素的大小大约是 double 大小的 3 倍。
  • 如何创建块对角线?
猜你喜欢
  • 1970-01-01
  • 2015-09-14
  • 2013-08-31
  • 2012-12-17
  • 2021-05-09
  • 2014-04-18
  • 2022-10-22
  • 1970-01-01
  • 2023-02-04
相关资源
最近更新 更多