§1.1 何谓代数
Hear your voice gently against the cold
I watch our shadows softly fold
Sudden flutters that I feel
Make this moment feel so real
三次方程
让我们跟随对三次方程通解的论述展开.
快进到辅助方程, 解辅助方程可以知道:
在接下来的公式 1.1.3 中, 我们知道了可以设:
此处看起来很神奇, 解出来的竟然能可以直接满足 \(u^3v^3 = \qty(-\frac{p}{3})^3\), 但我们一开始就是将这个代进去才得到的纯 \(u\) 的方程, 所以并不奇怪.
接下来适当的取立方根, 则可以令 \(uv=-\frac{p}{3}\), 从而得到三次方程的解.
适当的取立方根? 在中学阶段所学实数根语境中, 常常没有"选一个根"的自由, 结果要么唯一, 要么不存在. 然而在复数域中, 这恰有 \(n\) 个解, 即:
恰有 \(n\) 个 \(z\in \mathbb C\) 满足 \(z^n = c\), 其中 \(c\in \mathbb R \backslash \{0\}\).
这正是本节开头所陈述的代数基本定理告诉我们的事实. 尽管此刻我们还没有定义复数, 但沿用中学所知道的棣莫弗定理, 我们知道, 设复数 \(z_1 = r_1(\cos \theta_1 + \mathrm{i} \sin \theta_1), z_2 = r_2(\cos \theta_2 + \mathrm{i}\sin \theta_2)\), 则:
因此, 若设 \(\omega_n = \cos\qty(\frac{2\pi}{n}) + \mathrm{i}\sin\qty(\frac{2\pi}{n})\), 则 \(\omega_n^n = \cos\qty(2\pi) + \mathrm{i} \sin\qty(2\pi) = 1\).
进一步, 我们还有对于任意整数 \(k\) 总有 \(\qty(\omega_n^{k})^n = 1\), 于是我们可以断言:
若已知 \(\alpha^n = c\), 则 \(z^n = c\) 的所有解必形如 \(\omega_n^k\alpha\), 其中 \(k = 0, 1, \cdots, n-1\).
也就是说, 变化的只有前面的复数部分, 后面的实数部分仅指定长度且在 \(n\) 个根中都相同, 易于计算. 那么重要的就只有方程 \(z^n=1\) 的解. 我们称其解为 \(n\) 次单位根.
倘若 \(c \in \mathbb C\), 情况也不复杂.
如此再回看书中陈述:
命 \(\lambda := uv / \qty(-\frac{p}{3})\), 则 (1.1.3) 表明 \(\lambda^3=1\). 以 \(\lambda^{-1}v\) 代 \(v\) 或以 \(\lambda^{-1}u\) 代 \(u\), 即可确保 \(uv=-\frac{p}{3}\)....
这实际上就是微调解得的 \(u, v\) 前面的 \(\omega_3\) 的指数罢了. 接下来, 我们都将使用 \(\rho\) 代替 \(\omega_3\) 以贴合书中符号.
继续向下, 在寻求 \(X^3 + pX + q=0\) 的所有解时, 书中定义
这实际上就是 \(\omega_3\). 右侧的图正是所有三次单位根绘制在单位圆上的样子.
继续, 可以看到
\(u, \rho u, \rho^2 u\) 和 \(v, \rho v, \rho^2 v\) 这些立方根可以适当的排序, 记为 \(u_1, u_2, u_3\) 和 \(v_1, v_2, v_3\), 使得 \(u_iv_i = -\frac{p}{3}\) 对 \(i=1,2,3\) 皆成立...
考虑显式构造出这个排序. 知 \(uv = -\frac{p}{3}\). 因此 \((\rho u) \cdot (\rho^2 v) = (\rho^2 u)\cdot (\rho v) = \rho^3 \cdot uv = uv\) 即满足条件.
轮换
先前我们直接接受了 \(X = u_i + v_i\) 这样的拆分方式, 现在, 我们将要讨论究竟为什么要进行这样的拆解.
书中所讨论的根的置换给了一个提示: 通过拆解成 \(u_i, v_i\) 之和, 我们能得到两个独立的"轨道".
先计算试试:
这就有了 \(u_1 + v_1 = (2x_1 - x_2 - x_3) / 3\). 回忆中学所学过的 Vieta's Formula, \(x_1 + x_2 + x_3\) 应当等于原方程的二次项系数. 而由于一开始进行了一步配凑, 这总是 \(0\). 所以 \(u_1 + v_1 = x_1\).
后面的几项也是一样的. 这看起来比刚才的"拆分, 然后算出来是对的"有道理多了, 然而还是能更有道理一点.
接下来的内容, 阅读前, 请确保熟悉"轮换"的语言, 且必要时使用纸笔模拟, 充分理解后再看下一行.
并且, 这一节在接下来的内容中未必重要, 直到 10 章之后才会对这里进行进一步的讨论.
我已经尽力让语言变得易懂, 且照顾到所有的我想到的细节. 对许多读物中语焉不详的"分不清根的顺序"和"打破对称性"之类的陈述进行了恰当的严谨化. 我有自信采用了一种较好的陈述方式, 但我不保证一定能懂.
现在, 让我们从解方程最基本的内容开始, 更自然的叙述我们刚才得到的解法. 暂且忘掉刚才我们得到的东西!
要解方程, 首先要明确的便是: 我们容许什么样的操作? 不妨先假设, 我们只允许最基本的加减乘除.
随后, 要问: 我们知道什么? 我们所得到的是方程 \(X^n + a_1X^{n-1} + \cdots + a_{n-1}X + a_n = 0\). 知道且仅知道它的系数. 由代数基本定理, 我们知道它必然有 \(n\) 个根, 不妨设为 \(r_1, r_2, \cdots, r_n\). 接下来, Vieta's Formula 可以在根与系数之间建立联系, 即对任意正整数 \(k\), 有.
那么, 仅仅利用这样的信息, 能够解方程吗? 除了 \(n=1\) 的情况, 不能. 除非它是特殊的, 即使 \(n=2\).
以二次的情况为例, 我们可以证明不可能. 考量 \(X^2 - sX + t = 0\), Vieta's Formula 告诉我们的是 \(s = x_1 + x_2, t = x_1 x_2\).
可以执行的操作是使用 \(s, t\) 相互之间任意的加减乘除, 或与常数任意加减乘除, 我们定义进行这样的操作得到的结果是 \(s\) 和 \(t\) 的一个有理函数. 把所有 \(s\) 和 \(t\) 的有理函数所形成的宇宙记为 \(\mathbb Q(s, t)\). 通过有理函数你可以得到 \(s + t\), \(\qty(\frac{1}{10}s + t^2 - \frac{1}{7}st + 1)\), 或者 \(\frac{100s - 57t}{14s + 23t}\) 之类的东西. 数据是随便编的, 不管是什么, 只要它们能够通过有限次加减乘除得到就行.
由于 \(s, t\) 在交换 \(x_1, x_2\) 的时候不变(或说, 它们对称). 因此, \(\mathbb Q(s, t)\) 里的所有式子在交换 \(x_1, x_2\) 之后都不变. 今设 \(R(s, t) \in \mathbb Q(s, t)\) 能够表示 \(x_1\), 即 \(R(s, t) = x_1\), 交换 \(x_1, x_2\) 后左侧不变, 右侧变为 \(x_2\), 于是得到 \(x_1 = x_2\). 对于一般情况, 矛盾, 故不可能. 以自然语言来说, "我们没有办法分清 \(x_1\) 与 \(x_2\) 的顺序".
而我们之所以能够解二次方程, 是因为我们引入了根号. 或者更本质的说, 引入了不对称的东西. 考虑二次方程的判别式 \(d^2 = (x_1 - x_2)^2 = s^2-4t\). 注意, \(d^2 \in \mathbb Q(s, t)\), 但是 \(d = x_1 - x_2\) 不在 \(\mathbb Q(s, t)\) 中.
通过加入 \(d = x_1 - x_2=\sqrt{s^2 - 4t}\), 我们将 \(\mathbb Q(s, t)\) 扩充为了 \(\mathbb Q(s, t, \sqrt{s^2 - 4t})\). 此时交换 \(x_1, x_2\) 前后的 \(R(s, t)\) 不再一定保持值不变. 写出单个根才成为可能: \(x_1 = \frac{s + d}{2}, x_2 = \frac{s - d}{2}\).
因此, 我们是通过引入额外操作才能够解决原来所不能解决的问题的.
那么对于三次方程, 我们也要考虑如何消解其对称性. 仍然考虑 \(X^3 + pX + q = 0\) 这个化简后的形式. 此时我们已经有 \(x_1 + x_2 + x_3 = 0\), 继续使用 Vieta, 得到 \(p = x_1x_2 + x_2x_3 + x_1x_3, q = -x_1x_2x_3\).
此时情况则更进一步, 基于一些未来才会证明的结论, 此刻我们要考虑的变换是三轮换, 即 \((x_1, x_2, x_3) \rightarrow (x_3, x_1, x_2)\rightarrow (x_2, x_3, x_1)\). 注意, 其反向也包含在内 \((x_1, x_2, x_3)\rightarrow (x_2, x_3, x_1)\rightarrow (x_3, x_1, x_2)\).
仿照二次的情况, 加入 \(u = x_1 - x_2, v = x_2 - x_3\). 两个不对称量, 看起来够表达 \(x_1, x_2, x_3\) 了. 然而这么取并不行. 因为当前的变换是三轮换, 例如考虑 \(u=x_1 - x_2\), 它在 \((x_1, x_2, x_3)\rightarrow (x_3, x_1, x_2)\) 之后变成了 \(x_3 - x_1\), 也就是 \(-u-v\).
我们希望的是它的值变换, 而不是它的式子整个都变了! 例如 \(R(p, q, u, v) = p + q + u + v\) 在变换之后会变成 \(p + q - v\). 我们要的形式是 \(x_k = R(p, q, u, v)\), 右侧结构变了, 那它就不可能是根的一个稳定表达式.
所以, 三轮换之后, \(R(p, q, u, v)\) 发生的变化应该是 \(u\mapsto c_1 u, v\mapsto c_2 v\) 就足以描述(想想, 这里为什么不是加法), 而不是关于大幅变动代数式的结构. 因为左侧不大幅变动, 让 \(x_k\) 变成另一个根 \(x_m\). 这也正好符合我们轮换做的事情: 交换方程的根.
这里的乘法并不能无限乘, 它应该满足一些基本的原则: 三轮换在三次之后就会变回原来的根排列, 所以我们乘的数 \(c_1, c_2\) 必须满足 \(c_1^3 = 1, c_2^3 = 1\). 这显然有且只有 \(\rho\) 和 \(\rho^2\).
两个值, 刚好够我们凑两个不对称量了. 我们希望 \(u = k_1 x_1 + k_2 x_2 + k_3 x_3\) 满足 \(\rho u = k_1 x_2 + k_2 x_3 + k_3 x_1\), 实验一下, 就可以得到 \(u = \frac{x_1 + \rho^2x_2 + \rho x_3}{3}\). 同样, 我们得到 \(v =\frac{x_1 + \rho x_2 + \rho^2 x_3}{3}\).
如此, 进行一次 \((x_1, x_2, x_3) \rightarrow (x_2, x_3, x_1)\) 对 \(u, v\) 的作用就是 \(u \mapsto \rho u, v\mapsto \rho^2 v\)(注意这里轮换的方向, 朝左, 还有 \(u,v\) 变换对应的轮换方向要一致).
终于, 我们得到了三次方程的通解! 我们只需回到这一节的开头所给出的内容, 就知道 \(x_1, x_2, x_3\) 是如何通过我们刚才得到的 \(u\) 和 \(v\) 表出的了! 至于如何用系数表出 \(u,v\), 这是我们在原书上的 P20 就做过的事.
想要求解更加高次的方程, 我们需要进一步的了解对称性. 然而我们还没有恰当的语言来描述"对称"这件事, 对更大的情况难以处理, 所以就到此为止.