我有一个 Python 程序,它接受系数只能为 -1、0 和 1 的矩阵。我需要计算这些矩阵的零空间。这些矩阵可能非常庞大(数百万个条目),并且性能至关重要。
Scipy's null_space
具有可接受的性能,但问题是它将零空间作为正交矩阵返回。我希望生成的矩阵具有整数系数。
Sympy's nullspace
返回我想要的矩阵,但是因为它是纯Python(也可能是因为它使用高斯消除而不是更快的算法),所以性能非常差。
还有什么我可以尝试的吗?如果解决方案可以轻松并行化,那就太好了。
最佳答案
您可以尝试 QR 分解。 Scipy 使用 SVD 来处理零空间。原则上,QR 速度更快。
编辑:对 mathoverflow 的简短搜索揭示了这个 https://mathoverflow.net/questions/61861/fast-algorithms-for-computing-nullspace-of-a-positive-semidefinite-matrix-over-z
关于python - Python中的快速整数矩阵零空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54844121/