如果我有一个 1,000 x 1,000 的方阵,Lapack 是否可以计算该矩阵的特征向量和特征值?如果可以的话,需要多长时间?另外,对于 10,000 x 10,000 矩阵,甚至 1,000,000 x 1,000,000 矩阵又如何呢?
请注意,这些将是主要由 0 填充的稀疏矩阵(矩阵将是表示社交网络的图)。Lapack 中是否有处理稀疏矩阵的特殊程序?我看到了 Arpack 的建议。但这是否允许计算非常大的矩阵?
如果我有一个 1,000 x 1,000 的方阵,Lapack 是否可以计算该矩阵的特征向量和特征值?如果可以的话,需要多长时间?另外,对于 10,000 x 10,000 矩阵,甚至 1,000,000 x 1,000,000 矩阵又如何呢?
请注意,这些将是主要由 0 填充的稀疏矩阵(矩阵将是表示社交网络的图)。Lapack 中是否有处理稀疏矩阵的特殊程序?我看到了 Arpack 的建议。但这是否允许计算非常大的矩阵?
LAPACK 没有内置对稀疏矩阵的特殊支持,但 ARPACK 有。根据您计划在其上运行它的机器,这可能会排除使用 LAPACK,因为对于非常大的矩阵,您可能会耗尽内存。有关各种线性代数库的摘要, 请参见http://www.netlib.org/utk/people/JackDongarra/la-sw.html 。
如果没有您期望的矩阵的详细信息(对称矩阵将快很多倍),您计划在什么处理器上运行它,您有多少可用内存,则无法对这些计算需要多长时间进行有意义的估计,等等
根据您的其他问题,我建议您坚持使用 MATLAB。它具有稀疏矩阵支持,通常适用于线性代数。
Lapack 仅支持密集矩阵和带状矩阵(不支持一般稀疏矩阵)。因此,除非您的稀疏矩阵是带状的(根据您的描述,这听起来像是一个通用的稀疏矩阵,通常存储在压缩的行存储方案中),否则 lapack 不是您想要使用的。
对于大型稀疏矩阵,Arpack 将是一个不错的起点。