矩阵可能大到,最好的算法是什么,是否有一些易于编写程序的算法,是否有任何方便的软件包?
如何对大型稀疏对称矩阵进行对角化,以获得特征值和特征向量?
机器算法验证
算法
矩阵分解
2022-03-14 20:35:33
4个回答
在这篇 NIPS 论文的第一个表中有对分解算法的调查。
它列出了现代算法(带有已知实现的链接),包括Halko 等人的随机分解。,可以说是当今最先进的方法。
您要求提供方便的编程包,但没有说明您选择的平台或语言。假设它是:
不过,您的问题并不是特别大,所以我想任何现有的包(使用迭代 Lanczos 算法)都可以,特征分解已经存在了一段时间。
看看Hernández 等人的稀疏特征值问题软件调查。
我不太了解特征值或它们适用于什么,但 R 似乎为此目的有一个内置函数,名为eigen(). 在我的机器上计算 2500 * 2500 矩阵的特征值和特征向量大约需要 1 分钟。
> sampData <- runif(6250000, 0, 2)
> x <- matrix(sampData, ncol = 2500, byrow = TRUE)
> system.time(eigen(x))
user system elapsed
79.74 2.90 65.69
这个问题也出现在Stack Overflow 上。
其它你可能感兴趣的问题