我正在使用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和mpmath 0.17(不确定gmpy版本)。我不确定mpmath为什么如此慢,但是否有任何开源库可以接近mathematica为此管理的速度(即使1/2的速度也很好)?
我不需要任意精度——128位可能已经足够了。我也不明白mpmath为什么会慢那么多。它一定是使用非常不同的矩阵反演算法。具体来说,我正在使用M ** -1。
有没有办法让它使用更快的算法或加速它?
我已经达到了机器精度的极限,因此开始尝试使用mpmath进行任意精度矩阵反演,但即使使用gmpy,速度也非常慢。
在30位(十进制)精度下反演大小为20、30、60的随机矩阵需要约0.19、0.60和4.61秒,而在mathematica中进行相同的操作只需要0.0084、0.015和0.055秒。
这是在一个arch linux机器上使用python3和mpmath 0.17(不确定gmpy版本)。我不确定mpmath为什么如此慢,但是否有任何开源库可以接近mathematica为此管理的速度(即使1/2的速度也很好)?
我不需要任意精度——128位可能已经足够了。我也不明白mpmath为什么会慢那么多。它一定是使用非常不同的矩阵反演算法。具体来说,我正在使用M ** -1。
有没有办法让它使用更快的算法或加速它?