我们一直在使用 GSL 来求解多项式。然而,我们希望使用任意精度来求解多项式。我研究了 GMP 和 Boost 多精度库,但是,我找不到任何使用浮点系数求解多项式的例程。
是否存在任何免费且开源的库,用于求解任意精度或非常高精度(小数点后>200位)的多项式?
是否可以利用GSL多项式求解器例程将数据类型更改为GMP任意精度?
使用一种标准算法和 GMP 任意精度数据类型编写多项式求解器是否更容易?
有不明白的地方欢迎评论。
如果您知道一些求解多项式方程的算法(您会在许多教科书中找到这些算法),您可以对其进行调整和编码以使用 GMP。
由于 GMP 有一个 C++ 类接口,具有通常的外观
operator +
...等等,您可以复制并粘贴一些现有的 C 代码,然后将其适应 GMP。
可以观察到以下情况:
/dev/random
播种。这会导致求解器在后续运行中速度缓慢的问题,因为在未来运行开始之前生成的 entropy 不够。这可以通过用标准伪随机生成器替换它来绕过。Boost C++ 库提供使用 GMP 和 MPFR 的包装器,使用起来可能非常方便。