跟随天才们的步伐,五步推导出一元三次方程求根公式

· · 算法·理论

Part -1 捉虫名单

因为本文计算量极大,难免会有一些纰漏。下面是为本文章捉虫的名单:

zxh_qwq 为文章中拉格朗日预解式中的一个错误做了修正。她还对第一部分中的契尔恩豪森转换给出了完整形式,还补充了三次单位根 \omega 的推导!

litjohn 为这篇文章提出了修改意见,详见评论区。

我妈帮我找错别字。

Part 0 前言

原本想投到学习文化课的,结果投不了,于是投了算法理论。

本文内容是基于《数学女孩 5:伽罗瓦理论》写的,同时强烈推荐同系列的所有书。

本文中也加入了作者自己的一些想法,如有错误请指出。

本文中很多计算的部分大家可以跟着做做,很有趣。绝对不是因为作者懒得打 \LaTeX 想偷懒!

如果想和这篇文章一起推导求根方程,你需要:

Part 1 简化方程(契尔恩豪森转换)

这一步的目标:把方程 ay^3+by^2+cy+d=0(此处使用 y 列方程是为了接下来的计算,我们很快就看不到 y 了)转换成 x^3+px+q=0 的形式。

这一步计算量偏高。

我们通过将 y=x-\frac{b}{3a} 带入方程来做到这点。计算过程如下:

首先直接将 y=x-\frac{b}{3a} 代入,我们可以得到:

a(x-\dfrac{b}{3a})^3+b(x-\dfrac{b}{3a})^2+c(x-\dfrac{b}{3a})+d=0

利用完全平方公式和完全立方公式展开,得到:

a(x^3-\dfrac{bx^2}{a}+\dfrac{b^2x}{3a^2}-\dfrac{b^3}{27a^3})+b(x^2-\dfrac{2bx}{3a}+\dfrac{b^2}{9a^2})+c(x-\dfrac{b}{3a})+d=0

展开式子:

ax^3-bx^2+\dfrac{b^2}{3a}x-\dfrac{b^3}{27a^2}+bx^2-\dfrac{2b^2}{3a}+\dfrac{b^3}{9a^2}+cx-\dfrac{bc}{3a}+d=0

合并同类项,顺便整理一下式子:

ax^3-\dfrac{b^2-3ac}{3a}x+\dfrac{2b^3-9abc+27a^2d}{27a^2}=0

当然我们还需要两边同时除以三次项系数 a

x^3-\dfrac{b^2-3ac}{3a^2}x+\dfrac{2b^3-9abc+27a^2d}{27a^3}=0

然后我们就有了 pq

p=-\dfrac{b^2-3ac}{3a^2} \\ q=\dfrac{2b^3-9abc+27a^2d}{27a^3} \end{cases}

至此我们对方程的化简工作完成,二次项谜一般地消失了。可是让我们思考另外一个问题:为什么这样会消掉二次项?这个神奇转换 x-\frac{b}{3a} 到底是怎么得来的?这一点书本并没有说,但是我们可以做出一些基础的猜想。

学过二次函数的大家可能会对式子中的 -\frac{b}{3a} 比较敏感(如果你没有学过二次函数,二次函数的顶点坐标是(-\frac{b}{2a}, \frac{4ac - b^2}{4a}))。实际上这并非巧合,我们将 y=x-\frac{b}{2a} 代入 ay^2+by+c=0 可以得到 ax^2+\frac{b^2-2ab^2+4ca^2}{4a^2}=0,一次项消失了!

当然这只是一个例子,关于具体原理作者也不太清楚(哭),但是作者找到了一篇知乎上的专栏,可以供大家参考,所以我们先回到正题,继续解我们的方程。

upd:感谢 zxh_qwq 对变换的补充!

方程 ax^3+bx^2+cx+d=0

e=\dfrac{b}{3a},f=\dfrac{c}{a},g=\dfrac{d}{a}

那么原式等同于 x^3+3ex^2+3e^2x+e^3-3e^2x-e^3+fx+g=0

(x+e)^3-3e^2x-e^3+fx+g=0

\therefore (x+e)^3+(x+e)(3e^2+f)-e(f-3e^2)+g-e^3=0 \therefore (x+e)^3+(x+e)(3e^2+f)-ef+2e^3+g=0

y=x+e,m=3e^2+f,n=-ef+2e^3+g

原式等同于 y^3+my+n=0,消掉二次项。

upd:感谢 litjohn 给出的修改建议。

