我有非平凡次数(4+)的多项式,需要稳健有效地确定它们是否在区间 [0,T] 中有根。根的精确位置或数量与我无关,我只需要知道是否至少有一个。
现在我正在使用区间算术作为快速检查,看看我是否可以证明不存在根。如果不能,我将使用 Jenkins-Traub 来求解所有多项式根。这显然是低效的,因为它正在检查所有真正的根并找到它们的确切位置,而我最终不需要的信息。
我应该使用标准算法吗?如果没有,在对所有根进行完整的 Jenkins-Traub 求解之前,我还能做其他有效的检查吗?
例如,我可以做的一种优化是检查我的多项式 f(t) 在 0 和 T 处是否具有相同的符号。如果不是,则区间中显然有一个根。如果是这样,我可以求解 f'(t) 的根,并在区间 [0,T] 内计算 f' 的所有根处的 f。当且仅当所有这些评估与 f(0) 和 f(T) 具有相同的符号时,f(t) 在该区间中没有根。这将我必须求根的多项式的次数减少了一个。不是一个巨大的优化,但也许总比没有好。