[英]How to make this loop faster
這個循環需要大約一個小時。 有沒有辦法讓這更快?
l <- 2
while (l < 300001) {
VV[1,l] = log(b+(l-1) * 0.001-0.0005) + k +
beta * (1-delta) * (1-p * sum(Pr[1,(1:l)])) * V[1, l] +
beta *(1-delta) * p * sum((V[1,] * Pr[1,])[(l+1):300001])
l = l + 1
}
如果在* nix(Linux,Unix,macOS,...)上,您可以使用parallel
處理:
library(parallel)
VV <- matrix(ncol = 300001)
mclapply(2:300001, function(l){
VV[1,l] <<- log(b+(l-1) * 0.001-0.0005) + k + beta * (1-delta) * (1-p * sum(Pr[1,(1:l)])) * V[1,l]+beta *(1-delta) * p * sum((V[1,] * Pr[1,])[(l+1):300001])
}, mc.cores = 5)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.