Наближення інтегралів з використанням моделювання Монте-Карло в R


12

Як я можу наблизити наступний інтеграл за допомогою моделювання MC?

1111|xy|dxdy

Дякую!

Правка (деякий контекст): Я намагаюся навчитися використовувати моделювання для наближення інтегралів, і я отримую певну практику, коли зіткнувся з деякими труднощами.

Редагувати 2 + 3 : Якось заплутався і подумав, що потрібно розділити інтеграл на окремі частини. Отже, я насправді зрозумів це:

n <- 15000
x <- runif(n, min=-1, max=1)
y <- runif(n, min=-1, max=1)
mean(4*abs(x-y))

2
Ви на правильному шляху! Відповідь, яку ви даєте, дуже близька до правильності. Вам не вистачає однієї крихітної частини. ( Підказка : Що таке pdf випадкової змінної )? U(1,1)
кардинал

2
Це 0,5. Тому мені потрібно помножити на два 2, щоб дати: 'середній (4 * abs (xy))'. Чи нарешті я це отримав?
Моє ім’я

3
(+1) Так ! :) Можливо, вам доведеться зачекати кілька (8?) Годин, але вам варто розглянути можливість повернення та розміщення вашої редакції у відповідь, щоб інші користувачі (як я) могли її схвалити. Ласкаво просимо на сайт! Я сподіваюся побачити, як ви продовжуєте тут брати участь. Ура. :)
кардинал

1
Ще один момент додати: я вважаю максимуми надзвичайно корисними для символічної математики. Якби мені довелося самостійно робити аналітичні розрахунки, у мене була б та сама проблема, що і в @EpiGrad. Але в максимумах ви могли б зробити integrate(integrate(abs(x-y), y, -1, 1), x, -1, 1);і отримати відповідь 8/3.
Карл

2
Для зацікавлених R, хоча і не настільки елегантних у коді максимумів, опублікованому Карлом, можна зробити 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))можна використовувати. Це лише для того, щоб дати пару ідей для числового оцінювання інтегралів, які могли б стати в нагоді, наприклад, під час тестування, якщо симуляція працює правильно.
NRH

Відповіді:


1

Для довідки, низький розмірний інтеграл, як це, зазвичай, більш ефективно виконується за допомогою детермінованої квадратури замість Монте-Карло. Монте-Карло входить у свої власні орієнтовні розміри приблизно від 4 до 6. Зрозуміло, я повинен це навчитися спочатку в низьких розмірах ...


2
Я думаю, саме тому це питання позначене домашнім завданням :-).
whuber

0

Ви можете це зробити в Excel з Tukhi .

Введіть

=tukhi.average(abs(2*rand()-1 - (2*rand()-1))) 

і натисніть кнопку запуску.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.