【发布时间】:2018-10-10 17:35:31
【问题描述】:
我想知道这是否可能以及如何并行化 R 中的积分函数以加快数值积分。
我在这里写一个小例子,以防有人可以帮助我。
b0=function(time){0.05*sin(0.1*time)+0.1}
d0=0.14
#Function to integrate
f0<-Vectorize(function(t,d0){b0(t)-d0},"t")
integrate(f0,lower=0,upper=1000,d0=d0)$value
这个小例子很快,但我有更复杂的例子,速度较慢,我想让它们更快。
【问题讨论】:
-
你能不能分割你正在整合的区域并并行化?
-
如果您可以创建一个实际矢量化的函数,而不是使用带有 mapply/Vectorize 的循环,您将获得比并行化更好的速度增益。
-
@Roland 但我的函数已经矢量化了。你的意思是,如果我并行化那个向量化函数,我不会获得任何速度??
-
编译被积函数可能会加快速度。
-
我认为 RcppNumerical 包的集成速度非常快。
标签: r parallel-processing numerical-integration integrate