Попытка построить функцию для имитации 100 путей частицы в R - PullRequest
0 голосов
/ 09 марта 2020

так что, в основном, скажем, у меня есть функция X, которая будет вычислять случайное движение частицы в 1 измерении. Функция имеет разные константы и нормальную случайную величину W, каждый путь происходит каждые 0,1 мс. Я хочу смоделировать 100 путей.

X <- 0;
Dt <- 0.0001;
V <- 0.5;
for (j in 0:100){
    W <- rnorm(100, j*Dt*V,1);
    x[0] = 0;
    x[j] = x[j-1] + Dt*V+ W*sqrt(Dt)
}

Но я получаю сообщение об ошибке, говорящее, что «замена имеет нулевую длину», также после получения различных положений частицы, я хотел бы смоделировать ее, но я Я не уверен, как это сделать. Спасибо

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

Я полагаю, вы пытаетесь сделать что-то вроде этого:

X <- 0;
Dt <- 0.0001;
V <- 0.5;

LEN <- 101 
W <- rnorm(LEN - 1, Dt * V, 1) 
x <- rep(0, LEN) 
for (i in seq_len(LEN - 1)) {
  x[i + 1] = x[i] + Dt * V + W[i] * sqrt(Dt)
}
x
0 голосов
/ 09 марта 2020
X <- array()
Dt <- 0.0001
V <- 0.5
X[1] = 0
for (j in 2:101){
    W <- rnorm(100, j*Dt*V,1)
    X[j] = X[j-1] + Dt*V+ W*sqrt(Dt)
}
...