2011-10-03 23 views
1

我想在Commons Math中使用root solvers(例如:BrentSolver)來尋找多項式函數的根,但它們似乎都需要使用最小/最大值的初始估計,其中函數具有不同的信號。如何查找與根解算器一起使用的最小/最大值?

那麼我該如何去做這件事?我知道我可以在任何時間間隔內計算f(x),但如果我的間隔太大,我還會這麼做嗎?每一次嘗試之間的步驟應該有多大?沒有更好的方法來做到這一點?

+0

無法保證偶數階多項式具有(真正的)根。如果多項式是奇數,那麼最終多項式值由最高階項佔優勢,對於x的正值和負值,其具有相反的符號。這意味着你可以選擇一個很大的值X並使用(-X,+ X)作爲搜索間隔。 –

回答

1

我認爲他們想要的是一個開始搜索的時間間隔。最小值和最大值定義了您認爲根源的區域。

我不知道你的意思是「間隔太大」。它不會是+/-無窮大;你必須先有一些感興趣的區域。

運行一次;看看你得到了什麼。嘗試一些其他的時間間隔來查看是否可以找到真正的全球最小/最大值。

無法將數值方法用作完整的黑匣子。你必須知道你的功能和方法是如何工作的。使用它們作爲迭代工具來了解您感興趣的功能。