附录8 - 多项式重因式判定
本章研究如何判别多项式有重因式
一、 引入工具:什么是“形式导数”?
在常规微积分中,导数是通过“极限”定义的。但在代数的世界里,我们可以抛弃极限,直接把导数当成一种对多项式系数的操作规则(算子),这就叫作形式导数 (Formal Derivative)。
对于任意多项式 f(x)=anxn+an−1xn−1+⋯+a1x+a0,我们直接规定它的形式导数为:
f′(x)=nanxn−1+(n−1)an−1xn−2+⋯+a1
由于这只是一种“系数乘法与指数递减”的机械操作,我们可以完全不需要“连续”、“极限”等概念。
容易证明,形式导数完美继承了常规导数的两大核心运算法则:
加法法则: (f(x)+g(x))′=f′(x)+g′(x)
乘法法则: (f(x)g(x))′=f′(x)g(x)+f(x)g′(x)
链式法则: (f(g(x)))′=f′(g(x))⋅g′(x)
首先证明“单项式”乘以“单项式”的情况
设 u(x)=axm,v(x)=bxn。(其中 a,b 是常数,m,n 是非负整数)。
u(x)v(x)=(axm)(bxn)=abxm+n
(u(x)v(x))′=(m+n)abxm+n−1
u′(x)v(x)+u(x)v′(x)=(maxm−1)(bxn)+(axm)(nbxn−1)
=mabxm+n−1+nabxm+n−1=(m+n)abxm+n−1=(u(x)v(x))′
再证明多项式的情况
设 f(x)=∑ur(x), g(x)=∑vs(x)
于是 f′(x)=∑ur′(x), g′(x)=∑vs′(x)
(f(x)g(x))′=(∑ur(x)vs(x))′=∑(ur(x)vs(x))′=∑(ur′(x)vs(x)+ur(x)vs′(x))
=∑ur′(x)vs(x)+∑ur(x)vs′(x)=f′(x)g(x)+f(x)g′(x)
第一步:证明引理 (g(x)k)′=k⋅g(x)k−1⋅g′(x)
我们对正整数 k 使用数学归纳法。这个引理的本质,就是把乘法法则连续使用 k 次。
-
当 k=1 时:
左边 = (g(x)1)′=g′(x)
右边 = 1⋅g(x)0⋅g′(x)=g′(x)
左边等于右边,结论成立。
-
假设当 k=m 时,结论成立,即:
(g(x)m)′=m⋅g(x)m−1⋅g′(x)
-
我们来证明当 k=m+1 时,结论也成立:
我们要对 g(x)m+1 求导。我们可以把它拆分成两个多项式相乘:
(g(x)m+1)′=(g(x)m⋅g(x))′
现在,我们对这个乘积使用上一节刚刚严谨证明过的乘法法则 (uv)′=u′v+uv′:
(g(x)m⋅g(x))′=(g(x)m)′⋅g(x)+g(x)m⋅g′(x)
把我们在第 2 步里的归纳假设代入到 (g(x)m)′ 中:
=[m⋅g(x)m−1⋅g′(x)]⋅g(x)+g(x)m⋅g′(x)
合并前面项中的 g(x)m−1 和 g(x):
=m⋅g(x)m⋅g′(x)+g(x)m⋅g′(x)
提取公因式 g(x)m⋅g′(x):
=(m+1)⋅g(x)m⋅g′(x)
这正是 k=m+1 时的公式形式!根据数学归纳法,引理对于任意正整数 k 都完全成立。
第二步:推广到任意多项式 f(x)
设任意多项式 f(x) 的一般形式为:
f(x)=∑i=0naixi
根据形式导数的定义,其导数 f′(x) 可以表示为:
f′(x)=∑i=1niaixi−1
(注:由于常数项 a0 的导数为 0,求和的下限自动从 i=1 开始。)
现在,我们将 g(x) 代入 f(x),构造复合多项式:
f(g(x))=∑i=0nai(g(x))i
对上式两边同时求形式导数。根据形式导数的线性性质(求导运算与加法、常数乘法可交换),我们可以将导数符号直接移进求和号内部:
(f(g(x)))′=∑i=0n(ai(g(x))i)′=∑i=1nai((g(x))i)′
利用在第一步中证明的引理,将单项式的复合导数 ((g(x))i)′=i⋅g(x)i−1⋅g′(x) 代入:
(f(g(x)))′=∑i=1nai[i⋅g(x)i−1⋅g′(x)]
观察求和式内部,因子 g′(x) 与求和变量 i 无关。利用乘法分配律,我们可以将 g′(x) 提取到求和符号的外面:
(f(g(x)))′=(∑i=1niai(g(x))i−1)⋅g′(x)
最后,对比我们在开头写出的 f′(x) 表达式。括号里的求和式,完美等价于将 f′(x) 中的自变量 x 整体替换为 g(x),即 f′(g(x))。由此得出最终结论:
(f(g(x)))′=f′(g(x))⋅g′(x)
证明完成。
因为形式导数的定义,加法法则、乘法法则、链式法则,都只涉及乘法和加法,因此在模 p 的多项式中
形式导数的定义、加法法则、乘法法则、链式法则,都同样适用。
二、 重因式判别定理及证明
定理陈述:对于多项式 f(x),它含有重因式(即存在次数大于等于 1 的多项式 P(x) 使得 P(x)k 整除 f(x) 且 k≥2)的充分必要条件是:f(x) 与其形式导数 f′(x) 有非常数的公因式。换言之,它们的最大公约式 gcd(f(x),f′(x))=1。
- 说明:如无特殊说明,这里的判别定理及证明过程,对普通多项式和模 p 意义下的多项式同样适用
- 证明“必要性”(如果有重因式,则 gcd=1):
假设 f(x) 有重因式 P(x),次数为 k (k≥2)。那么我们可以把 f(x) 写成:
f(x)=P(x)k⋅g(x)
利用形式导数的乘法法则和链式法则,我们对两边求导:
f′(x)=k⋅P(x)k−1⋅P′(x)⋅g(x)+P(x)k⋅g′(x)
提取公因式 P(x)k−1:
f′(x)=P(x)k−1[k⋅P′(x)⋅g(x)+P(x)⋅g′(x)]
因为 k≥2,所以 k−1≥1。这说明 P(x) 至少是一次式,且 P(x) 既是 f(x) 的因式,也是 f′(x) 的因式。因此,gcd(f(x),f′(x)) 至少包含 P(x),绝对不等于 1。必要性得证。
- 证明“充分性”(如果无重因式,则 gcd=1):
如果 f(x) 没有重因式,那么根据唯一分解定理(见附录4),它可分解为互不相同的不可约因式的乘积:
f(x)=P1(x)P2(x)⋯Pm(x)
使用反证法,假设 gcd(f,f′)=1,那么 f(x) 和 f′(x) 必然有公共的不可约因式,不妨设为 P1(x)。
f′(x)=P1′(x)P2(x)⋯Pm(x)+P1(x)P2′(x)⋯Pm(x)+⋯
P1′(x)P2(x)⋯Pm(x)=f′(x)−(P1(x)P2′(x)⋯Pm(x)+⋯)
观察上面的式子的右边,右边括号里所有项都包含 P1(x) 所以括号里部分能被 P1(x) 整除。根据假设 f′(x) 也能被 P1(x) 整除,所以右边整体都能被 P1(x) 整除。那么左边必然也能被 P1(x) 整除。根据「欧几里得引理」(见附录4),因为 P1(x) 是不可约的,因此左边的因式 P1′(x),P2(x)⋯Pm(x) 中必须至少有一项能被 P1(x) 整除。因为 P2(x)⋯Pm(x) 本身也都是不可约因式,所以它们不可能被 P1(x) 整除,那么只有一种可能就是 P1′(x) 能被 P1(x) 整除。又因为 P1′(x) 的次数严格小于 P1(x),那么要想能被 P1(x) 整除,P1′(x) 只能是 0 多项式。
对于普通多项式情况,因为 P1(x) 不是常数(常数不能作为不可约因式),所以 P1′(x) 不可能是 0,所以矛盾,假设不成立。
对于模 p 下的多项式,情况稍微复杂。有一种情况可能导致 P1′(x) 是 0,那就是 P1′(x) 的所有系数都是 p 的倍数。在这种情况下,P1(x) 的所有项的次数都必须是 p 的倍数,即:
P1(x)=akxkp+⋯+a2x2p+a1xp+a0
根据费马小定理(见附录7):任何整数 a 的 p 次方,在模 p 下都等于它自己,即 ap≡a(modp),于是:
ak=akp
⋯
a1=a1p
a0=a0p
所以 P1(x) 可以改写为:
P1(x)=akp(xk)p+⋯+a1p(x1)p+a0p
仔细看上面的式子,每一个单项式都是一个完整的 p 次方。根据我们严谨证明过的“新生之梦”定理(见附录6)(即和的 p 次方等于 p 次方的和),我们可以把所有分散的 p 次方,反向合并到一个大括号里:
P1(x)=(akxk+⋯+a1x+a0)p
看到了吗?如果 P1′(x)=0,那么经过“新生之梦”的逆向操作,P1(x) 必然可以写成某个多项式的 p 次方!
这就意味着 P1(x) 可以被因式分解(它是某个多项式自己乘自己 p 次),这与“P1(x) 是不可约因式”的前提发生了致命的矛盾!
综上所述,如果我们假设 gcd(f,f′)=1,在普通多项式或模 p 的多项式定义下,都一定会推出矛盾。这就证明了“充分性”(如果无重因式,则 gcd=1)。
三、在普通复数域 C 下的等价判别法(重根判别)
当我们将舞台限定在复数域 C 时,代数基本定理(见附录9)告诉我们:任何多项式在复数域中都可以完全分解为一次因式 (x−α) 的乘积。此时,“重因式”有了更具象的物理意义——它等价于方程 f(x)=0 存在重根。
因此,在复数域下,前面的形式导数判别法等价于以下的重根判别法:
等价判别法: 复数 α 是多项式 f(x)=0 的 k 重根 (k≥2) 的充分必要条件是:
f(α)=0且f′(α)=0
说明:对于二次方程 ax2+bx+c=0,我们熟悉的 Δ=b2−4ac=0 判别法,其实就是由 f(x) 和 f′(x) 的系数经过特定运算推导出来的。
现在我们证明一下在复数域中,形式导数判别法与重根判别法等价
定理等价性证明:重因式判别法 ⟺ 导数取值判别法
已知前提: 在复数域 C 中,由于任何多项式都可以彻底分解为一次因式的乘积,所谓的“重因式 P(x)”只能是形如 (x−α) 的一次因式。因此,“f(x) 有重因式”在复数域下完全等价于“f(x) 有重根 α”。
我们需要证明:α 是 f(x) 的重根(即含有 (x−α)k 且 k≥2) ⟺f(α)=0 且 f′(α)=0
第一步:证明“必要性”(⇒)
已知: α 是 f(x) 的重根。
求证: f(α)=0 且 f′(α)=0。
证明过程:既然 α 是重根,我们可以将 f(x) 设为:
f(x)=(x−α)k⋅g(x)
其中 k≥2,且 g(x) 是另一个多项式。显然:
f(α)=(α−α)k⋅g(α)=0
考察导数:
f′(x)=k(x−α)k−1⋅g(x)+(x−α)k⋅g′(x)
由于 k≥2,所以 k−1≥1,这意味着 (x−α)k−1 至少是一次式。
f′(α)=k(α−α)k−1⋅g(α)+(α−α)k⋅g′(α)=0+0=0
必要性得证。
第二步:证明“充分性”(⇐)
已知: f(α)=0 且 f′(α)=0。
求证: α 是 f(x) 的重根(即含有 (x−α)2 或更高次的因式)。
证明过程:利用原函数的条件:因为 f(α)=0,根据因式定理(见附录4),f(x) 必定含有因式 (x−α)。我们可以将其写为:
f(x)=(x−α)⋅h(x)
我们对上面的式子两边同时求导数:
f′(x)=1⋅h(x)+(x−α)⋅h′(x)
根据已知条件,f′(α)=0,我们将 x=α 代入上式:
f′(α)=h(α)+(α−α)⋅h′(α)=0
h(α)=0
再次利用因式定理:既然 h(α)=0,根据因式定理,多项式 h(x) 也必然含有因式 (x−α)。即 h(x)=(x−α)⋅q(x)。我们将 h(x) 的表达式代回最初的 f(x) 中:
f(x)=(x−α)⋅[(x−α)⋅q(x)]
f(x)=(x−α)2⋅q(x)
这就严谨地证明了:只要 f(α)=0 且 f′(α)=0,f(x) 就必定至少包含 (x−α)2 这个因式,即 α 是 f(x) 的重根。充分性得证。