是否有任何现有程序能够计算非常大(对称)稀疏矩阵的特征值的(近似)分布?
请注意,我不需要特征值本身,只需要它们的分布(找到所有特征值是一个更困难的问题),我主要是在寻找现有的软件,而不仅仅是我需要自己实现的算法的描述。我的矩阵是无向图(或密切相关的矩阵)的邻接矩阵。
我发现一些论文讨论了如何在实践中做到这一点,所以我希望某个地方存在一个可行的实现。
是否有任何现有程序能够计算非常大(对称)稀疏矩阵的特征值的(近似)分布?
请注意,我不需要特征值本身,只需要它们的分布(找到所有特征值是一个更困难的问题),我主要是在寻找现有的软件,而不仅仅是我需要自己实现的算法的描述。我的矩阵是无向图(或密切相关的矩阵)的邻接矩阵。
我发现一些论文讨论了如何在实践中做到这一点,所以我希望某个地方存在一个可行的实现。
在结构力学中,矩阵的特征值数在给定范围内通过“Sturm 序列检查”计算,即计算因式分解和并计算负枢轴数的差异。
如果你有相当大的垃圾箱,可以应用于你的问题,并且应该很容易实现。
(对 Lanczos 移位块算法的搜索应该会提供更多信息,因为这种技术通常在该上下文中用于检查丢失的特征值/特征向量对。)。
这个计数是准确的,而且对于大型,因此您对“估计”或近似计数的请求仍处于开放状态。请张贴任何发现。
编辑/更新
据作者所知,没有任何后处理技术不需要分解与 和/或当前可用于检查应用于问题 (1) 解决方案的特征求解器是否遗漏了任意感兴趣范围内的某些特征值.
这意味着要获得给定 bin 中特征值的精确计数,您必须使用经典的 Sturm 序列方法(另请参见Sylvester 惯性定律)。
如果不分析邻接矩阵的属性(维度、非零条目上的数字、重新排序后的填充、主要未成年人的条件数......),就无法给出在您的情况下实施此方法的一般建议。
尽管如此,我还是建议从一个简单的、不费脑筋的方法开始,看看你是否遇到了实现的故障(假设这个计算不是关键任务)。我建议使用 Tim Davis 出色的SuiteSparse。
这种方法只有在以下情况下才有效很小或分解时间相对于特征分解时间可以忽略不计:您必须进行一些实验才能找出答案。祝你好运。
我想可以从伪谱函数中推断出这种东西。参见 Marc Embree 的作品,例如: http: //www.caam.rice.edu/~embree/