我不知道该选择哪个库(适用于windows):LAPACK++、Armadillo、IT++、Eigen,或者其他库?
我所需要做的就是检查一个大的(大约10,000*10,000)矩阵是否可对角化,如果是的话,得到对角线和可逆矩阵,使得D=(P^(-1))*A*P。这必须尽快完成。我不知道该使用哪个库。
此外,我很高兴了解这些库的优缺点。
发布于 2013-12-02 07:25:13
这可能是一个相当模糊的答案,因为我不知道你面临的确切问题是什么,但通常情况下,你实际上并不需要所有的信息,即你只关心具有最多能量的矩阵的特征值;至于其余的-如果你有0.001的特征值(可对角化的矩阵)或0.000 (不可对角化的矩阵),这真的很重要吗?对于许多现实世界(甚至是理论上)的应用程序,答案是“不是真的”。
因此,我的建议是,你可以通过放弃你正在寻找的信息的准确性或粒度来获得速度。
发布于 2013-12-02 03:19:52
你可能会对此持保留态度,但here是由Eigen的开发人员发布的一些基准测试。除了Eigen之外,我从未使用过任何其他线性代数库,但您的需求可能与我的不同。
发布于 2013-10-26 12:53:30
就寻找行列式而言,有许多不同的实现可以使用。一种是使用高斯消元法来创建上/下三角矩阵-这是有益的,因为您只需在对角线上相乘即可得到行列式。如果任何行或任何列最终归零,则行列式将为0,并且矩阵将不会有逆矩阵。您可以实际使用此方法,并使用单位矩阵扩充矩阵,然后执行完整的高斯-乔丹消元法,并将原始矩阵转换为单位矩阵,如http://www.mathportal.org/linear-algebra/matrices/gauss-jordan.php所示。
https://stackoverflow.com/questions/19599284
复制相似问题