方程 指定了两个实数。只保存这个方程,无法知道想要的是正平方根还是负平方根;保存 又把精确等式丢掉了。一个多项式加一个只含单根的有理区间,恰好同时保存“满足什么等式”和“选中了哪个根”。
这个表示不要求把根写成根式。我们一直使用的三次方程 ,同样可以由短整数系数表与区间 精确指定。
形式陈述
表示的三个检查条件
一个实数 称为实代数数,是指它属于 上的代数元理路代数元Algebraic element作为基域上某个非零多项式根的扩域元素。。有理多项式清分母后成为整系数多项式,所以可用数据
表示它,条件为:
- 非零、非常数且平方自由
- 且
- 内恰有一个 的实根,该根就是
最后一条由实根隔离理路有理多项式的实根隔离Real root isolation of rational polynomials · Sturm bisection isolation · 实根隔离以精确根计数驱动区间细分,为每个不同实根给出互不相交的有理隔离区间,证明终止、完整性和重数恢复。或Sturm计数认证。 不必是不可约的,也不必是极小多项式理路极小多项式Minimal polynomial以给定代数元为根的首一不可约多项式。。例如
指定同一个实数 ;第二个多项式只是携带了一个位于区间外的多余根。
区间也不是数的一部分。把 缩成 ,仍然表示同一个数。数据记录不同,不意味着数学对象不同。
直觉
两份记录什么时候相等
设 表示 , 表示 。如果两个开区间不相交,它们当然不同。否则令
当且仅当 在 中有一个实根。
证明分两步。若 ,它是 的共同根,因而是 的根,也在交集内。反过来,若 是 的根,它同时是 的根;两个原区间都只含自己的一个根,所以 。
交集端点不会是 的根,因为每个端点至少是一个原隔离区间的非根端点。因此可以直接在 中用Sturm计数。若 是非零常数,判等立即返回否,不需要将两个近似值算到许多小数位。
例如比较 与 ,GCD为 ,交集计数为一,故相等。若改成 ,区间已经分离,立即得到 。
比大小为何一定能结束
先执行上面的精确判等。如果两数相同,返回等号;否则不断细化各自的隔离区间,直到两区间分离,再看谁在左边。
终止依据是 。让两个区间都足够窄,它们就不可能继续重叠。这个正距离不用事先知道,但“不同”必须先有证据。若跳过判等,两份相同实数的不同记录可能永远细化而永不分离。
取 为 的实根,。现有证书为
因为 (交叉相乘为 ),直接得到 。这里不曾把任何无理数舍入成小数。
例子与边界
一个容易混淆的求逆边界
在商环里,用Bézout等式求 的逆通常要求 。可是对我们选中的单个根, 已足以取倒数,即使 在 的另一个根上为零。
例如用
表示 ,并取 。显然 ,但 ,所以 在整个 中不是单位。
可以先去掉 ,用 保留目标根。现在
故在目标根处
一般情况下, 平方自由且 保证除去公共因子后仍保留 ,而 。再做扩展Euclidean运算才得到合法逆元。这说明“指定根处非零”与“整个可约商代数里可逆”不是同一条件。
推论与应用
在一个根上判断另一个多项式的符号
给定 ,想知道 是负、零还是正。第一步仍然是先查零:求 ,检查它是否在 中有根。若有,便有 ;若没有,。
非零以后,可以细化 的隔离区间,直到其中没有 的实根。为避免端点问题,同时要求 在两端非零。然后取任意内部有理数 ,计算 的符号;由介值定理, 在整个区间不能改变符号,所以这正是 的符号。
为什么这一步也会停? 非零时只有有限多个实根,而已经知道 不是其中任何一个,故存在一个围绕 且不含这些根的小区间。若 是非零常数,直接返回常数符号;若 ,直接返回零。
在本例中, 全为正数,且
所以 。对 ,则GCD检测立即返回零。后一种等号不能靠“数值绝对值已经很小”认证。
Sturm–Tarski查询理路Sturm–Tarski 符号查询Sturm–Tarski query · Tarski query · Sturm–Tarski theorem · 加权实根符号查询将实根计数推广为根上符号之和,以导数加权负余式链计算查询,并用三次查询恢复正、负、零根数。提供另一条路径:直接对隔离区间计算加权变号数,通常不必先把区间缩到能看出 的符号。两种办法输出相同的精确三值结果。
算术运算需要重新选根
代数数的和、积仍是代数数。但得到一个结果多项式之后,还要确定选中了哪个实根。
最简单的例子是 。代入 得
所以
以 为根。原区间平移一单位给出 ;平移在两方程根之间建立一一对应,故这个区间恰含一个 的根。这就得到结果的精确表示。
对一般两数之和,若 ,可计算消元多项式
因为 时两式有共同根 ,所以 。但它通常还包含其他共轭根之和;因此去重后,要结合两个输入区间的和区间继续隔离,直到只含目标根。非零消元多项式只有有限多个不同根,输入区间宽度可以趋于零,故最终能选中目标。结果多项式有重根时,先取平方自由部分。
这一点与结式页理路多项式结式计算Polynomial resultant computation · Sylvester resultant algorithm由 Sylvester 行列式或子结式余式链计算两个一元多项式是否具有公共根的消元量。的接口一致:结式给必要代数关系,隔离区间负责实际的实根分支。仅返回结式不能宣称已经算出了用户指定的那个和。
自测:四类证据各做什么
对同一根 ,交付以下结果:
- 是有效表示:用Sturm计数为一认证
- :用有理区间分离认证
- :用共同因子认证
- :用隔离区间上的正数平方界认证
这四项分别回答存在唯一性、顺序、等号和严格符号。把它们合在一起,精确实代数数才不仅是“一个带很多小数位的数”。
参考资料