跳过正文

关于 Eisenstein 判别法的笔记

·1757 字·4 分钟·
数学 高等代数 多项式 可约 Eisenstein
Eclipse
作者
Eclipse
今夜,灵魂彼此相拥

第一次学习高代的时候, 书上有一个 Eisenstein 判别法, 用来判别多项式在 \( \mathbb{Q} \) 上是否可约. 定理的条件是这样的

定理 1.1 (Eisenstein 判别法)

对整系数多项式 \( p(x) = a_n x^n + a_{n - 1} x^{n - 1} + \cdots + a_0 \), 若存在素数 \( m \in \mathbb{Z} \), 满足

  1. \( m \nmid a_n \);
  2. \( m \mid a_{n - 1}, \cdots, a_0 \);
  3. \( m^2 \nmid a_{0} \) 则 \( p(x) \) 在有理数域上不可约.

初学这个定理, 完全不理解定理是什么意思. 还有一个问题是, 判别法中的素数应该怎么选取, 有时为了使用定理还需要做变量替换, 这个替换应该怎么找. 因为后来也一直没用过这个定理, 所以也没有去思考过. 直到我做高等代数的助教, 自觉不得不研究一下定理的含义(也是为了丰富习题课内容), 特别还需要讲清楚怎么使用定理. 后来在网上看到了一些很好的解释, 找了点论文, 终于理解了定理, 以及如何找素数.

理念
#

简单来说, Eisenstein 判别法可以总结为一句话:

在 \(\mathbb{Z}_m \) 上看, 单项式的分解只能是两个单项式的乘积.

前半句是说要把多项式放在模 \( m \) 域上看. 在 Eisenstein 判别法的条件下, 由于除了最高次项的系数都能被 \( m \) 整除, 所以放在 \( \mathbb{Z}_m \) 上时, 多项式只剩下最高项, 即

$$ p(x) \equiv [a_n]x^n \mathrm{\ mod\ } m, $$

而后半句是说, 单项式只能分解为两个单项式的乘积. 这是因为 \( \mathbb{Z}_m \) 是域, 没有零因子, 所以如果有 \( a(x), b(x) \in \mathbb{Z}_m[x] \), \( p(x) = a(x)b(x) \), 并且 \( a(x) \) 不是单项式, 那么 \( a(x) \) 最低次项和 \( b(x) \) 最低次项的乘积一定不为 \( 0 \), 且不会被其他项消掉. 因此其乘积不可能是单项式.

这说明了为什么 Eisenstein 判别法中必须用素数. 如果是合数, 那么单项式有可能可以分解为两个非单项式的乘积, 例如在 \( \mathbb{Z}_4 \) 上, \( x^4 = (x^2 + 2)(x^2 - 2) \).

也就是说, 因为在域上的单项式只能被分解为两个单项式的乘积, 所以如果某个多项式 \( p(x) \) 放在 \( \mathbb{Z}_m \) 上是单项式, 那么它只要在有理数域(因为这里是整系数多项式, 所以等于是整数环)上可约, 那么分解后的两个多项式在 \( \mathbb{Z}_m \) 上必须也是单项式. 因此两个因式的常数项必须被 \( m \) 整除. 那么 \( p(x) \) 的常数项作为两个因式常数项的乘积, 自然可以被 \( m^2 \) 整除. 这是可约的推论, 也就是一个必要条件. 所以只要不满足这个条件, 原来多项式一定不可约.

最后再次总结一下, 三个条件的意义分别是:

  • (1. + 2.) \( m \nmid a_n \), \( m \mid a_{n - 1}, \cdots, a_0 \): 多项式在 \( \mathbb{Z}_m \) 上首项非零, 其余项皆为零, 即为单项式;
  • \( m^2 \nmid a_{0} \): 多项式的常数项不能拆成两个 \( m \) 之倍数的乘积, 所以不能在有理数域可约.

寻找素数 \( m \)
#

这里主要从做题的角度考虑. 如果题目里要判断一个整系数多项式是否可约, 那基本上就等于告诉我们: 这个多项式不可约, 请用 Eisenstein 判别法. 所以我们只需要找一个合适的 \( m \). 同时一般来说题目给出的多项式不能一眼看出素数, 还需要做一次变量代换(一般是 \( x \rightarrow y \pm 1 \)).

第一种方法是直接利用定理的条件, 例如 \( p(x) = x^4 + x^3 + x^2 + 6x + 1 \). 设代换为 \( x \rightarrow y + a \), 那么展开后得到

$$ p(x) = q(y) = x^4 + (4a + 1)x^3 + (9a + 1)x^2 + (9a + 6)x + (9a + 1), $$

那么如果存在 \( m \), 应该有同余方程

$$ \begin{aligned} 4a + 1 \equiv{}& 0 (\mathrm{mod\ } m) \\ 9a + 1 \equiv{}& 0 (\mathrm{mod\ } m) \\ 9a + 6 \equiv{}& 0 (\mathrm{mod\ } m) \\ 9a + 1 \not\equiv{}& 0 (\mathrm{mod\ } m^2) \\ \end{aligned} $$

由第二、第三个方程可以得到 \( 5 \equiv 0 (\mathrm{mod } m) \), 所以 \( m = 5, a = 1 \). 因此这个多项式在有理数域不可约.

另一种方法是直接确定几个可能的素数, 再去尝试. 方法是计算多项式的判别式. 因为 Eisenstein 判别法中的素数 \( m \) 需要让多项式变成一个单项式(哪怕是需要做变量替换才能变成 \( a_nx^n \) 形的, 其实也是单项式, 只不过是 \( a_n(x + t)^n \) 这样), 所以在 \( \mathrm{Z}_m \) 上多项式一定是有重根的, 因此其判别式一定为 \( 0 \). 而这个判别式为 \( 0 \) 是在 \( \mathrm{Z}_m \) 上, 所以等价于说 \( p(x) \) 在 \( \mathbb{Q} \) 上的判别式能被 \( m \) 整除. 因此可行的素数一定是 \( p(x) \) 判别式的因子.

例如 \( p(x) = x^6 + x^3 + 1 \). 这是一个很好的用判别式来确定素数的例子, 因为一般来说判别式要用结式来计算, 很麻烦, 但是这个很好计算. 这里可以用根来计算. 我们知道判别式可以用结式来计算, 判别式和「多项式和其导数的结式」只相差一些符号和首项的次方, 但是在这里首项为 \( 1 \), 所以不影响. 而如果知道其中一个多项式的根, 可以代入另一个多项式来计算结式. 记 \( q(x) = p^\prime(x) = 6x^5 + 3x^2 \), 那么容易看出 \( q(x) \) 的五个根分别是 \( 0, 0, \omega_1, \omega_2, \omega_3 \), 这里 \( 2\omega_i + 1 = 0 \). 那么

$$ R(f, g) = (-1)^{6 \times 5} \times 6^6 \times p(0) \times p(0) \times \prod_{i = 1}^{3}p(\omega_i), $$

因为 \( 2\omega_i^3 + 1 = 0 \), 所以 \( p(\omega_i) = \dfrac{3}{4} \). 因此 \( R(f, g) = 3^9 \), 可行的 \( m \) 只有 \( 3 \). 那么用 \( 3 \) 去测试一下. 我们需要找一个 \( a \) 让 \( x \rightarrow y + a \) 之后, 可以把三次项消掉. 经过尝试可以取 \( a = 1 \). 这样可以说明原多项式不可约.