1

我将mpmath用于任意小数精度。我正在创建大型方阵(30 x 30 和 100 x 100)。对于我的代码,我正在使用 mpmath 的内置包 执行奇异值分解矩阵求逆。

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

有没有办法在 python 中加速这些线性代数问题?

有人在这里问了类似的问题,但有两个区别:

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

1 回答 1

0

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

于 2019-07-18T17:37:56.740 回答