【问题标题】:How can I solve a fifth degree polynomial in C++ [closed]如何在 C++ 中求解五次多项式 [关闭]
【发布时间】:2012-09-30 10:02:22
【问题描述】:

我有一个五次函数(5 次多项式),我想用 C++ 解决它。 有没有我可以使用的实现或数学库来继续?

【问题讨论】:

标签: c++ polynomial-math


【解决方案1】:

Boost 有这个。看看这里:

http://www.boost.org/doc/libs/1_51_0/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html http://www.boost.org/doc/libs/1_51_0/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html

说明

这些函数无需求解某个函数 f(x) 的根 对于 f(x) 的导数。这里使用 TOMS 的函数 算法 748 是渐近已知的最有效的算法,并且有 已证明对于某些类别的平滑函数是最优的。

另外,有一个简单的二分例程可能很有用 在某些情况下独立,或者缩小范围 在调用更高级的之前,向下包含根的范围 算法。

不幸的是,这些库对初学者不友好,我还没有找到如何使用它们的示例。暂时按原样提供答案。现在,看看这里 http://programmingexamples.net/wiki/CPP/Boost/Math/Tools/TOMS748

您应该能够插入升压多项式而不是 t。

【讨论】:

    【解决方案2】:

    我有一个五次函数(5 次多项式),我想用 C++ 解决它。

    这里有一个问题,一个相当有名的问题。二次方程有一个简单的解。三次方程更难一些。分析解决它们的一种方法是通过卡尔达诺的方法。四次方程更难,但仍然可以解析求解。

    这就是它结束的地方。 五次多项式方程(或更高)的根没有公式可以用多项式的系数来写,只能使用标准的代数运算。数学的一个完整分支,伽罗瓦理论,源于五次元组的通用解析解不存在的证明之一。

    这意味着您将不得不求助于数字求根技术。

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      • 2021-12-17
      • 2015-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-20
      相关资源
      最近更新 更多