记得第一次学习一元二次方程是在初中的时候。那个时候老师就告诉我们,一元二次方程一般有两个根,一元n次方程则一般有n个根。后来在课外书上了解到,这个结论最早是由数学王子高斯严格证明出来的。
当时我就有一个疑惑,明明有些一元二次方程因为判别式小于0是没有根的啊?为什么说都有两个根呢?比如方程
不就没有根吗?后来,了解了复数相关知识之后,才明白这个结论是在复数域内成立的。
人们认识数的过程同求解一元n次代数方程的过程是息息相关的。人们最早天然认识到的数当然是自然数(又叫正整数,有时也把0纳入到自然数的范围),之后为了求解诸如
这样的方程人们认识到了负整数,然后为了求解诸如
这样的方程人们认识到了有理数,再之后为了求解诸如
这样的方程人们认识到了无理数。再往后,人们在深入研究一元n次方程求解过程中,认识到了有些数无论如何不是任何整数系数(或者说是有理数系数)的一元n次方程的解,从而认识到了超越数。(有关内容可参考我的这篇文章,有理数、无理数、代数数与超越数 - 遥远地方剑星的文章 - 知乎 https://zhuanlan.zhihu.com/p/46072609)
复数也是在这个过程中被逐步认识到的。在求解诸如
这样的方程时,人们认识到需要进一步扩充数的范围。人们规定,用
表示
的解,也就是定义了一个新的数
,从而定义出了复数!
复数的定义是数学领域的一件大事,它使得我们在用数轴表示实数的基础上直接跨越到用复平面表示复数了,从一维跨越到了二维。复数像实数一样,构成了一个数域,简单说来,就是任何两个复数的加、减、乘、除(分母不得为0)得到的结果仍然是复数。在复数范围内,任何复数系数一元n次方程都有n个根(可能会有重根),从而在求解一元n次方程这个问题上,人们一劳永逸的解决了数域范围的问题,不会因为求解一元n次方程而再需要扩充数的范围了。
其实,对于一般的一元5次及以上次数的方程,人们是无法根式求解的,也就是说,除了数值求得近似解外,我们连这类方程的一般解都无法表达出来。解都无法表达,为什么我们还这么肯定它们存在呢?这就是数学的奇妙之处所在了。“一元n次方程必有n个根”,这个定理被称为代数基本定理,从名字就可以看出这个定理的重要性。下面,我们就通过一个相对比较容易理解的方法给出证明。
在证明之前,先普及一点点需要用到的复数的最基本的知识:
(1)任何复数z都可以写成
的形式,对应于复平面上坐标为
的点。注意这里的a和b都是实数。点
到原点的距离被称为这个复数的模或者绝对值,记作
。
(2)任何复数z也可以写成
的形式,对应于用极坐标表示的复平面上的点
,这里r是大于等于0的实数,
为任意实数,被称为复数的辐角。此时
。
(3)
;
。
(4)
表示点
与
之间的距离。
(5)棣莫弗公式:对于
,
。
好,下面证明开始。
第一步:证明对于任意一元n次方程(n为大于0的整数)至少有一个根。
设
为一个一般的复系数一元n次多项式,
为一般的复系数一元n次方程。这里任一
为复数。
反证法,假设这个
没有根,也就是说对于任意复数z,
。
我们考察一个以复平面原点为圆心、r为半径的圆周曲线,这个曲线上的点对应的复数为
,r为常数,
从0变到
。显然,在
从0变到
绘出整个圆周的过程中,
所对应的点也绘出了一条封闭曲线,如图1所示。后面我们把
绘制出的封闭曲线称为
的轨迹。
图1 z跑遍以r为半径的圆周时,f(z)绘出一条封闭曲线
如果r=0,则z绘出的圆周退化为原点O,同样的,
的轨迹退化为点
。且由于
没有根,因此
。
既然
,则我们一定可以找到一个足够小的正数
,使得
时圆周上每一点z对应的点
到
的距离都小于
的模
。这是因为
到
的距离为
,注意到
,从而有
当
时,
,而
,从而必有
使得
。如图2所示意。
图2 总可以选取足够小的Delta r,使得f(z)到f(0)的距离小于f(0)的模
从而,如果我们以
为圆心、
为半径画一个圆周的话(图2中的橙色圆周),那么
的轨迹(红色曲线)必然全部在此圆周之内。
这就是说,
时,
原点O必然在
的封闭轨迹(红色曲线)之外
!
随着r的连续增大,
的轨迹也在
连续变化。但是因为任意
,从而
的轨迹在连续变化过程中永不会经过原点,因此原点O永远不能跨过
的轨迹进入到轨迹之内。所以,我们得到
结论1,对于任意以原点为圆心的圆周上的点z,原点O永远在对应的
形成的封闭轨迹之外
!
但是当我们从另外一个角度研究这个问题的时候,矛盾出现了。刚才是找足够小的 r ,现在我们改为找足够大的 r 。我们总可以找到足够大的 r ,使得对于每个z,都有
。这是因为
上式第二步是将分子分母同时除以
得到的。当
时,上式显然趋于0 。从而,必然可以找到足够大的 r ,使得
,也就是
。
这表明,对于这样足够大的 r 来说,点
到点
的距离小于
,从而我们可以连续的将点
沿着直线段移动到点
而不经过原点。如图3所示。
图3 总可以选取足够大的 r ,使得f(z)与a_n*z^n的距离小于f(z)的模,从而可以不经过原点将点fZ挪到Zn
之所以可以不经过原点,是因为
到
的距离小于
,从而点
在这个距离范围内可移动到的位置一定在图3橙色圆周之内,还够不到原点。
由于这个移动是连续的,而且是不经过原点的,所以原点O相对于
轨迹的位置在移动前后不会有变化
。移动完成后,
的轨迹变成了
的轨迹。我们知道,对于
,
,其中
是系数
的辐角。显然,这也是一个以原点为圆心的圆周(只不过随着z在圆周上移动一圈,
会在相应的圆周上移动n圈),那么原点O当然在这个圆周之内。
从而我们得到结论2,对于这个足够大的 r ,原点O也在相应的
的封闭轨迹之内
。
上述结论1与结论2显然是矛盾的。于是我们得到
没有根的假设是不对的,
至少有一个根。
第二步,从有一个根得到有n个根。
既然一定有一个根,那么不妨设这个根为
,也即
。于是有,
我们知道有一个因式分解的恒等式,
利用这个恒等式,得到
显然是关于z的一个n-1次多项式。
根据第一步的结果,
也至少有一个根,设为
,类似上面的推导过程,得到
是n-2次多项式。一直类推下去,最终得到
之所以会有一个常数项
,是因为
的最高次项系数是
。由上式得到
到
是方程
的n个根,而且也不会再有别的根,否则根据上式,对于不属于
到
的其它
,
不可能为0 。
当然,我们不排除某个
,我们把这样的
称为重根,如果有三个根一样,就叫做三重根,更多的就叫做四重根、五重根、......,所以一元n次方程是可能存在多重根的。
到此,我们完成了代数基本定理的证明,说明了为什么一元n次方程必有n个根。
在高斯的一生中,给出了四种代数基本定理的证明方法,最后一个方法是他晚年71岁的时候给出的。高斯肯研究四种证明方法,说明他很重视这个定理。确实,代数基本定理被公认为是在代数乃至整个数学中起着基础作用的定理。
我们今天这个证明方法要比高斯给出的四种方法都简洁易懂一些,但是严格地讲,我们利用了拓扑学的一些基本知识(如连续、移动等),虽然这些说法普通人都能很容易理解,但是要给出严格的数学定义以及相关证明并不简单。所以,我们方法虽然简洁易懂,可仍然是站在前辈的肩膀上得到的。