一种利用代数方法精确地计算实系数多项式在给定区间内不同实根个数的工具
一、Sturm 序列的构造
对于给定的实系数多项式
我们按如下规则生成一个多项式序列
称为 Sturm 序列:
- 初始项
- 递推关系
当 与 已知时,用多项式除法求余:
定义
这样一直除下去,直到余数为常数或零为止。
二、符号变化次数(Sign Variation)
对于任意一个实数 xx,计算序列中每个多项式在 t=xt=x 时的实数值:
然后按下列规则统计 符号变化数 :
- 先把所有取值为零的项去掉(或忽略它们对符号变化的影响);
- 剩余非零项中,相邻两项符号相反即算一次“符号变化”;
- 就是整个序列中符号变化的总次数。
三、Sturm 定理
令区间端点为,且假设在 { }处都不为零,也没有重根。则:
四、应用步骤
以例子说明——假设
展开可得一个四次多项式。我们:
- 构造序列
- 计算符号变化
- 在处,带入每个,得到数值序列,统计符号变化 。
- 在处,带入得到另一序列,统计符号变化。
- 得出根数
五、小结
- 精确:Sturm 定理给出的就是不同实根的确切个数,不会漏根或重算。
- 高效:构造序列和在两个端点处求值并计数,都是一系列纯代数(多项式除法、求值、符号比较)操作,比直接解高次方程要快且稳定。
- 应用场景:在轨迹规划中,可以用它来检测某条多项式轨迹是否会穿越加速度、速度等约束边界——只要沿某个约束面构造差值多项式,检查它在给定时间区间内是否有根即可。