任意小数精度奇异值分解和矩阵求逆的加速

时间:2017-05-10 16:35:24

标签: python matrix linear-algebra arbitrary-precision mpmath

我正在使用mpmath来获得任意小数精度。我正在创建大型方形矩阵(30 x 30和100 x 100)。对于我的代码,我正在使用mpmath的内置包执行singular value decompositionmatrix inversion

我的问题是mpmath很慢,即使有gmpy后端也是如此。我需要精度高达50个小数点(如果解决方案很快,我更喜欢它缩放到更多的小数点)。

有没有解决方案来加速python中的这些线性代数问题?

有人提出类似的问题here,但有2个不同之处:

  1. 答案没有涉及奇异值分解
  2. 答案给出了估计逆的方法,但他们并没有试图表明接近真正的答案是更快的方法。我已经尝试过这篇文章中给出的解决方案,我发现它比mpmath的内部算法慢。

1 个答案:

答案 0 :(得分:0)

在这种情况下,方法是使用最快的算法将需要加速的代码重写为纯c /с++。例如,尝试直接在c ++上使用GPM库,而不使用python包装器。之后,使用pybind11将此代码连接到python代码。 pybind11的示例:https://github.com/pybind/python_example