布朗运动中的种子功能

时间:2015-10-10 05:23:47

标签: r

当我模拟布朗运动时,我需要在R中使用10到20个种子。我的代码是关注的,但我认为这只是一个固定的种子,如何在不同的种子下创建,谢谢

u <- 0.05
sigma <- 0.2
t <- 1
steps <- 252
S0 <- 100
dt <- u / steps
set.seed(10:20)
epsilon_t_vec <- rnorm(steps)
epsilon_t_vec <- append(0, epsilon_t_vec)
dwt_vec <- epsilon_t_vec * sqrt(dt)
St_vec <- c()
St_vec[1] <- S0
for(i in 1:steps) {
  dwt <- dwt_vec[i+1]
  St_vec[i+1] <- St_vec[i] + u * St_vec[i] * dt + sigma * St_vec[i] * dwt
}
St_vec

1 个答案:

答案 0 :(得分:0)

你可以这样做。每次在第二个循环中更改种子的位置,并将输出附加到具有种子长度的列表中。

u <- 0.05
sigma <- 0.2
t <- 1
steps <- 252
S0 <- 100
dt <- u / steps

seeds <- 10:20
St_vec <- list()


for(s in 1:length(seeds)) {
set.seed(seeds[s])

epsilon_t_vec <- rnorm(steps)
epsilon_t_vec <- append(0, epsilon_t_vec)

dwt_vec <- epsilon_t_vec * sqrt(dt)
St_vec[[s]] <- c(S0) 



for(i in 1:steps) {
  dwt <- dwt_vec[i+1]
  St_vec[[s]][i+1] <- St_vec[[s]][i] + u * St_vec[[s]][i] * dt + sigma * St_vec[[s]][i] * dwt
}
}