В следующем коде я создаю имитацию падения снаряда методом Монте-Карло. Я вполне уверен, что симуляционная часть кода верна, но у меня возникают проблемы с вычислением среднего значения переменной g_estimate
(гравитация) в симуляции. Я вычисляю g_estimate
на каждой итерации, но когда я беру mean
, он возвращает то же значение, что и g_estimate
. Я думаю, это потому, что он вычисляет mean
для каждой итерации, когда мне нужно общее mean
. Я хочу создать матрицу или вектор для хранения всех значений g_estimate
, но пока мне это не удалось. Вот код:
#Monte Carlo simulation of distance formula equation
set.seed(1)
N <- 100000
g = 9.8
h0 = 56.67
v0 = 0
n = 25 #Number of devisions for time variable
tt = seq(0, 3.4, len = n) #Split time tt into 25 values between 0 and 3.4
y = h0 + v0 * tt - 0.5 * g * tt ^ 2 + rnorm(n, sd = 1) #Traces the path of the projectile
X = cbind(1, tt, tt ^ 2) #Define the matrix of variables
A = solve(crossprod(X)) %*% t(X) # A = (X^T X)^-1 X^T
replicate(N, {
y = h0 + v0 * tt - 0.5 * g * tt ^ 2 + rnorm(n, sd = 1) #Traces the path of the projectile
Exercise_Beta <- A %*% y #Returns a matrix of beta values
g_estimate <- c(-2 * Exercise_Beta[3]) #Calculates g constant each iteration
return(mean(g_estimate))
})
Любая помощь приветствуется! Пожалуйста, дайте мне знать, если вам понадобится дополнительная информация. Заранее спасибо!