计算矩阵的特征值多少钱?
最佳算法的复杂性是什么?
如果我有1000 x 1000的矩阵,实际需要多长时间?我认为矩阵稀疏会有所帮助吗?
在任何情况下特征值计算都不会终止吗?
在R
中,我可以像下面的玩具示例中那样计算特征值:
m<-matrix( c(13,2, 5,4), ncol=2, nrow=2 )
eigen(m, only.values=1)
$values
[1] 14 3
有谁知道它使用什么算法?
是否有其他(开放源代码)软件包可以计算特征值?
最佳答案
特征值计算的大多数算法都缩放到big-Oh(n ^ 3),其中n是(对称和平方)矩阵的行/列维。
要了解迄今为止最佳算法的时间复杂度,您必须引用《科学计算/数值方法》中的最新研究论文。
但是,即使您假设情况更糟,对于1000x1000矩阵,您仍然至少需要进行1000 ^ 3次操作。
R默认情况下使用LAPACK例程(DSYEVR,DGEEV,ZHEEV和ZGEEV)实现。但是,您可以指定EISPACK = TRUE作为参数来使用EISPACK的RS,RG,CH和CG例程。
用于特征值计算的最流行,最优秀的开源程序包是LAPACK和EISPACK。
关于r - 计算矩阵的特征值多少钱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/713878/