为何从一元五次方程开始就没有由有限次加、减、乘、除、开方运算构成的求根公式了?

【相关问题】能否通过列举一些代数式、方程加以分析、说明,直解释阿贝尔定理? - 数学大家都知道,一元一次、二次、三次、四次方程都有根式解,从五次方程开始就没有一般解了。然而这个情况为什么是五次方程开始出现?为什么这个数字是五?为什么不是六或者是七?为什么恰好是五次方程才开始没有根式解?难道说当多项式的次数达到五的时候,其形态会有根本性的改变?―――另外,就是现行初中数学教材关于一元二次方程的章节中…
关注者
2401
被浏览
249453

29 个回答

过600赞,感谢知友赏光。感谢 @余翔在本原根上的指正,已修改。之前在引理的证明上有失误,感谢@李亦仰指正,已经对关键证明做了修正。

---------------------------------600赞感谢分割线---------------------------

按理来讲 @zero的答案已经说明清楚了,不过从这个问题的问法看来题主好像对整个过程并不清楚,那我们就做详细一点的剖析,主要走伽罗华理论的这条路。
该答案主要面向数学系之外的爱好者,部分地牺牲了逻辑上的严密。长文预警,为此先给本文一个任务清单:

  • 了解根式求解的局限性从何而来;
  • 开根号和加多项式的根是两种扩张数域的方式;扩张的结构是否相同,决定多项式能不能用根式求解;
  • 将同一多项式的所有根视为一个整体,为何可以看作一个整体;
  • 了解刻画整体的方式:{局部}+{局部到其他局部的映射的集合(也就是)}
  • 了解怎样用这种刻画方式来描述整体的层级结构;
  • 群和扩张构成结构上的一一对应,群结构不同于根式求解的多项式,其扩张结构和开根号的扩张结构也不同,此类多项式将无法用根式求解。



这个问题提得比较糙,导致最后问起来好像特别玄乎。我们应该说“有理系数五次方程”或者说“有理数域上的五次多项式”没有求根公式。在另外一些的特定数域上,存在五次方程有求根公式的情况,不过我只是知道有这回事,那些数域并没有做详细的了解。

先说说多项式。大家都知道它长这样:
a_nx^n+a_{n-1}x^{n-1}+...+a_1x+a_0
“有理数域上的多项式”,不是说这个多项式的根是有理数,而是指多项式的系数a_n,a_{n-1},...,a_0是有理数。
强调系数是有理数有什么意义?看一下有理系数二次方程标准形式ax^2+bx+c=0的求根公式:
\frac{-b\pm \sqrt{b^2-4ac}}{2a}
当然我们可以把它记为
f(a,b,c)=\frac{-b\pm \sqrt{b^2-4ac}}{2a}
也就是说,它实际上相当于系数a,b,c的一个函数。
这意味着什么?假设一个函数f(a,b,c)只是对a,b,c做加减乘除,那么,当a,b,c是有理数的时候,只要分母不为0,f(a,b,c)一定不是无理数。
而也就是说,系数及其计算方式控制着求根公式的输出范围,这使得根式求解有它的局限。比如,如果只允许加减乘除的计算方式,那么连x^2-2=0这种都不存在求根公式,因为有理数做加减乘除不会得到无理数。要是系数是复数,因为复数域是代数闭域,复数域上任何一个多项式的根都是复数,就不存在无法求解的问题了。

所以,“有理系数五次以上多项式无法用根式求解”的意思,是说五次以上的多项式里存在这些多项式,它们的根无法用有理数做四则运算和开乘方得出。
总而言之,根在有理数域里的,靠四则运算就已经能求解(数学上称有理数域对四则运算封闭)。根在有理数域外的,我们只有通过开方去拓展有理数域——加入有理数的整数次方根——组成一个新的数域,让方程的根可以算出来。这就是要出现“根式求解”的原因。人们一直以为靠开方生成的“拓展树”(数学上称这个“拓展树”为根式扩张塔)可以把它的枝桠伸到任何一个多项式的根那里,但是阿贝尔扼杀了这种乐观。直观地说,五次以上多项式无法用根式求解,就是存在多项式的根藏在在这株“拓展树”的枝桠的“缝隙”里。


怎样发现这种“缝隙”?这个问题就像我们问"有理数之间的缝隙怎样被发现“一样。有理数和有理数的间隔可以任意小,用直观的发现方法已不可行,因此发现这个”缝隙“只能是利用反证法。
这个反证法怎么做?回忆一下\sqrt{2} 是无理数的证明。概括地说,有理数总可以表示为互质的两个整数之比p/q,在这种情况下分子分母不可能继续约分,而费马证明,\sqrt{2} 如果有整数比的形式,分子和分母可以无穷次地约分下去,从而\sqrt{2} 不可能是有理数。
这就是说,发现“缝隙”的方式,就是证明存在和现有的情形不同的性质。说个很简单的例子:你知道某棵树的树枝永远都只是分成两支生长,但现在我拿出了一个三岔的树枝,因此可以判断它不属于这棵树,这棵树也长不出这种树枝。所以我们得首先知道根式扩张塔这株“拓展树”遵循怎样的结构生长。

关于扩张的结构我们要了解的两个事实:
1、从代数角度讲,根没有大小,只有运算功能\sqrt{2} -\sqrt{2} 的运算功能都是相同的,就是它们的平方等于2。对于有理数域来讲,它们没有区别,都只是那个“平方是2的数”,也不会影响有理数部分的任意四则运算,这就好像往实直线的有理数点中间安插了一个两只脚的架子,哪只脚在左哪只脚在右并没有关系,都不影响有理数域上的任何运算结果。
所以,多项式的根并不完全各行其是,它们因运算功能的相同而连结起来,形成一个“架子”的几个脚,当我们加入多项式的根对有理数域进行扩充,重点在于这个根所在的“架子”的样子,而不是这个根究竟叫什么
好像这和根式可解没什么关系。那现在我们可以对根式可解的条件改写成:如果多项式的根的架子和根式扩张的架子结构不一样,那么这个多项式的根是不可以用根式求解的
有没有打开新世界的大门的感觉?别急,这只是开始。

