Как мне аппроксимировать следующий интеграл с помощью симуляции MC?
Благодарность!
Редактировать (в некотором контексте): я пытаюсь научиться использовать симуляцию для аппроксимации интегралов, и я получаю некоторую практику, когда сталкиваюсь с некоторыми трудностями.
Правка 2 + 3 : Каким-то образом я запутался и подумал, что нужно разделить интеграл на отдельные части. Итак, я на самом деле понял это:
n <- 15000
x <- runif(n, min=-1, max=1)
y <- runif(n, min=-1, max=1)
mean(4*abs(x-y))
2
Это 0,5. Поэтому мне нужно умножить на две 2, чтобы получить: «среднее (4 * abs (xy))». Я наконец получил это?
—
Мое имя
(+1) Да ! :) Возможно, вам придется подождать несколько (8?) Часов, но вы должны подумать о том, чтобы вернуться и внести изменения в ответ, чтобы другие пользователи (как я) могли проголосовать за него. Добро пожаловать на сайт! Я надеюсь, что вы продолжите участвовать здесь. Приветствия. :)
—
кардинал
Одно замечание: я считаю, что максимумы чрезвычайно полезны для символической математики. Если бы мне пришлось самостоятельно выполнять аналитические вычисления, у меня была бы та же проблема, что и у @EpiGrad. Но в максимумах вы могли бы сделать
—
Карл
integrate(integrate(abs(x-y), y, -1, 1), x, -1, 1);
и получить ответ 8/3.
Для R, хотя и не так элегантно в коде максимумов, опубликованном Карлом, можно сделать
—
NRH
integrate(Vectorize(function(y) integrate(function(x) abs(x-y), -1, 1)$value), -1, 1)
и получить числовое приближение. Использование кубатурного пакета adaptIntegrate(function(x) abs(x[1] - x[2]), c(-1, -1), c(1, 1))
может быть использовано. Это просто для того, чтобы дать пару идей для числовой оценки интегралов, которые могут пригодиться, например, при тестировании, если симуляция работает правильно.