文章目录
一、问题描述
已知一元四次方程 a x 4 + b x 3 + c x 2 + d x + e = 0 ( a ≠ 0 ) ax^4 + bx^3 + cx^2+dx+e = 0(a\neq0) ax4+bx3+cx2+dx+e=0(a=0),求方程的实数根。笔者用C语言实现了费拉里法求解一元四次方程高精度的实数根。一元四次方程实数根求解过程会调用一元二次方程和一元三次方程高精度实数根的求解函数,参见另外一篇博文:一元二次方程高精度实数根(C语言),一元三次方程高精度实数根(C语言)
二、算法步骤
将一元四次方程最高次项系数化为1,则:
x 4 + b x 3 + c x 2 + d x + e = 0 (1) x^4+bx^3+cx^2+dx+e=0 \tag 1 x4+bx3+cx2+dx+e=0(1)
移项得到:
x 4 + b x 3 = − c x 2 − d x − e (2) x^4+bx^3=-cx^2-dx-e \tag 2 x4+bx3=−cx2−dx−e(2)
式(2)两边同时加上 ( 1 2 b x ) 2 (\dfrac{1}{2}bx)^2 (21bx)2,可将式(2)左边配成完全平方式:
( x 2 + 1 2 b x ) 2 = ( 1 4 b 2 − c ) x 2 − d x − e (3) (x^2+\dfrac{1}{2}bx)^2=(\dfrac{1}{4}b^2-c)x^2-dx-e \tag 3 (x2+21bx)2=(41b2−c)x2−dx−e(3)
式(3)两边同时加上 ( x 2 + 1 2 b x ) y + 1 4 y 2 (x^2+\dfrac{1}{2}bx)y+\dfrac{1}{4}y^2 (x2+21bx)y+41y2,可得:
[ ( x 2 + 1 2 b x ) + 1 2 y ] 2 = ( 1 4 b 2 − c + y ) x 2 + ( 1 2 b y − d ) x + 1 4 y 2 − e (4) [(x^2+\dfrac{1}{2}bx) + \dfrac{1}{2}y]^2=(\dfrac{1}{4}b^2-c+y)x^2+(\dfrac{1}{2}by-d)x+ \dfrac{1}{4}y^2-e\tag 4 [(x2+21bx)+21y]2=(41b2−c+y)x2+(21by−d)x+41y2−e(4)
式(4)中的y是一个参数。当式(4)中的x为原方程的根时,不论y取什么值,式(4)都应该成立。特别地,如果所取得y值使得式(4)右边关于x的二次多项式也能变成一个完全平方式,则对式(4)两边同时开方可以得到次数较低的方程。
为了使式(4)右边关于x的二次多项式也能变成一个完全平方式,只需使它的判别式变成0,即:
( 1 2 b y − d ) 2 − 4 ( 1 4 b 2 − c + y ) ( 1 4 y 2 − e ) = 0 (5) (\dfrac{1}{2}by-d)^2-4(\dfrac{1}{4}b^2-c+y)(\dfrac{1}{4}y^2-e)=0 \tag 5 (21by−d)2−4(41b2−c+y)(41y2−e)=0(5)
化简得到:
y 3 − c y 2 + ( b d − 4 e ) y + ( 4 c − b 2 ) e − d 2 = 0 (6) y^3 -cy^2 + (bd - 4e)y + (4c - b^2)e - d^2=0 \tag 6 y3−cy2+(bd−4e)y+

介绍了一元四次方程的费拉里求解方法,通过算法步骤详细解析了如何将一元四次方程转化为一元三次方程和一元二次方程求解实数根的过程。
最低0.47元/天 解锁文章
5626

被折叠的 条评论
为什么被折叠?



