我正在用 python 编写一些代码,这些代码需要经常反转大方阵(100-200 行/列)。
我正在达到机器精度的极限,所以已经开始尝试使用mpmath
任意精度的矩阵求逆,但它非常慢,即使使用gmpy
.
以精度 30(十进制)反转大小为 20、30、60 的随机矩阵需要约 0.19、0.60 和 4.61 秒,而相同的操作mathematica
需要 0.0084、0.015 和 0.055 秒。
这是在 Arch linux 机器上使用python3
and mpmath 0.17
(不确定 gmpy 版本)。我不确定为什么 mpmath 慢得多,但是否有任何开源库可以接近数学为此管理的速度(即使快 1/2 也不错)?
我不需要任意精度——128 位可能就足够了。我也只是不明白 mpmath 怎么会这么慢。它必须使用非常不同的矩阵求逆算法。具体来说,我正在使用M**-1
.
有没有办法让它使用更快的算法或加速它。