现在我们需要来研究这个架子应当怎样用数学表达。
架子是个整体,怎样和根这个个体联系起来?比如说,现在我们面对一个四脚架,而我们能表达的只有架子里面的某只脚,怎么做?那就不妨先假定这只脚是一个“原点”,记为j_1(“脚1”的意思……= =),然后令其他脚表示为j_1到它们的映射\sigma的像,记为\sigma (j_1)。于是四个脚都拥有了自己的表达方式:脚1是\sigma_1 (j_1),脚2是\sigma_2 (j_1),脚3是\sigma_3 (j_1),脚4\sigma_4 (j_1)。当然,不同的脚在\sigma的作用下也变成另外的脚,暂不细说。现在我们说,这些映射\sigma就组成了一个\{\sigma_i\},i=1,2,3,4
于是,面对一个整体的时候,我们可以尝试将它表示为“一个局部(原点)+一个局部到其他局部的映射的群\{\sigma\}”这样的结构。
这和原来的脚1、脚2、脚3、脚4的表示有什么区别?关键在于,这个表达方式让人们明白,原点的选取并不是重点,这个群\{\sigma\}才反映了这个架子的整体性质。比如说,这个四脚架的群指出它允许通过旋转使一只脚转移到另一只脚(如下图架子1)。如果这个四脚架的群只有\{\sigma_1,\sigma_3\},那就意味着它只能做翻转,将一只脚翻转到它的对脚(如下图架子2)。同样是四脚架,群不一样,它们的结构就不一样。
(尽管这里对群的表述是非常粗糙的,不过不妨碍得出这个结论)
类似的,多项式的根集,其结构也由根集的群所决定。这是方程可解性的一个重要转折点:要了解多项式的根,可以先了解多项式的根集的群。由于这个群里的成员只是负责把多项式里的一个根变成另外一个根(也可能变成自身),相当于对多项式里的根做置换,数学上称之为根的置换群

