Skip to content

四个实根、一个重根、两条符号证书 ​

这份练习的终点是一份可以逐项复算的答案:给定展开的七次多项式,找出全部不同实根,为每一个给有理隔离区间,恢复重数,并判断另一个多项式在它们上面的符号。不要用一串近似根代替证明;需要交出的数据是系数恒等式、端点符号和精确矩阵分解。

学习入口 ​

核心路线是多项式根界 → Sturm计数 → 实根隔离 → 实代数数表示 → Sturm–Tarski查询。前五站只使用有理多项式运算、大小比较与连续性的基本事实。

第六站Hermite迹型另需商环、线性代数与惯性。它用另一类数据复核相同结论,可以在前五站完成后再学。已有的平方自由分解、多项式环和极小多项式页面作为工具接入,不需要重复阅读整条抽象代数路线后才能开始计算。

任务一:范围、去重与完整性 ​

输入为

F(x)=x7−2x6−2x5+5x4+x3−3x2−2x+2.

请先证明以下因式恒等式,再计算GCD,不要从图形猜重数:

F=(x−1)2(x2−2)(x3−x−1),gcd(F,F′)=x−1.

平方自由部分为

P=F/(x−1)=x6−x5−3x4+2x3+3x2−2.

从展开系数得到Cauchy根界 |z|<4。这保证全局计数只需在 (−4,4) 进行。

为四个不同实根分别交付

I1=(−3/2,−11/8),I2=(3/4,5/4),I3=(5/4,4/3),I4=(11/8,3/2).

验证每个区间的 P 根数为一,且全区间根数为四。可先用三个互素因子的短Sturm链手算,再用配套程序直接对 P 计数交叉核对。

四个区间对应的重数是 (1,2,1,1)。其中 I2 包含精确有理根一,I3 包含 x3−x−1 的唯一实根 α;另外两个分别包含 −2 与 2。全部实根按重数合计五个,其余两个是非实共轭根。

任务二:在根上计正、负、零 ​

令 q=x2−2。目标不是求 q 在所有实数上的符号,而是只在 P 的四个实根上统计。

在 I1,I4 中,由共同因子认证 q=0。在 I2 中,根是一,所以 q(1)=−1。在 I3 中,5/4<α<4/3,于是 α2<16/9<2,故 q(α)<0。

因此逐根符号为

(0,−1,−1,0).

不借助这些根的名字,直接计算Sturm–Tarski查询也应得到

T(1;P)=4,T(q;P)=−2,T(q2;P)=2.

三式恢复

(n+,n−,n0)=(2−22,2+22,4−2)=(0,2,2).

这里按不同根计数。若改为按原七次 F 的重数计,根一的负贡献出现两次,结果应为 (0,3,2)。请说明这个变化来自哪一个平方自由块。

任务三:对三次部分使用两种独立中间数据 ​

令 p=x3−x−1。在 I3 中,q=x2−2 的加权负余式链为

p,−4x2+3x+2,(10−x)/16,368.

在 5/4 的符号依次为 (−,−,+,+),变号数一;在 4/3 为 (+,−,+,+),变号数二。查询等于 −1。

另一路由关系 x3=x+1 建立乘法矩阵

C=(001101010).

计算 Tr(Ck),再构造 H1,Hq,Hq2。分别核验Hermite页给出的 LDLT 分解,读出对角数据

(3,2,−23/6),(−4,1/4,−23),(6,−19/6,23/19).

签名分别为 (1,−1,1),因此三次部分有一个实根,在它上面 q 严格为负。不能只比较三张矩阵的行列式符号;签名要求计正、负方向数。

任务四:故意破坏一条证书 ​

逐项说明以下修改为何不合法,并展示错误发生在哪里:

  1. 将普通Sturm链末项 −23/4 首一化为正一,再照旧数变号
  2. 宣称 (4/3,3/2) 也隔离三次根
  3. 对 p=x,用 V(−1)−V(0) 作为开区间 (−1,0) 的根数
  4. 将 Hx 左上角的零当作一个零特征值
  5. 把查询 T(q;P)=−2 写成“恰有两个负根”,不再检查 T(q2;P)

参考核对:第一项会把三次多项式误计为三个实根;第二个区间实际上计零;第三项错误计入右端点;第四张矩阵行列式为 −23,并不退化;第五项一般不能排除更多正负贡献互相抵消。

迁移练习 ​

保持 P 不变,将查询改成 q1=x−1。依区间顺序,符号为 (−1,0,1,1),所以三次查询应为 (N,U,W)=(4,1,3),恢复 (n+,n−,n0)=(2,1,1)。

再将 P 改为 P2:不同根的隔离区间与三次查询不变,按重数统计则每项翻倍。最后试用 x(x2−2) 运行细分;初始中点零恰是根,程序必须走“改选非根切口”的分支,不能把根遗失在左右两个开区间之间。

下载与复算 ​

在Python 3中运行脚本即可,未使用第三方库。多项式系数按低次到高次存储,所有数值运算使用标准库的Fraction。程序检查GCD、平方自由块、Sturm链、手工及自动隔离区间、加权查询、三张合同分解,还用125个查询多项式对一组已知实根进行两算法交叉检查。

脚本为了让每项检查可以独立调用,会重复构建余式链;正文的隔离复杂度分析针对预建并复用一条链的实现,不能直接作为此检查脚本的性能界。

脚本含四类故意损坏的输入或证书检查,并测试中点恰为有理根的分支。结果文件中的PASS表示这些明确列出的计算已通过,不代表一般算法已在证明助手中形式化,也不代表网站渲染、构建或全部内容审核已经完成。