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
あなたは正しい軌道に乗っています!あなたが与える答えは正解に非常に近いものです。1つの小さな部分が欠落しています。(ヒント:のPDFは何である確率変数)は?U(1,1)
枢機

2
0.5です。したがって、「mean(4 * abs(xy))」を得るには2つの2を掛ける必要があります。やっと手に入れましたか?
私の名前

3
(+1)はい!:)数時間(8?)時間待たなければならないかもしれませんが、他のユーザー(私のような)がそれを支持できるように、戻って編集内容を回答に入れることを検討する必要があります。サイトへようこそ!引き続きここにご参加ください。乾杯。:)
枢機

1
追加する1つのポイント:シンボリック数学には最大値が非常に役立つことがわかりました。自分で分析計算を行う必要がある場合、@ EpiGradと同じ問題が発生します。しかし、最大値ではintegrate(integrate(abs(x-y), y, -1, 1), x, -1, 1);、8/3の答えを得ることができます。
カール

2
興味のあるRについては、Karlが投稿した最大コードではそれほどエレガントではありませんintegrate(Vectorize(function(y) integrate(function(x) abs(x-y), -1, 1)$value), -1, 1)が、数値近似を行うことができます。cubatureパッケージを使用するadaptIntegrate(function(x) abs(x[1] - x[2]), c(-1, -1), c(1, 1))ことができます。これは、たとえばシミュレーションが正常に動作するかどうかをテストする場合などに役立つ、積分の数値評価に関するいくつかのアイデアを提供するためのものです。
NRH

回答:


1

参考までに、そのような低次元積分は、通常、モンテカルロの代わりに決定論的求積法により効率的に行われます。モンテカルロは、約4〜6次元で独自に機能します。もちろん、最初に低次元で学習し始めました...


2
だからこそ、この質問には宿題のタグが付けられていると思います:-)。
whuber

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.