我假设您正在考虑使用整数系数的多项式。
您为调查选择了错误的起点;您的目标是找到真实根的良好估计。寻找代数公式以便您可以对其进行足够精确的评估是可以做的事情,但这并不是正确的选择。(当然,除非“ k
多项式的最大实根”是您的代数运算之一)
一个更好的起点是使用Sturm定理来分离多项式的根。然后,您可以通过二进制搜索生成更好的估计值,但是如果这样做太慢,则可以使用牛顿方法快速生成高精度的估计值。
但这仅仅是寻找证书。仍然存在哪些证书的问题。
首先,我要指出的是,您可以直接计算两个根的相距是否恰好是 单位,例如,通过计算gcd (p (x ),p (x - k ))。您还必须决定要对重复的根进行处理并进行适当处理。我认为您将特别处理这些情况。kgcd(p(x),p(x−k))
如果我们知道两个根之间的距离不完全是单位,则意味着您可以得出足够精确的估计值,以证明它们大于或小于k个单位。例如,有两种证书:kk
The first kind (proof in the negative) is
- a is not a root of p
- p has no roots in (a−k,a)
- p has three roots in (a,∞)
The second kind (proof in the positive) is
- a is not a root of p
- p has at least two roots in (a−k,a)
- p has two roots in (a,∞)
A certificate can be verified by using Sturm's theorem. Now, your question about the size of a certificate boils down to finding how many bits of precision you need to represent a.
In other words, what are the bounds on the possible values of a−b−k, where a,b are roots of f?
I'm not sure of a great approach, but one that should give you something is to observe that all of these values are roots of the polynomial:
g(x)=Resy(f(y),f(x+y+k))
Why? Recall that the resultant of two monic polynomials is the product of all differences of their roots, so
g(x)=cd2∏a,b(b−(a−x−k))=∏a,b(x−(a−b−k))
where c is the leading coefficient and d is the degree of f. (maybe I've written the formula for −g(x) instead of g(x); I'm never sure on the sign)
So the question is to find estimates for how large the coefficients g can be, and then once you know that, find estimates to how close a root of g can be to zero.
(or, alternatively, find the largest magnitude that a root of the reverse polynomial of g can have; the roots of the reverse polynomial are the inverses of the roots of g)