在 时等于 ,在 时等于 。由介值定理理路介值定理Intermediate value theorem连续函数在实区间上不能跳过中间高度;由完备性证明存在性,并厘清二分法、唯一性和不动点迭代。, 至少有一个根。可是“至少一个”还没有排除三个,也没有排除负半轴上的别的根。
Sturm 的办法是在原多项式旁边安排一串辅助多项式。当位置从左向右越过原多项式的一个简单根,这串值恰好少一次变号;越过辅助多项式的根,变号总数不动。于是只看区间两端,就能知道中间经过了几个根。
形式陈述
这串多项式怎样生成
先设有理系数多项式理路多项式环Polynomial ring系数来自给定环、以形式不定元构造的多项式集合。 非常数且平方自由,即 。形式导数按 计算。建立
直到下一余式为零;零余式不加入序列。这里 是有理系数多项式长除法的余式,次数严格小于除数次数,所以过程一定终止。平方自由性保证最后一项是非零常数。
关键是余式前的负号。每一步都留下恒等式
它既是生成规则,也是稍后检查符号的证书。直接使用普通 Euclidean 算法的正余式,虽然仍能算 GCD,却不满足本页的根计数规则。
对 ,第一步为
第二步为
所以完整非零链是
两条除法恒等式都可直接乘开核验。最后得到非零常数,也同时认证了 没有重根。
先删零,再数相邻异号
对一个实数 ,将 中的零删去,再数相邻两个非零数符号相反的次数,记为 。
例如 删除零后为 ,只有一次变号。零不被算作正,也不被算作负;它只是暂时不参与相邻比较。
若 且 ,Sturm 定理给出
端点允许某个辅助多项式为零,但不能是 的根。下表使用刚才的四项链:
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
2 |
|
|
|
|
|
2 |
|
|
|
|
|
2 |
|
|
|
|
|
1 |
|
|
|
|
|
1 |
因此 恰有一个实根,而且它在 。根界理路多项式的根界Polynomial root bounds · Cauchy root bound · 多项式的 Cauchy 根界用系数的绝对值给全部复根一个严格外界,再通过倒数多项式与变量缩放构造可核验的实根搜索范围。已保证所有根的模小于二,故这就是全部实根,不只是图上找到的一个。
直觉
辅助项过零时,为什么计数不变
先证明相邻两项不能同时为零。若 ,除法恒等式迫使 ,一路传到最后的非零常数,矛盾。
现在设中间项 ,其中 。同一恒等式给出
所以左右邻居符号相反。在 附近,邻居保持各自符号。中间项无论是正、负,还是正好为零,这一小段总共都贡献一次变号:
都是一次;把所有符号反转也一样。辅助项因此不会凭空增加或消去计数。
如果几个不相邻的辅助项在同一点为零,可以分别处理这些局部三项段;它们不共享任何会过零的邻项,变号总和仍然不动。这里只用了连续多项式的非零值在足够小邻域内保持符号。
原多项式过根时,为什么恰好减一
设 。平方自由性使 ,写
在足够小的邻域, 与 同号。因此在根左侧, 与 异号;在根右侧,它们同号。链首两项从“一次变号”变成“零次变号”。
其余位置的总变号数按上一节保持不变,所以 跨过 恰好减一。有限区间内只有有限多个多项式零点,把区间按这些点分段,所有辅助点贡献零、每个 的根贡献一;相加就是 。
辅助零点与真正的计数跳跃 图中 是 的根, 是 的根;它们都不是 的根。虚线标出这些位置时,蓝色阶梯保持水平。红色根只用有理区间 标定,绘图位置不承担精确证书。
例子与边界
重根、端点与缩放各有一条规则
先去重再计数。 对任意非零非常数 ,令
这个平方自由部分与 有相同的不同根。用 的链计数,输出的是不同根数;若还要各自重数,调用平方自由分解理路多项式平方自由分解Square-free factorization of polynomials · Square-free decomposition以形式导数、GCD 与正特征下的 Frobenius 开根分离不可约因子的重数。保存的重数块。例如 在 有一个不同根、按重数计有两个,两个口径不能混写。
根端点要单独处理。 本页公式使用开区间且要求端点非根。若 ,链为 ,则 ,但 里没有根。这说明直接把根端点的零删去,会把右端点算进去。需要开区间时可改选非根有理端点,或明确使用单侧值 。
只允许不改符号的简化。 把链中的任意一项乘以正数不会改变 ,所以可用正分母清掉分数。把最后的 首一化为 却乘了负数,会毁掉证书。“每项都化为首一”适合某些GCD接口,不适合直接拿来数Sturm变号。若继续递推,应同时保存实际的除法恒等式,而不是把旧商硬套到缩放后的项上。
推论与应用
把数量保证变成下一步工具
一条有理余式链可以反复在不同端点求值,不必为每个区间重算。所有端点值都是有理数,符号可以精确判断;复杂性仍取决于分子分母的位长度,不能把任意大有理数运算当成固定耗时。
现在对任何候选区间都能回答零个、一个或多个根。实根隔离理路有理多项式的实根隔离Real root isolation of rational polynomials · Sturm bisection isolation · 实根隔离以精确根计数驱动区间细分,为每个不同实根给出互不相交的有理隔离区间,证明终止、完整性和重数恢复。据此丢弃零根区间、保留单根区间、继续分割多根区间。若需要在这些根上统计另一个多项式的正负,Sturm–Tarski 查询理路Sturm–Tarski 符号查询Sturm–Tarski query · Tarski query · Sturm–Tarski theorem · 加权实根符号查询将实根计数推广为根上符号之和,以导数加权负余式链计算查询,并用三次查询恢复正、负、零根数。保留同样的余式机制,把“每个根贡献一”推广为“按所查询的符号贡献 ”。
参考资料
- Sturm Theory,IMSc多项式算法课程讲义,Theorem 3及前面的两类过零分析,PDF第1–2页;§1讨论实根隔离。本文固定使用有理系数负余式链,不将任意子结式缩放直接当作Sturm链。
- Saugata Basu、Richard Pollack、Marie-Françoise Roy,Algorithms in Real Algebraic Geometry,第2版,Springer,2006,实闭域上的Sturm与Tarski计数部分。
- Wenda Li,The Sturm–Tarski Theorem,Archive of Formal Proofs,2014:Sturm计数作为符号查询特例的形式化证明。