Skip to content

多项式平方自由分解

Square-free factorization of polynomials · Square-free decomposition

以形式导数、GCD 与正特征下的 Frobenius 开根分离不可约因子的重数。

条目类型
算法

形式陈述

K 为完美域,非零多项式 fK[x]。形式导数纯粹按幂次定义:

f(x)=i=0naixif(x)=i=1niaixi1,

其中整数 i 映到 K 的素子环;它不使用极限。平方自由分解要求写成

f=ci1fii,

其中 cK×,每个非恒等的 fi 首一、平方自由,且两两互素。输出只区分重数,不继续把 fi 分成不可约因子。

在特征 0 中,Yun 型递推先算

g=gcd(f,f),w=f/g.

i=1,循环计算 y=gcd(w,g)fi=w/y,再令 w=yg=g/y 并递增 i,直到 w=1;零次因子略去。底层GCD可由子结式 PRS在精确系数上实现。

charK=p>0,仍先令 c=gcd(f,f)w=f/c,用同一组 y=gcd(w,c)fi=w/y 逐层输出重数不被 Frobenius 隐藏的部分;当 w=1 时,剩余的 c 满足 c=0。一个多项式导数为零,当且仅当所有非零次数都是 p 的倍数。对完美域,Frobenius aap 是满射,故可写

f(x)=h(x)p,h(x)=japj1/pxj.

算法对剩余 cp 次根递归分解,并把递归返回的所有重数乘以 p。这一步与前面的 GCD 链合在一起,既能处理纯 p 次幂,也能处理重数如 p+1 的混合情形。有限域是完美域,因此取系数的 Frobenius 逆在有限域上总能进行。

直觉

f 含因子 qe,则形式求导后至少还保留 qe1,所以 gcd(f,f) 收集了重复部分,而商 f/gcd(f,f) 每种不可约因子只留下一个副本。随后连续取 GCD,就像一层层剥开等高线:第 i 轮恰好分离原来重数为 i 的因子。

正特征改变了这幅图像,因为 p=0 在域中,(hp)=php1h=0。导数对 Frobenius 像完全失明,不能从 gcd(f,f)=f 得出“算法失败后把整个 f 当一个重数块”。正确动作是先识别纯 p 次幂、在系数上取 Frobenius 逆并降低次数,然后递归恢复被 p 放大的重数。

例子与边界

Q[x] 中令

f=(x1)2(x+2)3.

求导并提取公因子得到

f=(x1)(x+2)2(5x+1),g=(x1)(x+2)2,

于是 w=(x1)(x+2)。第一轮 y=gcd(w,g)=w,没有重数 1 的因子;更新后 g=x+2。第二轮得到 y=x+2f2=x1;第三轮得到 f3=x+2。复乘 f22f33 恢复原式,重数与因子都可直接核验。

F2[x] 中,

x4+x2+1=(x2+x+1)2

的形式导数为零。若只运行特征零循环,会停在 gcd(f,0)=f 而没有进展;取平方根 h=x2+x+1 后可知唯一平方自由块的重数为 2。这不是数值导数精度问题,而是 Frobenius 的结构性边界。

完美性也不能藏掉。在不完美域 Fp(t) 上,xpt 的导数为零,却没有系数仍在该域内的 p 次根;“无平方因子”和“在代数闭包中无重根”的口径在此会分离。页面算法选择后者并以完美域为前提。常数、多项式零输入与非首一输入还需分别处理:零多项式没有唯一的有限重数分解,非零常数只贡献单位 c

推论与应用

平方自由分解是完整因式分解的预处理。Berlekamp 算法Cantor–Zassenhaus 算法通常都假设输入已经首一且平方自由;先去重后,随机分裂或 Frobenius 线性代数不用反复发现同一个不可约因子,也能用次数之和准确计量工作。

它还服务部分分式分解、符号积分、重根隔离与代数曲线奇异性检测。平方自由部分 f/gcd(f,f) 只保留每个根一次,可避免根隔离算法在同一点重复计数;结式 Res(f,f) 是否为零则给出重根的快速判据。不过只知道判据为零不等于已经恢复各重数,完整输出仍需上述 GCD 链与正特征递归。

参考资料
  • David Y. Y. Yun, “On Square-Free Decomposition Algorithms,” Proceedings of SYMSAC 1976, pp. 26–35.
  • Joachim von zur Gathen and Jürgen Gerhard, Modern Computer Algebra, 3rd ed., Cambridge University Press, 2013, chapters on polynomial GCD and finite-field factorization.
  • Keith O. Geddes, Stephen R. Czapor, and George Labahn, Algorithms for Computer Algebra, Kluwer, 1992, §8.2.
关系图谱7 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系