知道 有几个实根之后,还可以问:其中多少个使 为正?在一个指定的无理根上, 到底是正、负还是零?逐个近似求根再代入,遇到很小的值时容易把等号误判为正负。
Sturm–Tarski查询直接计算
其中每个不同实根出现一次, 取 。每个根的贡献不再固定为一,而是由它上面的 值决定。当 ,这就是通常的Sturm根计数。
一个查询值为零,可能因为所有值都为零,也可能因为正负贡献抵消。要恢复三个数量,需要后面介绍的三次查询,而不能把一次查询误当作完整符号表。
形式陈述
先把问题放进精确输入
以下设 非常数、平方自由,,且有理端点满足 、。非平方自由输入先取平方自由部分,因此本页不按重数加权。
先计算
在 的每个根 上,。取余使次数降到 以下,并没有改变所需根上的值。
若 ,因为 平方自由,,所以每个根上 ,查询为零,算法结束。否则令
被 删除的恰是 的根,它们原本就贡献零。留下的 互素,且 。
现在从 开始做负余式链:
停在最后一个非零项。按上一页同样的规则,求值后删零,再数变号,记为 。结论是
注意第二项是由 得到的,不是随意把普通Sturm链的导数换成 。导数因子负责把根穿越的方向与 的符号对齐。
直觉
权重怎样进入过根的那一刻
互素,故负余式链的最后一项为非零常数。任何中间项过零时,左右邻项仍然相反,总变号数保持不变;这部分证明完全复用Sturm计数理路Sturm 多项式实根计数Sturm theorem for real polynomial roots · Sturm sequence · 多项式的 Sturm 定理用带负号的多项式余式链在区间两端数变号,证明其差恰为不同实根数,并明确零项、重根和根端点的处理。的局部三项分析。
设 是留下来的 的根。因为 ,有
而 ,于是
在 附近, 的符号是 的符号, 保持 的符号。
- 若 , 与 同号,链首从异号变为同号, 减一
- 若 ,二者异号,链首从同号变为异号, 增一
- 若 ,这个根已被 删除,不产生变化
因此跨过一个根时,。把区间内所有根的贡献相加,便得到公式。这也解释了为什么加权查询的 不一定单调下降。
例子与边界
一个只用有理数的负号证书
取
该区间只含一个 的根 ,所以查询应直接给出 。
先算加权导数余式:
由 ,得到
这对输入的GCD为一,负余式链为
中间两步可由以下等式核验:
端点表为
|
第一项 |
第二项 |
第三项 |
第四项 |
变号数 |
|
|
|
|
|
1 |
|
|
|
|
|
2 |
所以查询为 ,从而 。变号数增加不是算法出错,恰好说明这个根带来一个负贡献。
边界:三种看似省事的改法会出错
不能省去导数权重。 对 、,若从 直接建链,两端变号之差为零,却有两个实根。正确第二项是 。
不能把近零当零。 公共根的删除靠精确GCD完成。若将 改成 ,曾经为零的贡献可能变成正或负;固定小数阈值会悄悄改变数学问题。
不能混用重数口径。 若原输入 ,本页仍对每个不同根计一次。需要按 的重数统计时,应先做平方自由分解理路多项式平方自由分解Square-free factorization of polynomials · Square-free decomposition以形式导数、GCD 与正特征下的 Frobenius 开根分离不可约因子的重数。,对重数为 的块查询后乘 ,再相加。
最后,余式项只可乘正数来简化符号。对普通子结式实现,也必须确认其输出有与本页一致的有符号恢复规则,不能只因为它也使用Euclidean算法就直接数变号。
推论与应用
三次查询恢复完整数量
固定一个根集合,设 分别为 正、负、零的根数。计算
因为非零数的平方为正,零的平方仍为零,三式满足
解出
这些等式还能帮助检查结果:必须有 、,而 与 同奇偶。若其中一条失败,输入条件、端点规则或符号链至少有一处处理不对。
例如令
在 内的三个根依次为 。查询得到 ,于是 。 来自一个正贡献与一个负贡献抵消,中间另有一个真正的零值;三种情形现在被分开了。
若要多个多项式的联合符号条件,可以对它们适当的乘积进行更多查询,再恢复各符号组合的计数。那需要新的线性恢复步骤,不能把单个 的三个数量直接当成多个条件的交集数量。
区间选根与整轴统计是两个接口
当 隔离单根 时, 只有一项,直接给出 的符号。这使实代数数表示理路实代数数的精确表示Exact representation of real algebraic numbers · Isolating interval representation · 实代数数用整系数多项式和有理隔离区间指定一个实根,以GCD判等、区间细化比较大小,并为符号判断与精确算术保留正确根分支。有了精确求值接口,无需先构造 的极小多项式。
当区间含多个根,输出则是这些根的符号总和。它不能告诉我们正根具体位于哪里;若需要逐根标注,就在每个隔离区间分别查询。
若要整个实轴的结果,可使用一个严格包含全部实根的有理区间。也可以直接计算 的符号:非零多项式在 的符号是首项系数符号,在 还要乘 。这只是在符号层读取首项,不需要真的把无穷代入多项式。
单元中的第二条证书路线
对三次算例,查询给出了 的一份余式证书。Hermite迹型理路Hermite 迹型与实根符号Hermite trace form · Hermite matrix real root counting · Hermite criterion with sign conditions · Hermite 实根判据在多项式商代数上以乘法算子的迹构造对称形式,证明其签名等于实根上的符号查询,并用精确合同分解复核三次算例。会从同一多项式构造一个有理对称矩阵,以“正平方数减负平方数”重新得到 。两条计算读取同样的数学对象,却使用不同的中间数据,适合交叉核对。
参考资料