我想在Commons Math中使用root solvers(例如:BrentSolver)来查找多项式函数的根,但它们似乎都需要使用最小值/最大值的初始估计值,其中函数具有不同的信号。
那我该怎么做呢?我知道我可以在我想到的任何时间间隔内为点数计算f(x),但如果我的间隔太大,我还能这样做吗?每次尝试之间的步骤应该有多大?有没有更好的方法来做到这一点?
答案 0 :(得分:1)
我认为他们想要的是搜索的起始间隔。最小值和最大值定义了您认为根的区域。
我不知道“间隔太大”是什么意思。它不会是+/-无穷大;你必须有一些感兴趣的领域。
运行一次;看看你得到了什么。尝试其他一些时间间隔,看看是否能找到真正的全局最小值/最大值。
不可能将数值方法用作完整的黑盒子。您必须了解有关您的功能以及方法的工作原理。使用它们作为迭代工具来了解您感兴趣的功能。
答案 1 :(得分:1)
您可以尝试Durand-Kerner-Weierstrass方法作为估算或检查。 Java实现显示为here。