在完成这篇文章后作者对这部分的内容重新进行了思考,结合了 Deepseek 完成了接下来对这一步动机的解释。

实际上,当 \alpha+\beta+\gamma=0 时,根的关系会大幅简化(参考 Part 2 韦达定理),这为后面进一步的消参做了铺垫。而 y=x-\frac{b}{3a} 的本质是平移坐标系,使根的“平均数”落在原点,正如二次函数中 x=-\frac{b}{2a} 对应顶点。至于为什么是 -\frac{b}{3a}?作者有一个更靠谱点的猜测:在未对方程进行任何处理时,根据韦达定理我们有方程的三根平均数为 -\frac{b}{3a}

Part 2 根与系数的关系(韦达定理的推广)

这一步的目标:假设 x^3+px+q 的解为 x=\alpha,\beta,\gamma,求出根与系数的关系。

我们使用待定系数法。既然方程的解为 x=\alpha,\beta,\gamma,三次项又为 1,我们就可以通过展开 (x-\alpha)(x-\beta)(x-\gamma)=0 来做到这一点。计算过程不难,这里直接把展开后的结果放出来:

x^3-(\alpha+\beta+\gamma)x^2+(\alpha\beta+\beta\gamma+\alpha\gamma)x-\alpha\beta\gamma=0

结果很漂亮,我们可以得到:

0=\alpha+\beta+\gamma \\ p=\alpha\beta+\beta\gamma+\alpha\gamma \\ -q=\alpha\beta\gamma \end{cases}

Part 3 LR(拉格朗日预解式)

这一步的目标:我们对 L,R 的定义如下:

L=\omega\alpha+\omega^2\beta+\gamma \\ R=\omega^2\alpha+\omega\beta+\gamma \end{cases}

我们需要用 LR 表示 \alpha,\beta,\gamma。其中,\omega 为三次单位根 -\frac{1}{2}+\frac{\sqrt{3}}{2}\operatorname{i},具有 \omega^3=11+\omega+\omega^2=0 的特点。

看起来两个方程解不出来,但是别忘了刚才我们还有根与系数的关系 0=\alpha+\beta+\gamma

于是我们联立方程,就有了:

L=\omega\alpha+\omega^2\beta+\gamma \\ R=\omega^2\alpha+\omega\beta+\gamma\\ 0=\alpha+\beta+\gamma \end{cases}

如果你数感比较敏锐,大概会发现:

L=(\omega^1)^1\alpha+(\omega^1)^2\beta+(\omega^1)^3\gamma \\ R=(\omega^2)^1\alpha+(\omega^2)^2\beta+(\omega^2)^3\gamma\\ 0=(\omega^3)^1\alpha+(\omega^3)^2\beta+(\omega^3)^3\gamma \end{cases}

实际上这东西有一个名字,就是这部分的标题:拉格朗日预解式。

L_3(1)=(\omega^1)^1\alpha+(\omega^1)^2\beta+(\omega^1)^3\gamma \\ L_3(2)=(\omega^2)^1\alpha+(\omega^2)^2\beta+(\omega^2)^3\gamma\\ L_3(3)=(\omega^3)^1\alpha+(\omega^3)^2\beta+(\omega^3)^3\gamma \end{cases}

我们回到解方程组的正题。

L=\omega\alpha+\omega^2\beta+\gamma\ \ \ \cdots\textcircled{1} \\ R=\omega^2\alpha+\omega\beta+\gamma\ \ \ \cdots\textcircled{2}\\ 0=\alpha+\beta+\gamma\ \ \ \cdots\textcircled{3} \end{cases}

利用 1+\omega+\omega^2=0 的性质,我们可以进行很方便的消元。\textcircled{1}+\textcircled{2}+\textcircled{3} 可以得出 \gamma\omega\textcircled{1}+\omega^2\textcircled{2}+\textcircled{3} 可以得出 \beta\omega^2\textcircled{1}+\omega\textcircled{2}+\textcircled{3} 可以得出 \alpha。具体计算过程并不复杂,把结果放在下面:

\alpha= \dfrac{\omega^2L+\omega R}{3}\\ \beta=\dfrac{\omega L+\omega^2R}{3}\\ \gamma=\dfrac{L+R}{3} \end{cases}

这一步使得我们可以用 LR 来表示解,而接下来我们就要来求解 LR,把所有东西串在一起。

upd:

这一步是解出求根公式的关键一步,下面是 Deepseek 对这一步的理解:

