我目前正在处理一个问题,我必须定期检查大量 (1000+) 8x8 方阵以查看它们是否满秩。
我实际上对排名不感兴趣,只关心它是否是最大值。找出最有效的算法是什么?
--编辑-- 有关矩阵的更多信息:不幸的是,它们是任意的;既不对称也不稀疏。不仅如此,还有一些系数是双曲线函数的评估值,因此通常是非常大的数。问题的符号版本已经得到处理,尽量简化行和列(并尝试用 tanh 替换尽可能多的 sinh 和 cosh。)
最佳答案
使用Gaussian elimination将矩阵转换为三角矩阵。如果在此过程中任何对角线元素变为0,则矩阵的秩较小。
因为你有这么多独立的矩阵,你可以很容易地进行并行计算(简单 = 线程之间的最小同步)。
关于arrays - 检查方阵是否满秩的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56072080/