注意这种置换要保持有理数域不变,看一个例子:
多项式x^4-10x^2+1的四个根分别是
\left\{
\begin{aligned}
&x_1=\sqrt{2}+\sqrt{3}\\
&x_2=\sqrt{2}-\sqrt{3}\\
&x_3=-\sqrt{2}+\sqrt{3}\\
&x_4=-\sqrt{2}-\sqrt{3}
\end{aligned}
\right.
假设这四个根里面的某个置换\sigmax_1换成x_2,即
\sigma (\sqrt{2}+\sqrt{3})=\sqrt{2}-\sqrt{3}
看得出\sigma只是把\sqrt{3}变成-\sqrt{3}\sqrt{2} 并没有变化。因此考察\sigma对其他根的作用,就应该将这种运算保持,比如\sigma作用在x_4上,结果应该是:
\begin{align*}
\sigma(x_4)&=
\sigma( -\sqrt{2} -\sqrt{3})\\&=-\sigma(\sqrt{2})-\sigma(\sqrt{3})\\
&=-\sqrt{2}-(-\sqrt{3})\\
&=-\sqrt{2}+\sqrt{3}\\
&=x_3
\end{align*}
而不会是\sigma(x_4)=x_1.
(注意:上面计算的第二行的依据是“保持有理数域上的运算结果”的直接运用,也就是数学上“同构”概念的直接定义)
也就是说,我们只讨论使有理数域保持不变的根的置换群,这个群被称为伽罗华群。实际上伽罗华群的定义要比这个广义一些,为了方便讨论我们先这样定义。

我们知道多项式的根填进有理数域中,会形成一个更大的数域,这个数域和群有着怎样的联系?这里就要用到第二个事实,也是名垂千古的伽罗华基本定理的雏形。

2、既然是讨论多项式的根的置换群,我们得让这个扩张出来的数域能够把该多项式的所有根都包括进去,以便根集的“架子”可以自由地切换落脚点。
比如说,Q(\sqrt[4]{2} )\sqrt[4]{2} 是多项式x^4-2的根,但这个多项式的四个根\sqrt[4]{2} ,\sqrt[4]{2} i,-\sqrt[4]{2} ,-\sqrt[4]{2} i中,\sqrt[4]{2} i-\sqrt[4]{2} i都不在Q(\sqrt[4]{2} )中,那么就应该扩充成Q(\sqrt[4]{2} ,\sqrt[4]{2}i),才能讨论x^4-2的根的置换群。
我们称这种扩张为正规扩张。一个多项式的正规扩张包括了该多项式的所有根,也就是说,该扩张容纳了所有可能的置换结果。所以,请特别记住这个性质:在一个多项式的正规扩张里,该多项式的根的置换是充分的。这是接下来的关键信息。

很显然,每个多项式都拥有属于自己的正规扩张,有些多项式的正规扩张只有一步,像x^2-2就只有Q\subseteq Q(\sqrt{2})=Q(\sqrt{2},-\sqrt{2}),而像x^4-10x^2+1这种多项式,它的正规扩张可以分成Q\subseteq Q(\sqrt{2})\subseteq Q(\sqrt{2},\sqrt{3})两步,这两步都是正规扩张。但不管是怎样的多项式,假设它是f,对于它的正规扩张E\supseteq Q,我们都可以找到一个正规扩张链,将它的正规扩张域分解为逐步的正规扩张E\supseteq E_1 \supseteq Q:大的域是中间域的正规扩张,中间域又是更小的域的正规扩张……我们可以想象每一步正规扩张都好像在原来的数域(称为基域)上加了一层外圈,Q加了第1层变成E_1E_1加上第2层变成E,如下图:

当然,每一层的正规扩张都由特定的一个多项式生成,也就是说,E\supseteq E_1是某个多项式f_1的正规扩张,(特别提醒一下,f_1绝不是f的因式!)而f_1也拥有自己的根的置换群。
现在的重点是怎样在这个图上表示f的置换群。f的根在基域之外,那么它就分布在外圈;多项式的根的置换保持基域Q不动,那么我们可以把置换视作外圈的转动(如果读者家里有那种转动的门把手的话,你们可以观察一下它转动的时候中间的锁芯是不动的,就跟这个图的意思一样)。记这个转动为\sigma,它把Q外的一点\alpha转到\sigma(\alpha);并且这个转动有,记为\sigma^{-1},它负责把\sigma(\alpha)转回\alpha(注意\sigma作用的是Q的整个外圈,包括了第1层和第2层):

顺带地,我们把\sigma的集合记为G(E/Q),意思就是“保持Q不动的置换群”。
那么f_1的置换群是啥样的?f_1的正规扩张是E\supseteq E_1,那么它的根的置换群当然就是G(E/E_1),即“保持E_1(在图中是Q和第1层)不动的置换群”。记G(E/E_1)的某一元素\tau,它的作用就是转动图中的第2层,如下:

显然G(E/E_1)G(E/Q)的子群,“整个外圈的所有转动”就包含了“固定Q和第1层转动第2层”的所有操作。

请注意我们想要让正规扩张链E\supseteq E_1 \supseteq Q逐步分解下去,而我们现在已经假定了E \supseteq E_1是正规扩张,然后我们剥去E/E_1,就只剩下E_1\supseteq Q这层扩张,那什么情况下E_1\supseteq Q才是正规的呢?
这时候就要出动之前提到的性质:在一个多项式的正规扩张里,该多项式的根的置换是充分的。伽罗华即将施展开他的魔法。

如果E_1\supseteq Q是正规扩张,E_1/ Q里的元素\alpha都可以表示成某一多项式f_2的根,进而f_2的根的置换结果还会在E_1里(也就是说\sigma(\alpha)还会在第1层里)。复习一下刚才那个图示:

要用等式说明这个事实,我们需要对第2层进行扰动,以证明第1层的元素经过置换后还在第1层里,这样当我们同时对第1、2层进行转动(施加了\sigma)的时候,第2层的转动\tau就完全地独立于第1层从而在1、2层共同转动时,第2层不仅在扩张的角度上,在置换群(转动)的角度上也可以和第1层完全剥离开来
于是我们使用E\supseteq E_1的伽罗华群G(E/E_1)。之前已经说过,G(E/E_1)只作用在第2层,而\alpha\sigma(\alpha)都在第1层,因此G(E/E_1)不会对f_2的根产生影响,于是我们可以得出下图里的等式:
\tau\sigma(\alpha)=\sigma(\alpha)

既然\sigma(\alpha)\tau的作用下保持不动,那么施加\sigma^{-1}就会返回\alpha,即
\sigma^{-1}\tau\sigma(\alpha)=\alpha
下图表达了整个计算的过程:
注意到第2层(E/E_1)的元素由于\tau的扰动,施加了\sigma^{-1}之后并没有返回原位,就相当于是被施加了G(E/E_1)里的某个映射\tau',也就是\sigma^{-1}\tau\sigma(\alpha)=\tau'(\alpha)=\alpha。由于\tau\tau'都属于G(E/E_1),考虑到\tau\tau'的任意性,事实上我们可以把这条式子写成(G(E/E_1)简写成G_1方便看):
\sigma^{-1} G_1 \sigma=G_1
再考虑\sigma的任意性,事实上G(E/E_1)G(E/Q)里的每个成员都要满足上式,这时候我们就称G(E/E_1)就称为G(E/Q)正规子群
整理一下,我们就得到一个正规扩张(在这里涉及的正规扩张被称为伽罗华扩张)及其伽罗华群的对应条件:
对于伽罗华扩张Q\subseteq E_1\subseteq EQ\subseteq E_1是正规扩张当且仅当G(E/E_1)G(E/Q)的正规子群。
字面上看艰涩无比,然而总结一下:
正规扩张在扩张家族里是个自带坚硬外壳的种类,壳内的元素只能在壳内做置换。于是,当好几层外圈一起做置换时,外层的置换就被挡在里层的壳外进行。这时候,我们就说外层的置换群是整个置换群的正规子群。
反过来,如果想要证明里面那层是正规扩张,那就只需要证明外层的置换被“挡”在里层的之外,便可以得知一个讯息:“里层是带壳的!”这样就证明了里面那层是正规扩张。

读者可能已经发现了,每一层正规扩张一定对应着一个正规子群,那么它们会不会是一一对应的呢?恭喜你,伽罗华也是这样想的!

上述的表述实际上就是伽罗华基本定理的一个关键性引理的证明主体。根据这个引理,伽罗华证明了伽罗华基本定理,也就是正规扩张链和正规子群链的一一对应,史称伽罗华对应。
正规子群是伽罗华独创的概念,它的思想之精妙怎样夸赞都不为过。对于正规子群的意义,我曾写下如下文字:

正规子群的意义有多大呢?它是剖析复合运动的利器,是对复合运动进行分类最简洁最漂亮的方式。在生活和研究中我们会遇到各种各样复合的动作与映射,就像我们说的\sigma一样,而我们并不知道其中的分动作究竟是连带的呢,还是它可以独自行动,就像\tau一样。平抛运动既向前又向下,向前和向下的运动是不是相互独立、可以分开分析的呢?这些动作的可能性往往有无穷多种,不可能一一检验,分类更是往往只能基于个人感受,哪里可能想到还有这样的区分方法,通过检验,直接在复合作用中分离出自成一体的部分?将群的正规子群和域的正规扩张进行一一对应的数学方法就是伽罗华理论核心的内容,而正规子群的提出和上面定理的证明则是这个对应方法的关节处,当然更是伽罗华本人的首创。考虑到那时候数学远不如现在发达,伽罗华这一突破可谓石破天惊,他成为数学史上唯一一个以名字来命名其理论的数学家,也就不惊奇了。而他死的时候,才21岁。

事实上,群论的研究方法——将动作视为运算,构造特殊的运算系统,研究系统的内部结构,进行分类、分层,将它的结构等同于研究对象的结构,就是由伽罗华开创的。由于群的构造非常自由,只要满足封闭运算的性质(允许逆运算不动运算)就可以做,因此随着时间推移,群被应用在越来越多的领域上,以各种各样的形式出现,伽罗华也就取代了群的概念的真正发明者拉格朗日,成为了群论的祖师爷。


赞完正规子群之后,让我们再次回到最初的问题上。怎么判断多项式能不能根式求解呢?伽罗华理论告诉我们,根据伽罗华对应,看这个多项式的伽罗华群,是否具备根式扩张的伽罗华群的结构,如果具备就可解,不具备就不是根式可解的。于是,现在问题只剩下这个:根式扩张的伽罗华群有怎样的特性?


讨论根式扩张的伽罗华群的结构,注意一下三个事实,在此不加证明:
1、根式扩张,在运算中也就是我们所说的开根号,总可以分解成素数次方的开根。如果有非素数次方根\sqrt[n]{a} ,其中n=pq,那么我们就能令\sqrt[n]{a} =\sqrt[q]{\sqrt[p]{a}} ,一直到p是素数为止。所以我们只需要研究开素数次方的根式扩张。
2、任何的根式扩张总可以扩充成一个正规扩张。根式扩张并不一定是正规扩张。Q(\sqrt[3]{2} ) \supseteq Q是根式扩张,但是\sqrt[3]{2} 的极小多项式(知道是以\sqrt[3]{2} 为根的最小多项式即可)x^3-2的其他两个根的都是复数,不在Q(\sqrt[3]{2} )里面,所以Q(\sqrt[3]{2} ) \supseteq Q不是正规扩张,但是它可以扩充成一个正规扩张,根式扩张的伽罗华群也就可以用这个正规扩张去研究。
3、开素数次方的伽罗华群总是有且仅有素数个成员。我们说群的阶数一定是个素数。
根据上面三个事实,我们可以得出如下结论:
根式扩张的伽罗华群一定可以分解成一条正规子群链,其中每一层的阶数都是素数。
因此,如果一个多项式的伽罗华群的正规子群链里面出现某一层的阶数必须只能是合数,那么这个多项式就不能用根式求解了。
(其实每一层的群不叫伽罗华群,叫这个伽罗华群的商群,不过为了讨论方便目前先这样处理)

现在终于可以回过头来解释 @zero的那个答案了。计算多项式的伽罗华群——我们只说计算群的阶数是一项比较专门的技术,在此不作赘述,不过数学家得出了以下结果,它包含了我们要讨论的最终结果:
1、一个一般的n次多项式的伽罗华群是n个根的自由置换群,称为对称群S_n,也就是说不管怎么换都能保持有理数域不动。用初等的组合数学就知道这种置换共有n!种可能,即S_n中有n!个成员。很显然S_1\subseteq S_2\subseteq ...S_n\subseteq ...
2、S_5(阶数是5!=120)有一个子群A_5,是自由置换群中所有偶数次置换的集合,A_5的阶数很好算,120的一半,也就是60。但是A_5的正规子群有且只有平凡的正规子群,即A_5\{1\}(这就是所谓的单群的定义),因此正规子群链S_5\supseteq A_5 \supseteq \{1\}有一层必须是合数阶,于是一般的五次多项式没有根式求解。
又因为S_5\subseteq S_6\subseteq ...S_n\subseteq ...,因此五次以上的多项式都存在这种情形,即伽罗华群存在一条经过A_5的正规子群链,从而五次以上的多项式也没有一般的求根公式
3、但是,对于特定的n次多项式,并不是没有根式求解的可能,最简单的就是x^n-1这个情形,有复数基础的人都知道它有n个根,均匀分布在复平面以原点为圆心、长度为1的圆周上。这些根是:
e^{\frac{k}{n} 2\pi i},k=1,2,...,n
什么?这根本没有根式表达?它们其实就是使\sqrt[n]{1}n个不同写法啊,只是因为一般默认\sqrt[n]{1}是正实数,才不能一视同仁的。

后记:
读者可以在这篇回答中一窥伽罗华理论的整体架构。文中有大量不加证明的引理、定理直接引用,以及许多并没有做明确定义但极其重要的概念(域扩张、极小多项式、同构、商群等等),还有一些关键性的并没有写进文中的概念(单扩张、域上的线性空间、可分/可离扩张、域同构、自同构等等),实际学习中的困难可以想象。但它的中心思想又这样精彩,值得付出这样的精力,由此可以看到伽罗华理论是一门多么精妙的数学。
伽罗华理论除了解答了方程可解性的历史难题,它的相关运用还成功地证明“古希腊三大几何问题”——立方倍积、化圆为方、三等分角都不可能解决,这些问题要作出的点都在以尺规作图为扩张方式的“拓展树”的缝隙里,因此不可能用尺规作图解决。伽罗华对应还成为了怀尔斯解决费马大定理的关键性工具。从数学领域的开拓来说,伽罗华理论成了群论、群表示论乃至抽象代数的最好引荐人,而现在这些领域的影响已经远远超出数学领域。将伽罗华理论视作近代数学的开端可谓实至名归。

有一次 Dror Bar-Natan 来卡内基梅隆大学给本科生讲座,我导师居然去听了,并且他也推荐我去。从那次讲座以后,我终于可以绕开抽象代数理论(域扩张、Galois 理论等等),向一个仅接触过复数的路人解释 Abel–Ruffini 定理了,即「为何五次方程没有求根公式」。如果你会编程,那还可以额外享受自行验证部分证明的乐趣。要知道,对于一般的本科教学,经过一学期群环域的轮番折磨,学生才可能在学期末触及 Abel–Ruffini 定理这个巅峰。

插播一则轶事,Dror Bar-Natan 在加拿大入籍的时候,发现需要宣誓:

I affirm that I will be faithful and bear true allegiance to Her Majesty Queen Elizabeth II, Queen of Canada, Her Heirs and Successors, and that I will faithfully observe the laws of Canada and fulfill my duties as a Canadian citizen.

他表示很乐意遵守法律、履行加拿大公民义务……但是向女王或者她的子嗣效忠?老子不干!于是 2012 年他和小伙伴组队上加拿大最高法院讲理去了。很不幸 2015 年最高法院驳回了上诉。最后,他和小伙伴在宣誓加入加拿大籍后公开否认誓言的前半部分。有兴趣入加拿大籍但又不想效忠女王的朋友,请移步 disavowal.ca 查看详细步骤。

言归正传,首先要明确「当我们在谈论求根公式时我们在谈论什么」。例如,求根公式x=\tfrac{1}{2}\left(-a+\sqrt{a^2-4b}\right) 给出任何二次方程x^2+ax+b=0 的一个根。所以,五次方程求根公式(如果存在的话)应当

  1. 给出任何五次方程x^5+ax^4+bx^3+cx^2+dx+e=0 的一个根;
  2. 并且是一个关于 a, b, c, d, e 且仅含加减乘除开方的代数表达式。

对于特定类型的五次方程,如x^5-a^5=0,虽然有一个仅含加减乘除开方的解 x = a,但这并不是我们要谈论的求根公式。

接下来的 Abel–Ruffini 定理的证明是基于 Vladimir Arnold 在 1963 年的拓扑证明(开启了拓扑 Galois 理论)。其他回答中最接近的应该是韩京俊的解答,我的回答将牺牲一小部分严谨性来换取可读性。

这个证明需要一位假想敌(想象一位你最希望打脸的朋友),他或她宣称拥有五次方程求根公式 x = f(a, b, c, d, e)(随便写的复杂公式,不要在意细节):

x=f(a,b,c,d,e)=\frac{3}{\frac{-b^3}{27a^3}+\frac{bc}{6a^2}-\frac{d}{2a}+\frac{2}{\left(\frac{-c^3}{27b^3}+\frac{cd}{6b^2}-\frac{e}{2b}\right)^2+\left(\frac{d}{3b}-\frac{c^2}{9b^2}\right)^2}}

我们按照如下计划去推翻这个公式:

  1. 随意选取五个复数 x1, …, x5 并构造五次方程x^5+ax^4+bx^3+cx^2+dx+e=0 使得其根恰是 x1, …, x5
  2. 将五次方程的系数 a, b, c, d, e 代入假想敌提供的公式中算出 x = f(a, b, c, d, e) 并展示 x 不在 x1, …, x5 中。

计划的第一步,在选定 x1, …, x5 后,可以通过展开 (x - x1)(x - x2)(x - x3)(x - x4)(x - x5) = 0得到想要的五次方程的系数,例如:a = - (x1 + x2 + x3 + x4 + x5), …, e = - x1 x2 x3 x4 x5。具体的系数与根之间的关系就是大家初中学的 Vieta 公式(韦达定理)。计划的第二步只需要机械式地代入计算 x 并比对 x1, …, x5 即可。

然而,这个计划并不一劳永逸——每次假想敌宣称有新的五次方程求根公式,我们都需要重新执行上面描述的计划去推翻。

升级版计划是让 x1, …, x5 动起来!想象如下运动:同时地,x1x2 移动,x2x3 移动,x3x4 移动,x4x5 移动。在运动的同时,我们

  1. 不断用 Vieta 公式计算系数 a, b, c, d, e 的值,
  2. 再不断代入 f(a, b, c, d, e) 计算 x 的值。

为方便起见,我们用数组 P = (2, 3, 4, 5, 1) 来表示所描述的运动,一般地,数组从左到右依次记录了 x1, …, x5 运动终点 x 的下标。这样让 x1, …, x5 交换位置的运动,我们称为置换 Permutation

因为整个运动只是将 x1, …, x5 换了换位置且 Vieta 公式关于 x1, …, x5 都是对称的,所以在运动后,a, b, c, d, e 都回到了起始的位置。示意图如下:

由于 f 在运动前后都代入了同样的 a, b, c, d, e,于是 x = f(a, b, c, d, e) 应当回到它起始的位置!慢着,如果 x 在运动开始前是 x1, …, x5 中的某个,不妨设是 x1,那么在连续运动的过程中 x 应该一直和 x1 保持一致,并在运动后落在原本 x2 的位置上。打脸成功!

细心的读者会反问:上面的证明压根没用到 5 次方程这个条件,那岂不是可以证明任何方程都没有求根公式了?我们读的一定是假的证明……

确实,以上论证存在缺陷——在计算 x = f(a, b, c, d, e) 的时候,忽视了公式含有开方的可能。

为了说明这个缺陷,我们将以上的论证应用在 2 次方程x^2+ax+b=0 和求根公式x=\tfrac{1}{2}\left(-a+\sqrt{a^2-4b}\right) 上。第一步,Vieta 公式告诉我们 a = - (x1 + x2), b = x1 x2;第二步中,先代入\Delta = a^2-4b=(x_1+x_2)^2-4x_1x_2=(x_1-x_2)^2 ,再开根得到 x1 - x2x2 - x1。想象将 x1x2 互换的运动,虽然 Δ 会回到起始的位置,但是 √Δ 为了保证运动的连续性必须盯住 x1 - x2 或盯住 x2 - x1,于是在 x1x2 互换后 √Δ 变成了自己的相反数。换个角度看,当 x1x2 互换时,Δ 绕原点转了 1 圈,于是 √Δ 只绕了 1 / 2 圈。

一般情况下,当复数 z 绕原点 k1 圈回到起始位置时,zk 次根只绕了 k1 / k 圈。

因此,回到 5 次方程的情况,如果 f(a, b, c, d, e)包含开方,那么升级版计划就不能保证 x 还能回到起始位置。当然,升级版计划是可以说明不出现开方的公式(例如那个复杂的随便写的公式)一定不是求根公式。这从一个侧面回答了「为何二至四次方程的求根公式里面必须出现开方」。

终极版计划将延续升级版的思路:合理制定 x1, …, x5 的移动路径,使得

  1. x1 不回到自己原来的位置;
  2. 系数 a, b, c, d, e 在某种意义上绕原点圈数(以下简称绕数 winding number)为 0。

为此,我们需要引入置换的复合 Composition 逆 Inverse 交换子 Commutator 三个概念。

两个置换的复合,就是将两个置换运动的录像连着播放:

置换的逆,就是把一个置换运动的录像倒着播放:

两个置换 P1, P2 的交换子定义为[P_1, P_2] := P_1 \cdot P_2\cdot P_1^{-1} \cdot P_2^{-1}。可以把交换子 [ P1, P2 ] 分解为如下 4 个过程:

  1. 先播放置换运动 P1 的录像;
  2. 连着播放置换运动 P2 的录像;
  3. 再倒放置换运动 P1 的录像;
  4. 最后倒放置换运动 P2 的录像。

如果假想敌宣称求根公式是x = \sqrt[3]{A} + \sqrt[3]{B} ,其中 A, Ba, b, c, d, e 的只含加减乘除的代数式。考虑在置换 P = [ P1, P2 ] 的作用下 A 的运动:在过程 1, 2 中假设 A 的绕数分别是 k1, k2,则在过程 3, 4 中倒放录像 A 的绕数分别是 -k1, -k2,于是 A 总绕数为 0,故\sqrt[3]{A} 回到起始位置。同理,\sqrt[3]{B} 也回到起始位置。综上,x 将回到起始位置。

如果假想敌宣称求根公式是x=\sqrt[3]{A+\sqrt{B}}+\sqrt[3]{C+\sqrt{D}} ,其中 A, B, C, D a, b, c, d, e 的只含加减乘除的代数式。令 P = [ P1, P2 ], P1 = [ P3, P4 ], P2 = [ P5, P6 ],也就是说 P = [ [ P3, P4 ], [ P5, P6 ] ]。因为 P1 = [ P3, P4 ] 是交换子,我们知道\sqrt{B}P1 作用下回到起始位置,于是A+\sqrt{B}P1 作用下回到起始位置;同理A+\sqrt{B}P2 作用下也回到起始位置。由于 P = [ P1, P2 ] 是交换子,故\sqrt[3]{A+\sqrt{B}}P 的作用下回到起始位置。以此类推,可得 x 将回到起始位置。

可以看出交换子的交换子可以处理两层开方的情形。一般地,交换子的交换子的……的交换子(默念 m 遍交换子)可以处理有 m 层开方的情形。

为了满足「根 x1 不回到自己原来的位置」这个条件,剩下的任务就是找到一个既移动 x1 又能表示成「交换子的交换子的……的交换子」的置换。记所有置换构成的集合为 S5,又记所有交换子,即 [ P1, P2 ](其中 P1, P2 来自 S5),构成的集合为 A5。下面的 Ruby 程序将计算 A5 和交换子的交换子构成的集合。

require 'set'

def compose(p1, p2)
  (1..5).map { |i| p2[p1[i - 1] - 1] }
end

def invert(p)
  (1..5).map { |i| p.index(i) + 1 }
end

def commutate(p1, p2)
  compose(compose(compose(p1, p2), invert(p1)), invert(p2))
end

s5 = Set.new (1..5).to_a.permutation.to_a
puts "#{s5.length} permutations: #{s5.inspect}"

a5 = Set.new
for p1 in s5
  for p2 in s5
    a5 << commutate(p1, p2)
  end
end
puts "#{a5.length} commutators: #{a5.inspect}"

commutators_of_a5 = Set.new
for p1 in a5
  for p2 in a5
    commutators_of_a5 << commutate(p1, p2)
  end
end
puts "#{commutators_of_a5.length} commutators of commutators: #{commutators_of_a5.inspect}"

输出:

120 permutations: #<Set: {[1, 2, 3, 4, 5], [1, 2, 3, 5, 4], [1, 2, 4, 3, 5], [1, 2, 4, 5, 3], [1, 2, 5, 3, 4], [1, 2, 5, 4, 3], [1, 3, 2, 4, 5], [1, 3, 2, 5, 4], [1, 3, 4, 2, 5], [1, 3, 4, 5, 2], [1, 3, 5, 2, 4], [1, 3, 5, 4, 2], [1, 4, 2, 3, 5], [1, 4, 2, 5, 3], [1, 4, 3, 2, 5], [1, 4, 3, 5, 2], [1, 4, 5, 2, 3], [1, 4, 5, 3, 2], [1, 5, 2, 3, 4], [1, 5, 2, 4, 3], [1, 5, 3, 2, 4], [1, 5, 3, 4, 2], [1, 5, 4, 2, 3], [1, 5, 4, 3, 2], [2, 1, 3, 4, 5], [2, 1, 3, 5, 4], [2, 1, 4, 3, 5], [2, 1, 4, 5, 3], [2, 1, 5, 3, 4], [2, 1, 5, 4, 3], [2, 3, 1, 4, 5], [2, 3, 1, 5, 4], [2, 3, 4, 1, 5], [2, 3, 4, 5, 1], [2, 3, 5, 1, 4], [2, 3, 5, 4, 1], [2, 4, 1, 3, 5], [2, 4, 1, 5, 3], [2, 4, 3, 1, 5], [2, 4, 3, 5, 1], [2, 4, 5, 1, 3], [2, 4, 5, 3, 1], [2, 5, 1, 3, 4], [2, 5, 1, 4, 3], [2, 5, 3, 1, 4], [2, 5, 3, 4, 1], [2, 5, 4, 1, 3], [2, 5, 4, 3, 1], [3, 1, 2, 4, 5], [3, 1, 2, 5, 4], [3, 1, 4, 2, 5], [3, 1, 4, 5, 2], [3, 1, 5, 2, 4], [3, 1, 5, 4, 2], [3, 2, 1, 4, 5], [3, 2, 1, 5, 4], [3, 2, 4, 1, 5], [3, 2, 4, 5, 1], [3, 2, 5, 1, 4], [3, 2, 5, 4, 1], [3, 4, 1, 2, 5], [3, 4, 1, 5, 2], [3, 4, 2, 1, 5], [3, 4, 2, 5, 1], [3, 4, 5, 1, 2], [3, 4, 5, 2, 1], [3, 5, 1, 2, 4], [3, 5, 1, 4, 2], [3, 5, 2, 1, 4], [3, 5, 2, 4, 1], [3, 5, 4, 1, 2], [3, 5, 4, 2, 1], [4, 1, 2, 3, 5], [4, 1, 2, 5, 3], [4, 1, 3, 2, 5], [4, 1, 3, 5, 2], [4, 1, 5, 2, 3], [4, 1, 5, 3, 2], [4, 2, 1, 3, 5], [4, 2, 1, 5, 3], [4, 2, 3, 1, 5], [4, 2, 3, 5, 1], [4, 2, 5, 1, 3], [4, 2, 5, 3, 1], [4, 3, 1, 2, 5], [4, 3, 1, 5, 2], [4, 3, 2, 1, 5], [4, 3, 2, 5, 1], [4, 3, 5, 1, 2], [4, 3, 5, 2, 1], [4, 5, 1, 2, 3], [4, 5, 1, 3, 2], [4, 5, 2, 1, 3], [4, 5, 2, 3, 1], [4, 5, 3, 1, 2], [4, 5, 3, 2, 1], [5, 1, 2, 3, 4], [5, 1, 2, 4, 3], [5, 1, 3, 2, 4], [5, 1, 3, 4, 2], [5, 1, 4, 2, 3], [5, 1, 4, 3, 2], [5, 2, 1, 3, 4], [5, 2, 1, 4, 3], [5, 2, 3, 1, 4], [5, 2, 3, 4, 1], [5, 2, 4, 1, 3], [5, 2, 4, 3, 1], [5, 3, 1, 2, 4], [5, 3, 1, 4, 2], [5, 3, 2, 1, 4], [5, 3, 2, 4, 1], [5, 3, 4, 1, 2], [5, 3, 4, 2, 1], [5, 4, 1, 2, 3], [5, 4, 1, 3, 2], [5, 4, 2, 1, 3], [5, 4, 2, 3, 1], [5, 4, 3, 1, 2], [5, 4, 3, 2, 1]}>
60 commutators: #<Set: {[1, 2, 3, 4, 5], [1, 2, 5, 3, 4], [1, 2, 4, 5, 3], [1, 5, 3, 2, 4], [1, 4, 3, 5, 2], [1, 3, 2, 5, 4], [5, 2, 3, 1, 4], [4, 2, 3, 5, 1], [3, 2, 1, 5, 4], [2, 1, 3, 5, 4], [1, 4, 2, 3, 5], [1, 5, 4, 3, 2], [1, 3, 4, 2, 5], [4, 2, 1, 3, 5], [5, 2, 4, 3, 1], [3, 2, 4, 1, 5], [2, 1, 4, 3, 5], [1, 5, 2, 4, 3], [1, 4, 5, 2, 3], [5, 2, 1, 4, 3], [4, 2, 5, 1, 3], [5, 1, 4, 2, 3], [4, 1, 2, 5, 3], [3, 1, 4, 5, 2], [2, 5, 4, 1, 3], [2, 4, 1, 5, 3], [2, 3, 4, 5, 1], [1, 3, 5, 4, 2], [3, 2, 5, 4, 1], [2, 5, 1, 3, 4], [2, 4, 5, 3, 1], [2, 3, 5, 1, 4], [5, 1, 2, 3, 4], [4, 1, 5, 3, 2], [3, 1, 5, 2, 4], [2, 1, 5, 4, 3], [3, 1, 2, 4, 5], [4, 3, 2, 1, 5], [5, 3, 2, 4, 1], [2, 3, 1, 4, 5], [4, 5, 2, 3, 1], [5, 4, 2, 1, 3], [4, 3, 5, 2, 1], [5, 3, 4, 1, 2], [4, 1, 3, 2, 5], [3, 4, 1, 2, 5], [3, 5, 4, 2, 1], [5, 3, 1, 2, 4], [5, 1, 3, 4, 2], [5, 4, 1, 3, 2], [4, 5, 3, 1, 2], [3, 5, 1, 4, 2], [3, 4, 5, 1, 2], [3, 4, 2, 5, 1], [5, 4, 3, 2, 1], [4, 5, 1, 2, 3], [3, 5, 2, 1, 4], [4, 3, 1, 5, 2], [2, 4, 3, 1, 5], [2, 5, 3, 4, 1]}>
60 commutators of commutators: #<Set: {[1, 2, 3, 4, 5], [1, 3, 2, 5, 4], [1, 4, 5, 2, 3], [1, 5, 4, 3, 2], [3, 2, 1, 5, 4], [4, 2, 5, 1, 3], [5, 2, 4, 3, 1], [1, 2, 4, 5, 3], [5, 2, 3, 1, 4], [4, 2, 1, 3, 5], [3, 2, 5, 4, 1], [1, 5, 3, 2, 4], [1, 4, 2, 3, 5], [1, 3, 5, 4, 2], [5, 1, 2, 3, 4], [2, 4, 5, 3, 1], [3, 1, 5, 2, 4], [2, 3, 5, 1, 4], [2, 5, 1, 3, 4], [4, 1, 5, 3, 2], [1, 2, 5, 3, 4], [3, 2, 4, 1, 5], [5, 2, 1, 4, 3], [4, 2, 3, 5, 1], [1, 3, 4, 2, 5], [1, 5, 2, 4, 3], [1, 4, 3, 5, 2], [2, 5, 4, 1, 3], [4, 1, 2, 5, 3], [2, 3, 4, 5, 1], [3, 1, 4, 5, 2], [5, 1, 4, 2, 3], [2, 4, 1, 5, 3], [2, 1, 3, 5, 4], [4, 5, 3, 1, 2], [5, 4, 3, 2, 1], [2, 5, 3, 4, 1], [3, 5, 2, 1, 4], [4, 5, 1, 2, 3], [3, 5, 4, 2, 1], [5, 3, 1, 2, 4], [4, 1, 3, 2, 5], [2, 4, 3, 1, 5], [3, 4, 2, 5, 1], [5, 4, 1, 3, 2], [4, 3, 1, 5, 2], [3, 4, 5, 1, 2], [5, 1, 3, 4, 2], [2, 3, 1, 4, 5], [3, 1, 2, 4, 5], [5, 3, 4, 1, 2], [4, 5, 2, 3, 1], [4, 3, 5, 2, 1], [5, 4, 2, 1, 3], [2, 1, 4, 3, 5], [3, 4, 1, 2, 5], [4, 3, 2, 1, 5], [2, 1, 5, 4, 3], [3, 5, 1, 4, 2], [5, 3, 2, 4, 1]}>

我们发现,交换子的交换子构成的集合与 A5 一模一样!也就是说,任取一个 A5 中的元素 P,比如说 P = (3, 2, 1, 5, 4) 将 x1 移动至 x3,都可以在 A5 中找到 P1, P2 使得 P = [ P1, P2 ],于是又能在 A5 中找到 P3, P4, P5, P6 使得 P1 = [ P3, P4 ], P2 = [ P5, P6 ],以此类推,子子孙孙无穷匮也,这样就完成了最终的任务。

附产品 1:考虑 1, 2, 3 间所有的置换、它们的交换子以及交换子的交换子,类似的程序输出

6 permutations: #<Set: {[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]}>
3 commutators: #<Set: {[1, 2, 3], [3, 1, 2], [2, 3, 1]}>
1 commutators of commutators: #<Set: {[1, 2, 3]}>

这说明三次方程求根公式一层开方是不够的,至少需要两层开方。

附产品 2:考虑 1, 2, 3, 4 间所有的置换、它们的交换子、交换子的交换子、交换子的交换子的交换子,类似的程序输出

24 permutations: #<Set: {[1, 2, 3, 4], [1, 2, 4, 3], [1, 3, 2, 4], [1, 3, 4, 2], [1, 4, 2, 3], [1, 4, 3, 2], [2, 1, 3, 4], [2, 1, 4, 3], [2, 3, 1, 4], [2, 3, 4, 1], [2, 4, 1, 3], [2, 4, 3, 1], [3, 1, 2, 4], [3, 1, 4, 2], [3, 2, 1, 4], [3, 2, 4, 1], [3, 4, 1, 2], [3, 4, 2, 1], [4, 1, 2, 3], [4, 1, 3, 2], [4, 2, 1, 3], [4, 2, 3, 1], [4, 3, 1, 2], [4, 3, 2, 1]}>
12 commutators: #<Set: {[1, 2, 3, 4], [1, 4, 2, 3], [1, 3, 4, 2], [4, 2, 1, 3], [3, 2, 4, 1], [2, 1, 4, 3], [3, 1, 2, 4], [4, 3, 2, 1], [2, 3, 1, 4], [4, 1, 3, 2], [3, 4, 1, 2], [2, 4, 3, 1]}>
4 commutators of commutators: #<Set: {[1, 2, 3, 4], [2, 1, 4, 3], [3, 4, 1, 2], [4, 3, 2, 1]}>
1 commutators of commutators of commutators: #<Set: {[1, 2, 3, 4]}>

这说明四次方程求根公式两层开方是不够的,至少需要三层开方。

最后,致修炼数学的读者,抽象代数还是要好好学的。

为什么?