硬核科普,五次方程求根

五次方程沒有解么?不!它能解,科學不會讓你失望的……
歐拉算不出的都是不能算的
????? 說自從卡爾達諾和費拉里求出三次方程和四次方程求根公式之后就再沒人能解決五次方程了……之后大神數(shù)學家歐拉與拉格朗日也致力于求解高次的方程,但都失敗了,不過失敗是成功之母,那期間有了很大的進步,近似值的理論日益顯現(xiàn)。
???? 拉格朗日研究出五次方程的求根策略,雖然沒有得到公式,但給后人很多啟示,到了十九世紀,一位傳奇數(shù)學家鼓足勇氣在20歲的時候死去,臨終前證明出了一般一元五次方程沒有根式解——他就是伽羅瓦,把高次求根的問題畫上了圓滿的句號。
????句號是畫上了,但五次方程呢?沒有根式解也不能阻礙人們對五次方程的追求,現(xiàn)在的理論可以算根的近似值,而且想算到幾位就能算幾位。

腦洞大開的數(shù)列問題
??? 為了說明算法,這里先探討數(shù)列的問題,這既古老又神秘的理論,最經(jīng)典的莫過于遞推數(shù)列了,而最美麗的遞推應該算是斐波那契數(shù)列了。這是數(shù)學家斐波那挈提出來的,抽象出來就是前兩項的和是第三項的數(shù)列,即遞推公式是Fn=Fn-1+Fn-2,其中F0=0,F(xiàn)1=1,其通項公式有很多方法求,最后發(fā)現(xiàn)通項是個很奇葩的結果:

??? 這個數(shù)列全是整數(shù),咋通項用無理數(shù)來表示了?很令人驚奇,不過理論研究還是很多的,后來發(fā)現(xiàn),如果遞推公式是線性遞推樣式,那么其通項總能表示成
an=?c1x1^n+c2x2^n+…+ckxk^n的形式,前提是特征方程沒有重根。
??? 而特征方程是啥呢?就是以x1,x2,x3,…, xk為根的方程,這個方程是啥樣式的呢?很簡單,就是(x-x1)(x-x2)…(x-xk)唄,這個方程展開之后一個神奇的結果出現(xiàn)啦,它剛好和遞推公式一致,就是把a換成x,例如斐波那挈數(shù)列的特征方程就是x2-x-1=0,同理,如果遞推公式是an=an-1+an-2+an-3,那么特征方程將是x3=x2+x+1,即x3-x2-x-1=0,當然這里有系數(shù)c1,c2, …,?ck為常數(shù),是通過初始值算的,重要的事情說三遍,特征方程一定不能有重根哦,沒有重根通項公式才是這樣的!
??? 要怎么證明呢?可以一點點遞推的證明,就像數(shù)學歸納法,假設x1,x2,…,?xk是方程不同的根,那么一定能算出來c1,c2, …,?ck,至于為什么一定有解,涉及到矩陣的問題,就不細說了,算出之后就有

設特征方程為x^k=Ax^(k-1)+Bx^(k-2)+…+Cx+D,那么x=x1,x2,…,?xk時都成立,那么有

這樣ak也滿足條件了,同理序號為k+1時也可以證明通項公式成立,依次類推,即可證明,這就是遞推公式的原理了。

