2016-07-27 75 views
0

我想使用二分法來查找給定域內方程的所有根。我的邏輯很簡單,將給定的域分成子域,這樣對於任何給定的子域,最多隻存在一個根。檢查是否f(a)* f(b)< 0如果不是,則跳到下一個間隔,否則找到根(平分)。我的問題但是我如何決定適當的子域大小?對於不改變方向的穩定函數通常具有較小的間隔會浪費時間,對於使用較大間隔的快速「不穩定」函數,可能會在一個間隔中具有多於一個根的風險。如何查找方程改變方向以獲得適用於我的二分法的時間間隔的速度

有無論如何,我可以告訴我關於函數的行爲來提出一個適當的時間間隔相應的前兩個派生?

回答

1

如果您可以指定給定時間間隔內導數的上下限,則可以預測該時間間隔內函數可能採用的最大/最小值,並查看它是否能夠過零。

+0

這正是我的想法,我的假設是每個連續的最小值和最大值之間至多存在一個根,所以如果它通過f(a)* f(b)<0測試將保證返回根目錄並最終返回所有根目錄。然而,我面臨的問題是如何找到上下界,因爲最終這些也是f(x)的一階導數的根源,它使我們回到原始問題,找到所有的問題的適當間隔是什麼一階導數的根源? –

+0

我從來沒有說過,你需要找到派生的根源。我談到了圍繞衍生物的界限。 –

相關問題