为何需要拉格朗日预解式?
直接处理 \alpha,\beta,\gamma 的复杂关系如同解开一团乱麻。而 L=\omega\alpha+\omega^2\beta+\gammaR=\omega^2\alpha+\omega\beta+\gamma 是精心设计的“线头”:

  1. 置换对称性:当 \alpha,\beta,\gamma 循环置换时,L^3R^3 的值保持不变(仅顺序交换)
  2. 降次桥梁L^3+R^3L^3R^3 可完全用系数 p,q 表示(Part 4),进而将三次方程问题转化为二次方程问题!
    注:此构造是拉格朗日的天才洞见,我们通过验证可体会其精妙。

事实上,本文参考的《数学女孩 5:伽罗瓦理论》在求根公式的推导之后就讨论了拉格朗日预解式的置换对称性,由于作者又笨又懒还看不懂给跳过了,现在补上。

Part 4 LR 的立方和积(对于三次单位根的性质的应用)

这一步的目标:用 p,q 表示 L^3+R^3,L^3R^3

这一步需要一些思维和数学技巧。

Part 4.1 立方和

提示:L^3 + R^3=(L+R)(L+\omega R)(L+\omega^2R) 恒成立

我们先来证明一下刚才这个恒等式。并不复杂:

(L+R)(L+\omega R)(L+\omega^2R)=L^3+(\omega^2+\omega+1)RL^2+(\omega^2+\omega+1)R^2L+R^3=L^3+R^3

接下来问题就是怎么去表示 L+R,L+\omega R,L+\omega^2R。考虑到我们在研究根与系数的关系时已经建立了 \alpha,\beta,\gammap,q 之间的关系,刚才还用 L,R 表示了 \alpha,\beta,\gamma,我们考虑从 \alpha,\beta,\gamma 入手。注意到 \omega^3=1 的特性,这给了我们很大的操作空间。即使你在前面的步骤中都没有参与计算,这也是一个很有趣的小谜题!

现在公布答案:L+R=3\gamma,L+\omega R=3\omega^2\beta,L+\omega^2R=3\omega\alpha,大家可以自行验证。

所以我们就有 L^3+R^3=(L+R)(L+\omega R)(L+\omega^2R)=27\alpha\beta\gamma=-27q

Part 4.2 立方积

这一部分相对比较暴力,可以选择分别用定义式求出 L^3,R^3 之后再乘一起,也可以先求出 LR 之后再取立方。后面的方法计算量更小一下,我们采用后面的方法。

LR=(\omega\alpha+\omega^2\beta+\gamma)(\omega^2\alpha+\omega\beta+\gamma)=\alpha^2+\beta^2+\gamma^2-p

这里 \alpha^2+\beta^2+\gamma^2 有点难搞,我们可以使用 (\alpha+\beta+\gamma)^2-2(\alpha\beta+\beta\gamma+\alpha\gamma),结果算出来是 -2p,所以我们就有 LR=-3p,L^3R^3=-27p^3

upd:

我们可以发现,令人讨厌的 \alpha,\beta,\gamma 在这一步消失了,而这不是巧合!对称性理论表明:任何在根置换下不变的表达式,必能用方程系数表示。L^3R^3 正是这样的“不变量”,它们是连接根与系数的天然桥梁。

Part 5 从 L,R 到解(二次方程的求根公式)

我们前面忙活了好久算出来了 L^3+R^3L^3R^3 这两个看起来没啥用的东西,但是你在看眼它们的形式:x_1+x_2,x_1x_2 你看眼像不像它两?我相信任何一个学过一元二次方程的人都可以看出现在我们要干啥了:解一元二次方程 X^2+27qX-27p^3=0,解出来之后一根为 L^3,另外一根即为 R^3。这时我们非要求三次方的意义也出现了,把 L^3R^3 求出来之后开立方根即得 L,R。我们直接带入二次方程求根公式,得到:

L=\sqrt[3]{A+\sqrt{\Delta}},R=\sqrt[3]{A-\sqrt{\Delta}}

其中 L,R 位置可以对调,还有

A=-\dfrac{27q}{2},\Delta=(\dfrac{27q}{2})^2+27p^3

最后我们只需要把 p,q 代入 A,\Delta 的表达式,再把 A,\Delta 的表达式代入 L,R 的表达式,最后把 L,R 的表达式代入到 \alpha,\beta,\gamma 那里就可以得出求根公式了!顺带一提,不要忘记把第一步时欠的 -\frac{b}{3a} 搞回去了。

Part 5+1 最终成果

注:原本不应该搞这么多变量的,作者懒得代入了。

