形式陈述
设 为整环,,,。当 未必可逆时,伪除法在 内构造 使
称伪余式。一般多项式余式序列写成
其中 。若简单地反复取带符号伪余式,先前首项的高次幂会作为可预测公因子留在新系数中,造成 coefficient swell。
子结式 PRS 选择 为伪除法所需的首项幂,并按相邻次数下降及先前首项递推 ,使每次除以 都在 中精确完成,所得非零 与 的相应子结式多项式相差至多一个约定的单位或符号。不同文献对余式负号和首项归一化的选择不同,因此实现应固定一套 Collins–Brown 递推,而不能混用两个表中的 。在 UFD 上,最后一个非零项取 primitive part 后与最大公因式公理库最大公约数Greatest common divisor · GCD同时整除两个整数且被所有公约数整除的非负整数。相伴随。
算法以稠密系数向量公理库稠密多项式表示Dense polynomial representation · Coefficient-vector polynomial representation按次数连续保存从常数项到最高次项全部系数的规范多项式编码。做伪除、精确标量除法和内容规范化,并调用多项式乘法公理库多项式乘法算法Polynomial multiplication algorithm · Fast polynomial multiplication以卷积、分治或点值变换计算系数乘积,并以乘法代价函数统一后续多项式算法。完成移位乘积。子结式的行列式解释给出系数大小界:序列保留真正由 Sylvester 子式决定的系数,而不是伪除过程中人为叠加的首项幂。
直觉
域上的 Euclidean 算法随时可以除以除数首项,把余式重新首一化;整数环上这样做会引入分数。伪除法用首项的幂提前乘被除式,把所有步骤留在整数中,但代价是把许多“清分母用”的因子一起带进下一轮。primitive PRS 每轮计算全部系数的内容再除掉,系数很小,却反复做昂贵的整数 GCD。
子结式 PRS 位于两者之间。Sylvester 矩阵的特定子式预言了哪些首项因子必然出现,于是算法只做由次数下降可知的精确除法,不必逐项猜测公因子。可以把它理解为给 Euclidean 余式链安装一套代数上证明正确的消肿规则:不改变商域中的 GCD,却让中间式保持在输入行列式所允许的尺度。
例子与边界
在 中取
普通域除法的余式是 。伪除法因 先乘 :
于是 PRS 为 ,全程没有分数;primitive part 的最后非零常数为 ,说明 在 中互素,而常数 还记录了结式信息。这个小例子只有一轮,子结式缩放尚不显眼;在多轮高次数输入中,若把每个伪余式原样传下去,首项幂会层层累积,正是它要消去的部分。
整环假设不能随意削弱。若系数环有零因子,乘首项可能把非零多项式消成零,次数下降和“最后非零项给出 GCD”的论证都失效。伪除法本身可在整环中定义,但用内容与 primitive part 规范化通常要求 UFD;若只在商域里求 GCD,则还要追踪分母并把答案拉回 。
次数异常下降也需要正确递推。若某一步从次数 直接掉到 ,不能套用“每次恰降一”的简化缩放,否则精确除法可能失败。零输入、常数除数以及首项为单位的情形应由边界分支处理。子结式 PRS 控制的是代数冗余因子,不保证机器整数永不变大;真实 bit complexity 仍受输入系数高度和快速整数运算影响。
推论与应用
序列中的零与非零主子结式刻画 GCD 次数,首个标量子结式就是结式公理库多项式结式计算Polynomial resultant computation · Sylvester resultant algorithm由 Sylvester 行列式或子结式余式链计算两个一元多项式是否具有公共根的消元量。的核心数据。因此同一余式链可同时回答“是否有公共因子”“公共因子的次数是多少”以及“结式值是什么”,避免另行构造完整 Sylvester 行列式。
多项式平方自由分解公理库多项式平方自由分解Square-free factorization of polynomials · Square-free decomposition以形式导数、GCD 与正特征下的 Frobenius 开根分离不可约因子的重数。需要计算 ,在整数系数或把多元多项式视为某个主变量的一元多项式时,子结式 PRS 是经典的精确 GCD 引擎。它也用于实根计数的 Sturm–Habicht 序列、符号消元和参数化系统的次数判定。应用这些结论时必须保留系数域、单位规范与符号约定;“同一子结式”常只在相伴随意义下相同,直接逐系数比较会产生伪差异。
参考资料
- George E. Collins, “Subresultants and Reduced Polynomial Remainder Sequences,” Journal of the ACM 14(1), 1967, pp. 128–142, doi:10.1145/321371.321381.
- W. S. Brown and J. F. Traub, “On Euclid’s Algorithm and the Theory of Subresultants,” Journal of the ACM 18(4), 1971, pp. 505–514.
- Keith O. Geddes, Stephen R. Czapor, and George Labahn, Algorithms for Computer Algebra, Kluwer, 1992, Ch. 7.