当前位置:文档之家› 一元四次方程求根公式(精度高)

一元四次方程求根公式(精度高)

目录前言一·一元三次方程求根公式二·笛卡尔待定系数法结合一元三次方程韦达定理 三·费拉里配方法 四·误差计算方法 五·两个求根公式精度对比 六·计算器使用注意事项附录一·一元四次方程有一三重根时的另一种求根公式 附录二·一元四次方程有一对重根时的另一种求根公式 附录三·43x x 取第一种算法的证明过程 附录四·费拉里配方法的详细计算过程前言该文档是在word2003编辑的,如果用更高版本的word 浏览或编辑,某些数学公式可能无法正常显示。

一元四次方程有两种解法,一种是笛卡尔待定系数法,一种是费拉里配方法。

两种解法都需要求解一元三次方程。

因此先介绍一元三次方程的解法。

在求根公式计算过程中,经常会发生相近数相减,因此精度会随之下降,这里给出两个数发生相近数相减的判定条件:将两个数写成a+b 的形式,在判断是否发生相近数相减前,先计算两个中间变量b a i +,b a d +:1·0≥ab0=+b a i ,b a d +=1 2·0<ab⎩⎨⎧≠+-+=+-=+0))),(int(lg(max int(lg 015b a b a b a b a i b a b a b a d b a ++=+计算出b a i +,b a d +后,再判断a+b 是否发生相近数相减。

判定标准如下:1·0=+b a i 或者1-=+b a i 并且31≥+b a d ,a+b 不发生相近数相减。

2·1-<+b a i 或者1-=+b a i 并且31<+b a d ,a+b 发生相近数相减。

下面推导一元三次方程和一元四次方程的求根公式。

一·一元三次方程求根公式一·一 求根公式一元三次方程)0,0,,,(023≠≠∈=+++d a R d c b a d cx bx ax ,求根公式由塔塔利亚首次提出,由卡尔丹诺于1545年在《重要的艺术》上第一次发表。

一元三次方程)0,,,(023≠∈=+++a R d c b a d cx bx ax ,,设23b ac p -=,d a abc b q 232792+-=,324p q +=∆,则求根公式为1·Δ=0⑴·p=q=0abx 33,2,1-=⑵·p ≠0,q ≠0ap q b x a p q b x 3)(sgn 3)(sgn 23,21-+-=---=,,2·Δ<0设⎪⎪⎭⎫ ⎝⎛--=32arccosp q θa b p x 33cos 21-⎪⎭⎫ ⎝⎛-=θ,ab p x 3323cos 22-⎪⎪⎭⎫⎝⎛⎪⎭⎫ ⎝⎛+-=πθ,ab p x 3343cos 23-⎪⎪⎭⎫ ⎝⎛⎪⎭⎫ ⎝⎛+-=πθ3·Δ>0aq q b x 322331∆--+∆+-+-=,a i imy a b rey x 333.2*±-= 其中22233∆---∆+--=q q rey ,222333⎪⎪⎭⎫ ⎝⎛∆---∆+-=q q im y 求根公式中含有相近数相减,需要改进。

下面给出详细的推导和改进过程。

一·二 推导及改进一元三次方程)0,0,,,(023≠≠∈=+++d a R d c b a d cx bx ax ,,把aby x 3-=代入,整理得0)2792()3(32323=+-+-+d a abc b y b ac y 。

令23b ac p -=,d a abc b q 232792+-=,方程可化为033=++q py y ,再令n m y +=,则3333333)(3)(n mny m n n m mn m n m y ++=+++=+=,移项整理得0)(3333=+--n m mny y 。

对比033=++q py y ,得⎩⎨⎧=+=②q n m p m n -①-33 ① 式两边立方,可得③333p n m -=由①、③可得33n m 、为方程032=-+p qu u 的两根。

设它的判别式为Δ,则324p q +=∆。

实际计算中,p 、q 、Δ采用超长小数算法。

现在根据判别式符号来判断三次方程033=++q py y 根的情况。

一·Δ>0方程032=-+p qu u 有两个不等实根231∆+-==q m u ,232∆--==q n u在复数范围内分别得到21u u 、的三个立方根m q m =∆+-=312,m q m ωω=∆+-⨯=322,m q m ϖϖ=∆+-⨯=332n q n =∆--=312,n q n ωω=∆--⨯=322,n q n ϖϖ=∆--⨯=332 其中231i *+-=ω,231i*--=ϖ。

这样方程组共有九组解,但显然有六组增根。

原因: ∵p mn -=,并且p 是实数, ∴要求mn 也是实数。

而333p n m -=,则只要求33n m 是实数就行了,mn 可以是虚数,即333313322312331321)()()()()()(n m n m n m n m n m n m ======33333333)()()()()()(n m n m mn n m mn n m n m ======ϖϖϖωωωϖω,于是产生增根。

经过排查,只有)()()(233211n m n m n m 、、、、、这三组解适合方程组,把它们代入n m y +=,得到方程033=++q py y 的三个根为33122∆--+∆+-=q q y ,i imy rey y *±=3,2 22233∆---∆+--=q q rey ,222333⎪⎪⎭⎫ ⎝⎛∆---∆+-=q q im y 求根公式中含有两种相近数相减,一是q 和∆之间,相近数相减的类型是()b a a b a a >>>+-,02;二是32∆+-q 和32∆--q 之间,相近数相减的类型是33b a b a -±+(同号取减号,异号取加号)。

这两种相近数相减可以改进。

改进方法分别是: b a a +-2=()()()()ba ab ba a ba ab a a ++=++++*+-2222()()()()()()3333333333b a b a b a b a b a b a b a b a -+-+++--+=--+()()23322232ba b a b a b-+-++=(同号)()()()()()()233323333333b a b a b a b a b a b a b a b a -+-+-+-++=-++()()23322232ba b a b a a-+--+=(异号)这样就得到033=++q py y 精确的一个实根和一对共轭虚根。

∴三次方程023=+++d cx bx ax 的三个根为ab y x 311-=,a iimy a b rey x 333.2*±-=。

实际计算中,方程023=+++d cx bx ax 的虚根的虚部是精确的,而实根和实部有且只有一个可能发生相近数相减,精度可能较低,我们需要精细化。

实根和实部可能有以下三种情况: 1·都不发生相近数相减a yb x 311+-=,arey b rex 3+-=2·实根发生相近数相减a reyb rex 3+-=,()221imx rex a d x +-= 3·实部发生相近数相减ay b x 311+-=。

Rex 需要精细化,如果采用Δ<0时生成一元二次方程0112=+-c x b x 的方法,则当⎪⎪⎭⎫⎝⎛+-=2111ax d axc b 发生相近数相减时,实部精度下降。

采用分子有理化的方法可有效避免这个问题。

方法如下:将Rex 拆分,⎪⎭⎫⎝⎛+-=+-+-=++-=a x a x a n b a m b a n m b rex 6Re 6Re 666221,m 、n 同上。

并立即得出21Re Re x x >,原因是m>n 。

21Re ,Re x x 内部可能发生相近数相减,利用平方差、立方和公式实施分子有理化进行改进,由于他们都有两层开方,因此若第一次分子有理化产生的多项式和第二个开方数发生相近数相减,则需要第二次分子有理化。

两次分子有理化产生的多项式都要用超长小数的算法。

然后根据21Re ,Re x x 是否发生相近数相减来判断x Re 的表达式如果21Re ,Re x x 不发生相近数相减,则x Re =⎪⎭⎫⎝⎛+-a x a x 6Re 6Re 21如果21Re ,Re x x 发生相近数相减,可适当对他们进行增减,一个数的增量等于另一个数的减量,使他们的符号相同,而且保证计算结果不变。

改进方法如下设()211Re Re min x x ,=λ,2Re Re 212x x +=λ⑴·0Re Re 21≥+x x由21Re Re x x >推出21Re Re x x >、0Re ,0Re 21<>x x 和21Re x =λ,则0Re ,0Re 212211>++>--λλλλx x⑵·0Re Re 21<+x x由21Re Re x x >推出21Re Re x x <、0Re ,0Re 21<>x x 和11Re x =λ,则0Re ,0Re 212211<++<--λλλλx x上述两种情况得到的两个表达式可写成1b m +和2b n +的形式,其中)(211λλ+-=b b ,)(212λλ++=b b ,再判断1b m +和2b n +的内部是否发生相近数相减。

如果发生相近数相减,则采用平方差、立方和公式实施分子有理化进行改进。

含有的多项式要采用超长小数的算法进行改进,否则上述运算是无意义的。

设1'Re x =1b m +,2'Re x =2b n +,则x Re =⎪⎭⎫ ⎝⎛+-a x a x 6'Re 6'Re 21。

1'Re x ,2'Re x 内部的相近数相减的情况与21Re ,Re x x 的情况一样。

改进方法也一样。

二·Δ=0二次方程有两个相等实根。

23321qn m u u -====。

再细分两种情况。

2—1·q=0此时p=0,021==u u ∴0321===y y y ,∴abx 33,2,1-=,是一三重实根。

讨论a,b,c,d 之间的关系。

由p=q=0可得027********=+-=-d a abc b b ac ,。

相关主题