【发布时间】:2012-09-30 10:02:22
【问题描述】:
我有一个五次函数(5 次多项式),我想用 C++ 解决它。 有没有我可以使用的实现或数学库来继续?
【问题讨论】:
-
能否详细说明数值方法的注释?
-
我不明白投反对票或关闭调查的原因。
标签: c++ polynomial-math
我有一个五次函数(5 次多项式),我想用 C++ 解决它。 有没有我可以使用的实现或数学库来继续?
【问题讨论】:
标签: c++ polynomial-math
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。
【讨论】:
我有一个五次函数(5 次多项式),我想用 C++ 解决它。
这里有一个问题,一个相当有名的问题。二次方程有一个简单的解。三次方程更难一些。分析解决它们的一种方法是通过卡尔达诺的方法。四次方程更难,但仍然可以解析求解。
这就是它结束的地方。 五次多项式方程(或更高)的根没有公式可以用多项式的系数来写,只能使用标准的代数运算。数学的一个完整分支,伽罗瓦理论,源于五次元组的通用解析解不存在的证明之一。
这意味着您将不得不求助于数字求根技术。
【讨论】: