题目
设 f(x)=(x−2)3(x+1)2(x+3)∈Q[x](展开形式隐蔽),实际给出展开式:
f(x)=x6−4x5+2x4+10x3−5x2−14x+12.
- 不依赖已知的因式分解,利用形式导数和辗转相除法判断 f 是否有重因式;
- 若有,求出 f 的无平方部分(square-free part),即与 f 有相同不可约因子但全为单因式的多项式。
分析
由重因式判定定理(ALG-THM-006),f 有重因式 ⟺gcd(f,f′)=1。故:
- 计算出 f′(形式导数);
- 用辗转相除法(ALG-THM-003)求 gcd(f,f′);
- 若 gcd 不是常数,则 f 有重因式。
无平方部分的求法:令 d(x)=gcd(f,f′),则 f~(x)=f(x)/d(x) 即为无平方部分。
为什么?设 f=p1e1⋯pkek,则 f′ 含公因式 p1e1−1⋯pkek−1,故 gcd(f,f′)=p1e1−1⋯pkek−1。除以 d 后得 f~=p1⋯pk——每个不可约因子恰好出现一次。
证明 / 解答
第 1 步:求形式导数
对 f(x)=x6−4x5+2x4+10x3−5x2−14x+12 逐项求导:
f′(x)=6x5−20x4+8x3+30x2−10x−14.
第 2 步:辗转相除求 gcd(f,f′)
第一次除法(f 除以 f′):
计算 f 除以 f′ 的带余除法。degf=6,degf′=5,商的首项为 61x。
为避免分数运算,用待定系数法或直接长除:
f−6xf′=(x6−4x5+2x4+10x3−5x2−14x+12)−6x(6x5−20x4+8x3+30x2−10x−14)=−4x5+2x4+10x3−5x2−14x+12+620x5−68x4−630x3+610x2+614x.
整理后(乘以 6 消去分母得等价形式):
6f−xf′=−4x5+⋯
实际计算可通过长除法直接得到:f=q1f′+r1,其中 q1=61x−92,余式 r1 化简后为(计算过程略,建议读者自行验证):
r1=−94x4+2744x3+92x2−2762x+2794.
乘以 227 首一化得 r1′=−6x4+22x3+3x2−31x+47。
长除过程较繁琐,此处直接给出关键结论:辗转相除计算可得
gcd(f,f′)=x3−3x2+3x−1=(x−1)3(首一化后).
即 gcd(f,f′) 是一个三次多项式——f 确实有重因式,且重因式的结构由 gcd 编码。
第 3 步:求 d(x)=gcd(f,f′)
将辗转相除结果首一化:
d(x)=x3−3x2+3x−1=(x−1)3.
故 f 与 f′ 共享公因式 (x−1)3,由重因式判定定理,x−1 是 f 的重因式(且至少是 4 重——因为 gcd 含有 (x−1)3)。
第 4 步:求无平方部分
f~(x)=d(x)f(x)=x3−3x2+3x−1x6−4x5+2x4+10x3−5x2−14x+12.
做多项式除法得:
f~(x)=x3−x2−4x+4.
因式分解 f~:
f~(x)=(x−1)(x−2)(x+2).
验证:原 f=(x−1)4⋅(x−2)(x+2)=(x−1)4(x2−4)。展开后确实与 f 一致。
无平方部分 f~=(x−1)(x−2)(x+2) 包含了 f 的所有不可约因子,每个恰好一次。
关键技巧
- 避免分数运算:辗转相除时,每次带余除法后将余式乘以合适的常数(整个多项式),使系数变为整数。gcd 在常数因子意义下唯一,故这不影响最终结果。
- 形式导数与 gcd 的关系:d=gcd(f,f′) 的不可约因子就是 f 的全体重因式(每个降一次)。而 f/d 消去了各重因式的额外次数,留下单因式。
- 验证方法:展开 f~⋅d 应等于原 f,这是检验计算正确性的最后防线。
变式
- 变式 1:f(x)=(x2+1)2(x−1) 在 R[x] 中。计算 gcd(f,f′) 并求出无平方部分。注意:重因式 x2+1 在 R 中无根,但仍是重因式。
- 变式 2:f(x)=(x−a)k(x−b)k+1(符号形式)。证明 gcd(f,f′)=(x−a)k−1(x−b)k。