一元四次方程的解法与编程

2020年1月1日22:49:26
评论
2261字阅读7分32秒

关于一元四次方程的解法,网上有一套求根公式,但是公式极其复杂难以理解和计算。

本文介绍的是另外一种解法:费拉里法。用费拉里法,可以很容易地借助编程语言实现解一元四次方程。

一元四次方程

\begin{align*} x^4+bx^3+cx^2+dx+e=0 \tag{1}\end{align*}

\begin{cases}\displaystyle p=bd-4e-\frac{c^2}{3}\\[2mm] \displaystyle q=e(4c-b^2)-d^2+\frac{c}{3}(bd-4e)-\frac{2}{27}c^3 \\[2mm] \displaystyle \Delta=\frac{q^2}{4}+\frac{p^3}{27}\end{cases}

编程提醒:当\(\Delta \leqslant 10^{-7} \),且\( \Delta \)为双精度实数时,由于精度不够,会造成计算错误。解决方法是对\( \Delta \)进行四舍五入,取7位小数

  • 当方程(1)有2对二重复数根时,方程无法用费拉里法求解

即方程

\begin{align*}& x^4+bx^3+cx^2+dx+e\\[2mm] =& (x^2+mx+n)^2\\[2mm] =& 0 \end{align*}

其中$ m^2-4n<0 $

比较系数得

\begin{cases} b=2m\\[2mm] c=m^2+2n\\[2mm] d=2mn\\[2mm] e=n^2 \end{cases}

在编程的过程中,需要讨论这种情况
例如方程

\begin{align*}& x^4+4x^3+18x^2+28x+49\\[2mm] =& (x^2+2x+7)^2\\[2mm] =& 0 \end{align*}

此方程有 2 对二重复根

\begin{cases} x_1=x_2=-1+\sqrt{6}i\\[2mm] x_3=x_4=-1-\sqrt{6}i \end{cases}

该方程无法用费拉里法求解

  • 方程(1)的系数$ b,c,d,e $,其中至少有2个为0时,无法用费拉里法求解

例如$ x^4+3x^2-4=0,x^4+2x=0 $。编程过程中,需要对缺项情况进行详细讨论

  • 方程(1)有4个相等实根时,方程无法用费拉里法求解
  • 当$ \Delta \geqslant 0 $时

\begin{cases}\displaystyle y=\sqrt[3]{-\frac{q}{2}+\sqrt{\Delta}}+\sqrt[3]{-\frac{q}{2}-\sqrt{\Delta}}\\[2mm] \displaystyle s_1=\frac{1}{2}\left(b+\sqrt{4y+b^2-4c}\right)\\[2mm] \displaystyle t_1=\frac{y}{2}+\frac{0.5by-d}{\sqrt{4y+b^2-4c}}\\[2mm]\displaystyle s_2=\frac{1}{2}\left(b-\sqrt{4y+b^2-4c}\right)\\[2mm]\displaystyle t_2=\frac{y}{2}-\frac{0.5by-d}{\sqrt{4y+b^2-4c}} \end{cases}

至此,已将方程(1)分解成了 2 个一元二次方程

\begin{cases} x^2+s_1x+t_1=0\\ x^2+s_2x+t_2=0 \end{cases}

一元四次方程(1)的四个根分别为

\begin{cases}\displaystyle x_{1,2}=\frac{-s_1 \pm \sqrt{s_1^2-4t_1}}{2}\\[2mm]\displaystyle x_{3,4}=\frac{-s_2 \pm \sqrt{s_2^2-4t_2}}{2}\end{cases}

  • 当$ \Delta<0 $时

\begin{cases}\displaystyle T=\frac{q}{2p}\sqrt{-\frac{27}{p}}\\[2mm]\displaystyle \theta=\arccos T\\[2mm] \displaystyle y=2\sqrt{-\frac{p}{3}}\cos\left(\frac{\theta}{3}\right)+\frac{c}{3}\\[2mm]\displaystyle s_1=\frac{1}{2}\left(b+\sqrt{4y+b^2-4c}\right)\\[2mm]\displaystyle t_1=\frac{y}{2}+\frac{0.5by-d}{\sqrt{4y+b^2-4c}}\\[2mm]\displaystyle s_2=\frac{1}{2}\left(b-\sqrt{4y+b^2-4c}\right)\\[2mm]\displaystyle t_2=\frac{y}{2}-\frac{0.5by-d}{\sqrt{4y+b^2-4c}} \end{cases}

一元四次方程(1)的四个根分别为

\begin{cases}\displaystyle x_{1,2}=\frac{-s_1 \pm \sqrt{s_1^2-4t_1}}{2}\\[2mm]\displaystyle x_{3,4}=\frac{-s_2 \pm \sqrt{s_2^2-4t_2}}{2}\end{cases}

继续阅读
avatar
  • 本文由 发表于 2020年1月1日22:49:26
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: