求数值函数根的最佳并行方法
在一些数字运算应用中,我需要找到模拟过程中产生的、没有解析表达式的某个一维数值函数的多重(未定义的数字,大于或等于零)实根。
给定所需的精度,我想知道哪种是最好(最快)的并行方法/算法。
In some number crunching application, I need to find the multiple (undefined number, bigger or equal to zero) real roots of some numerical function in one dimension produced during the simulation and for which there is not analytical expression.
Given a required accuracy, I wonder which is the best (fastest) parallel method/algorithm for doing this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正在寻找并行寻根算法
二分法,这是一个经典的分治算法可以轻松并行化:
感兴趣的区间[a,b]可以被分割成n个(可能重叠)区间,可以同时检查f(a)<n。 0且f(b)> 0或f(a)>0 0且f(b)<0 0
建议一些更通用和更复杂的算法。例如,请查看此处。
You are looking for a parallel Root-finding algorithm
The Bisection method, which is a classic divide and conquer algorithm can be easily parallelized:
The interval of interest [a,b] can be splitted to n (possibly overlapping) intervals, which may be simultaneously checked for
f(a) < 0 and f(b) > 0 or f(a) > 0 and f(b) < 0
Some more general and more complex algorithms where suggested. Look here for example.