当我模拟布朗运动时,我需要在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
答案 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
}
}