3

让 P(x) 表示所讨论的多项式。P 的最小不动点 (LFP) 是 x 的最小值,使得 x=P(x)。多项式具有实系数。一般来说,不能保证 LFP 会存在,尽管如果度数为奇数且 ≥ 3,则可以保证存在。如果度数为 3,我知道一个有效的解决方案。x=P(x) 因此 0=P( x)-x。有一个封闭形式的三次公式,求解 x 有点简单,可以硬编码。2 级和 1 级同样容易。这是我遇到麻烦的更复杂的情况,因为我似乎无法为任意程度提出一个好的算法。

编辑:

我只考虑真正的不动点并取其中最少的,不一定是绝对值最小的不动点。

4

3 回答 3

6

只需f(x) = P(x) - x使用您最喜欢的数值方法求解即可。例如,您可以迭代

x_{n + 1} = x_n - P(x_n) / (P'(x_n) - 1).

一般来说,您不会找到封闭式公式,因为五次和更高多项式没有任何封闭式公式。因此,对于五次和更高的度数,您必须使用某种数值方法。

于 2011-09-06T17:47:11.893 回答
5

由于您想要最小的固定点,因此如果不找到 P(x) - x 的所有实根并选择最小的,就无法逃脱。

找到多项式的所有根是一个棘手的问题。如果你有一个黑盒例程,那么一定要使用它。否则,请考虑以下技巧:

但这要求您可以访问查找特征值的例程(这是另一个棘手的问题,但有很多好的库)。

否则,您可以实现Jenkins-Traub算法,这是一段非常重要的代码。

我真的不建议找到零(例如牛顿法)并放气直到达到一级:如果做得不好,它会非常不稳定,并且会失去很多准确性(而且很难解决多个根)。正确的做法实际上是上面提到的 Jenkins-Traub 算法。

于 2011-09-06T18:24:03.110 回答
0

这个问题试图找到多项式的“最小”(这里我不确定您的意思是幅度还是实际上是最小的,这可能是最负的)根。大次多项式没有封闭形式的解,但有无数种求根的数值方法。

通常情况下,维基百科是开始搜索的好地方。

如果你想找到最小的根,那么你可以使用符号规则来确定它存在的区间,然后使用一些数值方法在那个区间中找到根。

于 2011-09-06T17:51:37.180 回答