????其實利用遞推公式的特點可以很簡單的計算很多問題,比如山東省中考題:
已知x+y=1,x2+y2=2,求x^7+y^7
這題可以按照對稱找關系的方法計算,不過考慮遞推公式會簡單些,將x,y看作是特征方程的兩個根,可知xy=(1-2)÷2=-0.5,x≠y,那么特征方程是t2-t-0.5=0,數(shù)列的遞推公式就是an=an-1+0.5an-2,如果a0=2,a1=1,那么an=x^n+y^n,求a7既可
a1=1, a2=2,?a3=2.5, a4=3.5, a5=4.75, a6=6.5, a7=8.875
不用對稱式來回化簡了,x^7+y^7=8.875
??? 看到前面的算法你有啥想法呢?說了半天好像和五次方程求根沒有任何關系,不過看似不相關的內容或許存在玄妙的聯(lián)系,如果求根也能遞推會不會讓問題簡單些呢?從這個角度出發(fā),人們研究出了一種迭代求根的算法,當然靈感來源于拉格朗日的理論…
五次方程求根方法
????? 有一種遞推的方法可以求五次方程的根,而且這種方法適用于解任何方程,就是把方程看作是函數(shù),它有個優(yōu)勢就是任意的五次方程一定會存在實根,找到這個實根,然后用綜合除法簡化成四次的,從而用費拉里的方法解就行了。
??? 那么,為啥五次方程一定有實根呢?設五次方程對應的函數(shù)為f(x),因為它最高項次數(shù)是5,當x很大時,主要呈現(xiàn)x^5的形式了,這里只考慮五次系數(shù)是1的情況,因為一元五次方程都可化成這種形式,因此我可以找到一個b,使f(b)>0,同理由于5是奇數(shù),當x趨勢-∞時必然也能找到一個a,使f(a)<0,由于f(x)連續(xù),在區(qū)間[a,b]上,必然有實根。
????? 知道有根了,下面的問題就是找到它了??梢园凑辗匠蘤(x)=0,將其化簡成x=φ(x)的形式,將它看成是遞推公式,在有根區(qū)間上找到初始值x0,一直迭代下去,就能收斂到真正的根,設它是x*吧,感覺有些凌亂呢?其實就是將y=φ(x)與y=x聯(lián)立,其交點就是根了,但這種方法不一定收斂的,有些情況可以收斂,如下圖:

有些情況就不收斂,如下圖:

那什么時候收斂什么時候不收斂呢?有下面的定理
設有方程x=φ(x),
(a)設φ(x)于[a, b]一階導數(shù)存在
(b)當x∈[a, b]時,有φ(x)∈[a, b],
(c)φ’(x)滿足條件:|φ’(x)|≤L<1,?x∈[a, b],則有
(1)x=φ(x)在[a, b]上有唯一解x*,
(2)對任意選取初始值x0∈[a, b],迭代過程
xk+1=φ(xk) (k=0,1,…) 收斂,即lim xk=x*,
(3)

(4)誤差估計 (k=1, 2, …)

所以,求五次方程的根就在有根區(qū)間內找到導函數(shù)絕對值小于1的φ(x)即可,比如我想求sin27°,因為27=135÷5,因此根據(jù)棣莫弗公式可以按照sin135°列方程,而根據(jù)定理,需要找到有根區(qū)間,特別強調一下,偶重根時,不能按照區(qū)間正負來找根,因為兩邊可能同號,設x=27°,有

設sin27°=t,那么有

這個方程沒有偶重根,因為它表示t=sinx,而sin5x=sin135°=sin45°,其中5個根分別是sin(-63°),?sin(-45°), sin9°, sin27°, sin81°。但是這里不能滿足在有根區(qū)間內|φ’(x)|<1,所以需要改變一下再確定φ(x),即

這樣在有根區(qū)間就滿足|φ’(x)|<1了,具體的t在哪個區(qū)間呢?令-1<φ’(x)<1;t>0,解不等式就行了,過程如下:

滿足條件時剛好在sin18°和sin54°之間,因此可知,這里的根是sin27°,初始值可以設為t0=sin30°=0.5,我就不挨個迭代了,用Excel可以輕松計算,迭代5次得sin27°≈0.453998
??? 這里誤差是多少呢?可以用到前面的定理,知|φ’(x)|≤0.5<1,令L=0.5,那么誤差應小于|0.45-0.5|0.5^5/(1-0.5)=0.003125,可知到百分位是準確的,而實際上真實值sin27°≈0.453991,還是很精確的。
??? 這樣五次方程就可以解了,主要在于找出滿足條件的φ(x),重根情況可以用f(x)/f'(x)來算,由于原函數(shù)和導函數(shù)重根時都是零點,因此比一下就出現(xiàn)沒有重根的方程了,不過實際上啥情況都可能出現(xiàn),要靠各種技巧來完成了,還有很多求根的近似值的方法,有興趣的朋友可以看看數(shù)值分析相關書籍,數(shù)學分支科目有很多,比如數(shù)值分析,泛函分析,矩陣分析,數(shù)學分析,名字都很像,不要弄錯哦!
