数论人生

数论是一门学科,也是我的人生。有人把酒论英雄,我用数字描天下。
正文

多项式方程的全部理论

(2022-04-19 07:06:16) 下一个

一个变量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·函数的根了。

[ 打印 ]
阅读 ()评论 (1)
评论
欧洲联盟 回复 悄悄话 看到有的高中数学老师教了三十多年的数学竟然不知道三次方程可以解出,气愤不过,就把此文贴出来了。
登录后才可评论.