找到四次方程的正实解的专门算法?

con*_*use 9 algorithm math microcontroller

我正在寻找一种专门的算法来找到具有实系数的四次方程的正实解(也称为4阶的二次方程或多项式方程).他们有以下形式:

a 4 x 4 + a 3 x 3 + a 2 x 2 + a 1 x + a 0 = 0

一个1,一个2,......是实数.

它应该在微控制器上运行,这需要进行大量的计算.因此,性能是一个问题.这就是为什么我正在寻找一种专门用于正解的算法.如果可能的话,我希望它能够计算出确切的解决方案.

我知道有一种通用的方法来计算四次方程的解,但它涉及计算方面.

有人能指出我正确的方向吗?

编辑:

从答案来看:有些人似乎误解了我(虽然我很清楚).我知道解决四次方程的标准方法.他们不是为我做的 - 他们既不适合记忆,也不适合他们.我需要的是一种高精度的高效算法,只能找到具有实系数的四次方程的真实解(如果有帮助).我不确定是否有这样的算法,但我想你们可能都知道.PS:downvotes不是来自我.

Mik*_*ola 5

这是使用复杂算法更容易找到所有根的情况之一,而不是仅仅找到正实根.因为听起来你需要一次找到多个根,我建议使用Durand-Kerner方法,它基本上是Weierstrass方法的改进:

http://en.wikipedia.org/wiki/Durand%E2%80%93Kerner_method

Weierstrass的方法又是牛顿方法的一种改进,它可以并行地解决多项式的所有根(并且它具有很大的优点,即它很容易编码).它通常以大约二次速率收敛,但对于多个根只是线性收敛.对于大多数四次多项式,只需几次迭代就可以确定根源.如果您需要更通用的解决方案,那么您应该使用Jenkins-Traub:

http://en.wikipedia.org/wiki/Jenkins%E2%80%93Traub_method

对于更高次多项式,这更快,并且基本上通过将问题转换为找到伴随矩阵的特征值来工作:

http://en.wikipedia.org/wiki/Companion_matrix

编辑:作为第二个建议,您也可以尝试在伴随矩阵上使用幂方法.由于你的方程只有非负系数,你可能会发现将Perron-Frobenius定理应用于伴随矩阵是有用的.最小化,这证明至少存在一个非负根:

http://en.wikipedia.org/wiki/Perron%E2%80%93Frobenius_theorem