一個變量x的多項式指的是形如a0 + a1x + … + anx^n= P(x) 的式子,其中n為正整數,an非零,n稱為多現式的次數(或者度數);諸係數ak與x無關。這在所有的數學表達式中是最簡單的,其它式子如果具有無窮階導數,可以展開為x的冪級數;如果僅有有限個極點的話,則可以展開為Lauren級數。這些式子的個數是可數的;所有函數式子的個數(基數)為2^c,其中c為連續基數。
研究多項式的主要目的是求它的零點(或根),也就是解方程P(x) = 0,或者分解成一次因式。當n = 2時,通過配平方,很容易得出二次方程的求根公式。關於n=3時的求解,有一段很長的故事。最早是意大利數學家Luca Pacioli 在1494年,出書記錄了對一元三次方程解法的艱辛探索,並斷言在當時的數學,求解一元三次方程是根本不可能的。
在1505年左右,意大利數學家Scipione del Ferro解決了形如x^3 + mx = n的方程,但並沒有發表自己的成果,而是對解法保密,隻是告訴了自己的學生。在1535年,Ferro的學生菲奧爾向數學家Niccolo Tartaglia挑戰,後者用兩個小時解決全部30個問題,贏得了比賽,並在1541年終於完全解決了一元三次方程的求解問題。與費羅相同的是,Tartaglia同樣選擇保守解法的秘密。同樣研究一元三次方程的意大利醫生、哲學家和數學家 Girolamo Cardan在允諾不公開的條件下,1539年從Tartaglia那裏得到了他的解法;然而Cardan卻背棄諾言,把Tartaglia的結果發表在了自己的著作《Ars magna》中。現在人們隻知道三次方程的Cardan公式。
他們的解法如下:對x^3 + ax^2 + bx + c = 0, 先配完全立方,消去二次項,得到形如y^3 + py + q = 0的方程;再作變量代換y = z + k/z,選取參數k,使方程化為 (z^3)^2 + q(z^3) – p^3/27 = 0 形式。這是關於z^3的二次方程,有公式解;再開立方(需要單位1開立方的複數公式),代入y中,即得全部的三個根。
四次方程很快就被Tartaglia的學生Lodovico Ferrari解出。Ferrari的解法思路是這樣子的:對x^4 + ax^3 + bx^2 + cx + d = 0,配完全平方,使它成為
(x^2 + ax/2 + y)^2 = (a^2/4 – b + y)x^2 + (ay/2 – c)x + (y^2/4 – d) 的形式;再選取參數y,使得右邊是關於x的完全平方,而這隻要右式的判別式為0即可。從此得出一個關於y的三次方程;任取其一解,可得關於x的兩個二次方程,因此,四次方程的根便可全部解出。
這還可以用另一簡單的方式來描述:先配成關於x的完全四次方,以便消去三次項,得到形如 y^4 + py^2 + qy + r = 0的方程;再用待定係數法把它分解為兩個二次多項式之積。其中的係數會出現一個三次方程,用Tartaglia·的方法解之,就化為了兩個關於y的二次方程。
當次數n>4時,人們一直沒能找出一般的解法。法國數學家Franciscus Vieta研究了根與係數的關係;這可以因式分解之後再展開,與原多項式比較係數而得。n個根的基本(初等)對稱多項式,各等於相應的係數(帶符號),這就是Vieta公式。牛頓恒等式揭示了根的各個k次冪之和與係數的關係;當冪次k大於次數n時,還有遞推公式。
在1770年,Lagrange發表了《關於代數方程解法的思考》,指出二、三、四次方程的解法對五次及以上的方程不可行。他考慮了全部n個根用1的n次根的各種線性組合(預解式),以此為根構造一個新的方程;按照根與係數的關係,這個新方程的係數可以用原方程的係數的有理式表示出來。若新方程根式可解,則原方程亦然。然而經過他如此頑強的努力之後,用根式解高次方程的問題仍然未解決,它好像是在向人類的智慧挑戰。
1824年,挪威青年Abel(1802-1829?)證明了:當次數n > 4且項數>2時,任何以係數構成的有理式的多重根式,都不可能是方程的根。原來,數學家們幾百年努力的問題根本就沒有解。
接下來的問題是,哪些方程可以用根式求解?這個問題由法國青年 Évariste Galois (1811-1832, 20歲時死於決鬥) 徹底解決。Galois的想法與Lagrange相似,考慮n個x1, x2, …, xn的一次線性組合式L = k1x1 + k2x2 + … + knxn,係數kj不是單位根,而是使得L遍曆n個根的全部n! 個排列 。以這n! 個組合式為根的多項式 G(x)的係數都是有理數。
Galois引進了有理數域上不可約多項式的概念。假設G(x)已經分解為有理數域上一些不可約多項式之積;g(x)是其中之一,其次數為m。g(x)就是m個一次因式 x – Lk 之積;把這些Lk舔加到有理數域Q中,得到一個擴張域F = Q(L1, L2, …, Lm),或稱為g(x)的分裂域。F可以看成Q上的一個向量空間,其維數為m。F中保持Q中元素(有理數)不變的自同構的全體,稱為g(x)的Galois群,記為Gal(F/Q)。Galois定理說,原方程P(x) = 0根式可解的充要條件是,每個Galois群都是可分的;也就是說,G = Gal(F/Q)可以分解為一個下降的群鏈:G > G1 > … > Gk = {e},使得商群Gi/G(i+1)為可交換群(Abel群)。
用根式求解等價於通過一係列變量代換,化為一係列的二項方程:x^n + m = 0。在不能根式求解的方程中,能不能化為三項方程呢?1861年,Cayley證明了,一個一般的5次方程,可以用Tschirnhausen 變換,化為y^5 + y + a = 0的形式。Tschirnhausen變換就是y = b0 + b1x + … bmx^m,m < n為某個正整數。由P(x)的n個根,算出n個y值;以此構造一個關於y的n次方程:y^n + c(n-1)y^(n-1) + … + c1y + c0 = 0。按照根與係數的關係,可以選取參數bj,使得盡可能多的係數ck為零。1858年,Hermite用橢圓函數表出了這種五次方程的解。
由於求解的困難,數學家們轉向了另外三個方向的研究。一是根的存在性;是否任意一個次數n > 0的多項式都有根(實或複數)?答案是肯定的,這就是代數基本定理。它的證明是十分困難的。在17世紀後半期,D’Alembert給出了一個閉區間上連續函數最小值的證明,但這一事實也是需要證明的。真正嚴格的證明,是在Gauss 1799年在哥廷根大學的博士論文中給出的;現在已有200多個證明。Gauss使用的是複變函數的模的極小值定理。這些分析學的方法,還給出了重根的判斷條件:與導函數有公共根。這可以用Euclid輾轉相除法來進行。
第二個問題,是實係數多項式的實根個數的確定。由連續函數的介值定理,如果實係數多項式P(x)在某兩個不同實數a, b處有不同的符號,它在a與b之間必有一個實根(奇數次實多項式至少有一個實根)。Descartes符號法則指出,如果一個實多項式的所有根都是實數,那麽正根的個數(重數計算在內)就等於它的係數序列的變號數;如果有複根,則正實根的個數等於變號數減去一個偶數(包括0)。
瑞士數學家Liouville Sturm的方法可以給出兩個實數之間實根的個數。對於一個沒有重根的多項式,用它與它的導函數去作輾轉除法,得到一個多項式序列;由於無重根,P(x)與P’(x)互質;多項式序列的最後是一個非零常數。假設a < b不是P(x)的根,將這兩個數代入多項式列中,得到兩個實數列。它們的變號數之差,就是多項式P(x)在a, b之間的實根個數。
在複平麵上的區域中,根的個數可以由幅角原理確定。在複變函數中,通過計算一個解析函數f(z)的對數留數Int{f’(z)/f(z)dz: z 沿圍道C}/2iPi, 可以得出:當z沿C的正方向繞行一周時,f(z)的幅角增量Δ(argf(z)),等於2Pi乘以它在所包圍的區域D內的零點個數,減去極點個數。由此可以推出,一個多項式P(z)在一個由閉曲線C所包圍的區域D內的根數,等於當z繞C運行一圈時,P(z)繞坐標原點的圈數(在另一複平麵上)。
第三個問題,是實根的近似計算問題。按照介值定理,當P(a)P(b) < 0時,P(x)有一實根c在a, b之間。我們可以用二分法或者牛頓的切線法,去逐步逼近c的值。二分法中,根的存在性由閉區間套定理保證;切線法中,要按照P(x)的單調與凹凸性確定起始切線,由二階導數的界確保數列的收斂性。第三種方法是俄羅斯數學家羅巴切夫斯基在1834年發表的方法。設P(x)為首一多項式且各根的模互不相同:|x1| > |x2| > … > |xn|。構造以各根的平方為根的另一多項式,次數為2n:隻要把P(x)與P(-x)相乘,結果隻含x的偶次冪;再把x^2換為新的變量z,得到P1(z),次數還是n;依此運算,得到以xk的4次方、8次方、16次方。。。為根的一係列n次多項式。在計算了N次之後,所得多項式的係數帶上符號+, -, + , - 。。。之後,開2^N次方,就非常接近原方程的根。
我的歐氏方法如下。對於給定的多項式P(x),可假設常數項不為零。先用歐幾裏德輾轉相除法,求出gcd(P(x), P’(x)) = g(x);用g(x)去除P(x),以消除重根。令f(x) = P(x)/g(x), 可提出非零的常數項,f(x)/c = 1 + xh(x)。f(x)的零點,就是其倒數R(x) = (1 + xh(x))^(-1)的極點。用多項式定理把R(x)展開為x的冪級數(係數為rk),它的收斂半徑就是模最小的那些極點所在的圓的半徑。如果隻有實根的話,則絕對值最小的一個或兩個根已經求出;再從係數rk中減去此根的k次冪,再開k次方,去計算極限,可得其它根。
對於實係數多項式的複數根,可以分離出它的實部與虛部,寫成x + yi,y非零。展開後可得兩個關於x, y的多項式方程;按照變量y的次冪排列,由低到高,可以逐次消項,最後降為單變量的多項式方程,隻求實根。
多項式方程的根,總是可以解出的,盡管有的沒有一個顯式表達。對於無窮級數,如Dirichlet級數的根,如何求解,那才是真正挑戰人類的智慧。不過,我已經會解黎曼Zeta·函數的根了。