2011-10-18 59 views
0

在一些數字運算應用中,我需要在模擬過程中爲一維生成一些數值函數的實數根(未定義數,大於或等於零)沒有解析表達。找到數值函數根的最佳平行方法

給定所需的準確性,我不知道哪個是最好的(最快的)並行方法/算法。

+1

函數如何存儲/計算?它是一些x,f(x)對還是什麼?你知道關於該功能屬性的任何信息,例如它是連續的嗎? –

+0

爲其他某些東西保存並行性會更好嗎?我的意思是,如果您要多次解決此功能,則不必並行化解算器:只需要求解器的調用需要並行完成。事實上,我不知道有任何一維解算器能夠實現並行化。 –

回答

4

你正在尋找一個平行Root-finding algorithm

Bisection method,這是一個典型的divide and conquer algorithm可以容易地並行化: 的興趣[A,B]可以分裂爲n(可能重疊的)的間隔,該間隔這可以同時檢查f(a) < 0 and f(b) > 0 or f(a) > 0 and f(b) < 0

建議一些更一般和更復雜的算法。例如,看看here

+1

我沒有看到你如何平行二分法。 –

+0

您可以通過遞歸檢查二等分的每一面來對其進行並行化。它就像一棵二叉樹,或者像熟悉排序算法一樣的合併排序。你從一個塊開始,將它分成兩半,然後分別進行任何一個塊,將每個塊分成兩半,檢查根等。 – grisaitis