周志宏
(長江大學(xué)機(jī)械工程學(xué)院,湖北 荊州 434023)
一元四次方程2種根式求解算法的精度分析
周志宏
(長江大學(xué)機(jī)械工程學(xué)院,湖北 荊州 434023)
介紹了一元四次方程的2種根式算法,并分析了2種根式算法解的精度。研究結(jié)果表明,第1種的數(shù)值計(jì)算精度更高,而且更為穩(wěn)定。
一元四次方程;根式解;算法;精度
許多實(shí)際問題都可能導(dǎo)致求解一個(gè)一元四次方程或一元三次方程,如計(jì)算機(jī)圖形學(xué)中求解橢圓與橢圓的交點(diǎn)、光線追蹤[1,2],定向井和水平井的曲線段的屈曲臨界載荷[3]等。
一元四次方程求解方法有數(shù)值迭代求解和解析求解2大類方法。這些求解方法雖然總的思路一樣,但某些局部的不同使得算法的精度與穩(wěn)定性存在較大的差異。由于數(shù)值迭代求解需要對(duì)解的區(qū)間進(jìn)行搜索,求解全部的解的算法比較復(fù)雜,計(jì)算時(shí)間也較多。而采用根式解計(jì)算,可以直接得出所有實(shí)數(shù)根。下面,筆者介紹了一元四次方程的2種根式算法,并比較研究了2種解法的數(shù)值穩(wěn)定性。
一元四次方程的一般形式如下:
x4+bx3+cx2+dx+e=0
(1)
1.1第1種算法
式(1)移項(xiàng)可得:
x4+bx3=-cx2-dx-e
(2)
將式(2)左邊配成完全平方得:
(3)
(4)
式(4)中的y是一個(gè)參數(shù)。如果所取的y值使式(4)右邊關(guān)于x的二次三項(xiàng)式也能變成一個(gè)完全平方式,則對(duì)式(4)兩邊同時(shí)開方可以得到次數(shù)較低的方程。為了使式(4)右邊關(guān)于x的二次三項(xiàng)式也能變成一個(gè)完全平方式,只需使它的判別式變成0,化簡得:
y3+(-c)y2+(bd-4e)y+(4ce-b2e-d2)=0
(5)
這是關(guān)于y的一元三次方程,可以通過塔塔利亞公式來求出y應(yīng)取的實(shí)數(shù)值。
把由式(5)求出的y值代入式(4)后,式(4)的兩邊都成為完全平方,兩邊開方,可以得到2個(gè)關(guān)于x的一元二次方程:
(6)
解這2個(gè)一元二次方程,就可以得出原方程的4個(gè)根。
1.2第2種算法
將式(1)中的x換成x=y-b/4可得:
x4+fx2+gx+h=0
(7)
式中,f=c-3b2/8;g=d+b3/8-bc/2;h=e-3b4/256+b2c/16-bd/4。
由于復(fù)根只能以共軛對(duì)的形式出現(xiàn),式(7)左邊的四次多項(xiàng)式分解成實(shí)系數(shù)的2個(gè)二次多項(xiàng)式:
x4+fx2+gx+h=(x2+px+q)(x2-px+h/q)
(8)
式中,g和h不為零,p和q也不為零。設(shè)pgt;0,令式(8)左右兩邊的x2和x的系數(shù)相等,得:
f=h/q+q-p2g=p(h/q-q)
(9)
即:
h/q+q=f+p2h/q-q=g/p
(10)
從而得:
2h/q=f+p2+g/p2q=f+p2-g/p
(11)
式(11)的兩式相乘,整理后得p2的三次方程為:
p6+2fp4+(f2-4h)p2-g2=0
(12)
由式(12)可解出p2,開方取正值得p,代入式(9)得出q。由式(8)可得出2個(gè)二次方程,求解2個(gè)方程可得四次方程的根。
2種算法都用了一元三次方程的求解方法,不同的是第1種算法沒有消去四次方程的三次項(xiàng),而是直接配平方;第2種算法則在消去三次項(xiàng)后,通過比較系數(shù)的辦法求出2個(gè)一元二次方程的系數(shù)。第1種算法導(dǎo)出的三次方程和2個(gè)二次方程的系數(shù)只是原四次方程系數(shù)的平方,而第2種算法導(dǎo)出的方程的系數(shù)與原方程的系數(shù)的四次方有關(guān)。因此,如果原方程的各項(xiàng)系數(shù)相差較大,有可能造成大數(shù)吃小數(shù)的情況,產(chǎn)生較大的誤差。
對(duì)四次方程:
x4+rx3+r2+rx-1=0 (r為參數(shù))
(13)
當(dāng)r=0時(shí),在實(shí)數(shù)域內(nèi)方程(13)的解為x=±1。
表1是r為小參數(shù)時(shí)第1種算法和第2種算法計(jì)算結(jié)果的精度。其中,f為根代入式(13)左邊多項(xiàng)式的值,f越小,計(jì)算越精確。
表1 2種算法計(jì)算結(jié)果的精度
表1可以看出,當(dāng)r=10-8時(shí),第1種算法的解的精度仍然很高,多項(xiàng)式的絕對(duì)值lt;2×10-8,而算法2的根誤差已經(jīng)很大,超過了30%,多項(xiàng)式的絕對(duì)值達(dá)到1的數(shù)量級(jí);當(dāng)r=0時(shí),第1種算法能得出精確的結(jié)果,而第2種算法完全無法計(jì)算出根。這說明第1種算法的數(shù)值精度要高于第2種算法的精度,而且更加穩(wěn)定。
[1]Philip J Schneider, David H Eberly.計(jì)算機(jī)圖形學(xué)幾何工具算法詳解[M].第1版.北京:電子工業(yè)出版社,2005.
[2]Herbison-Evans D.Real Time Animation of Human Figure Drawings with Hidden Lines Omitted[J]. IEE Computer Graphics and Applications, 1982, 2(9):27~33.
[3]Yi Yunfeng. An Advanced Coiled Tubing Simulator for Calculations of Mechanical and Flow Effects[J].Model Advancements, and Full-Scale Verification Experiments, SPE 89455, 2004.
[編輯] 洪云飛
O241.1;O151.1
A
1673-1409(2009)03-N005-02
2009-05-25
周志宏(1956-),男,1981年大學(xué)畢業(yè),博士,教授,現(xiàn)主要從事數(shù)值計(jì)算與應(yīng)用方面的研究工作。