\alpha= \dfrac{\omega^2\sqrt[3]{A+\sqrt{\Delta}}+\omega \sqrt[3]{A-\sqrt{\Delta}}}{3}-\dfrac{b}{3a}\\ \beta=\dfrac{\omega \sqrt[3]{A+\sqrt{\Delta}}+\omega^2\sqrt[3]{A-\sqrt{\Delta}}}{3}-\dfrac{b}{3a}\\ \gamma=\dfrac{\sqrt[3]{A+\sqrt{\Delta}}+\sqrt[3]{A-\sqrt{\Delta}}}{3}-\dfrac{b}{3a} \end{cases}

其中,

\omega=-\frac{1}{2}+\frac{\sqrt{3}}{2}\operatorname{i}\\ A=-\dfrac{27q}{2}\\ \Delta=(\dfrac{27q}{2})^2+27p^3 \end{cases}

其中,

p=-\dfrac{b^2-3ac}{3a^2} \\ q=\dfrac{2b^3-9abc+27a^2d}{27a^3} \end{cases}

完结撒花!

upd:

回顾整个推导,我们通过平移创造对称性(Part 1),利用韦达定理描述对称性(Part 2),再通过拉格朗日预解式挖掘更深层的对称性(Part 3-4),最终借二次方程反解(Part 5)。这揭示了一个深刻的思想:解方程的本质,是寻找隐藏的对称结构。不得不说,这是一场在天才设计的路径上,亲手验证数学之美的旅程。

Part ? 对称性的征程(群论,upd)

这部分有关求根公式推导过程的背后原理,对拉格朗日的天才洞见进行了部分解释,需要部分抽象代数知识储备,有兴趣的读者可以阅读。

卡茨在《数学史通论》中是这么说的:

拉格朗日还考虑了其他一些求解三次方程的方法,并发现在各类情形下都同样潜在着这种思想。每种情形下的三个根都能导出一个有理表达式,它在六个可能的置换下仅有两个值,这说明该表达式满足一个二次方程。

而这种思想,就是对称性,或者用学名,群论。

其实用心的读者不难发现,这个求根方程推导过程中最天才的地方在于 LR。如果没有了这些提示,大家可能可以自己依靠计算的毅力完成前几步,但是这个像是“凭空”冒出来的 LR 却是解方程的关键,而如果我们深究下去,就可以抓住群论的线头。

我们回到拉格朗日预解式。

L_3(1)=(\omega^1)^1\alpha+(\omega^1)^2\beta+(\omega^1)^3\gamma \\ L_3(2)=(\omega^2)^1\alpha+(\omega^2)^2\beta+(\omega^2)^3\gamma\\ L_3(3)=(\omega^3)^1\alpha+(\omega^3)^2\beta+(\omega^3)^3\gamma \end{cases}

找规律可以找出拉格朗日预解式背后的规律:

L_n(k)=\sum^n_{i=1}\zeta_n^{ki}\alpha_i

我们刚才计算 L^3R^3 的时候先计算了 LR,而这次如果我们计算 L^3R^3,并对根进行置换,我们会发现:

这实际上告诉了我们 L^3R^3 同属于系数域。它们还共轭——我们前文所提的方程 X^3-(L^3+R^3)X+L^3R^3 正是它们的轭。

接下来,我们也通过拉格朗日预解式对一元二次方程求根来看看。

根据拉格朗日预解式的定义可得

L_2(1)=-\alpha+\beta \\ L_2(2)=\alpha+\beta \end{cases}

都进行平方。

L_2(1)^2=(-\alpha+\beta)^2 \\ L_2(2)=(\alpha+\beta)^2 \end{cases}

展开 L_2(1)^2,可以得到 (\alpha+\beta)^2-4\alpha\beta。如果我们套用韦达定理,那么:\frac{b^2-4ac}{a^2} 出现了二次方程的判别式。

设系数域为 K,那么二次方程的解属于 K(\sqrt{b^2-4ac}),而这个域可以用 K(L_2(1)) 来表示。L_2(1)^2,L_2(2)^2 都是解的对称多项式,而对称多项式自然可以用解的基本对称多项式 \alpha+\beta,\alpha\beta 来表示,也就是能用系数的有理式来表示。

Part ?+1 一些收尾

比解方程更重要的是看穿式子的本质,而伽罗瓦发明的群论恰好是看穿本质的有力工具。

我不会升华主题,所以放两张书中的截图,侵删。

这篇文章水了 9400 多字,求个点赞(