代码之家  ›  专栏  ›  技术社区  ›  Xodarap

对角化大型矩阵的工具

  •  4
  • Xodarap  · 技术社区  · 14 年前

    我的矩阵大约是25k x 25k,但是非常稀疏-只有大约60k个值是非零的。Matlab的“eigs”函数内存不足,octave的“eig”和R的“eigen”也一样。有没有工具可以找到大型稀疏矩阵的分解?

    不知道这是否相关,但是A是邻接矩阵,所以它是对称的,并且是满秩的。

    5 回复  |  直到 14 年前
        1
  •  2
  •   Yin Zhu    14 年前

    你试过SVD吗, svds 在matlab中实现稀疏矩阵。

        2
  •  1
  •   Yorgos    14 年前

    你考虑过 following property : exp(A*t)=L^(-1){(sI-A)^(-1)} 其中L^(-1)是拉普拉斯逆变换?-前提是可以反转(sI-A)

        3
  •  1
  •   Marcus P S    14 年前

    如果您可以访问64位机器,并且使用64位支持编译的八度音阶,那么您可能可以绕过这个问题。

    另外,我不知道您在什么平台上运行所有这些,但是在基于UNIX的系统中,您可以使用 ulimit

    例如,您可以运行

    ulimit -u unlimited
    

    ulimit -s [stacksize]
    

    增加堆栈大小限制。

        4
  •  0
  •   vad    14 年前

    或者,如果你的矩阵是这样构造的:A=[B zeros;zeros C],那么你可以把B和C分别对角化,然后把它们放在一个矩阵中。我猜你也可以为eig做类似的事情。

        5
  •  0
  •   Marek    14 年前

    igraph package 和功能 arpack 哪个是接口 ARPACK library