2

私は次の問題を抱えており、方程式の一部を理解するのに苦労しています:

積分を推定するモンテカルロ法は基本的に、無作為にたくさんのサンプルを取り、加重平均を求めます。たとえば、f(x) の積分は、N 個の独立したランダム サンプル x rから次のように推定できます。

代替テキスト http://www.goftam.com/images/area.gif

範囲 [x1, x2] の xr の一様確率分布の場合。各関数評価 f(xr) は独立しているため、この作業を一連のプロセスに分散するのは簡単です。

私が理解していないのは、 f(x r ) が何をすべきかということですか? それは同じ方程式にフィードバックしますか?無限ループじゃないの?

4

5 に答える 5

11

f(x i )と表示されます。

f() は、積分領域からランダムに選択された点を評価することによって積分 (およびその誤差) を推定する数値モンテカルロ法によって積分しようとしている関数です。

参照

于 2009-02-26T03:29:19.113 に答える
7

fあなたの目標は、からx1までの積分を計算することx2です。たとえば、sin(x)から0までの積分を計算したい場合がありますpi

モンテカルロ積分を使用すると、間隔内のランダムなポイントをサンプリングし、それらのポイント[x1,x2]で評価することでこれを近似できます。fおそらく、これを と呼びたいでしょうMonteCarloIntegrate( f, x1, x2 )

いいえ、MonteCarloIntegrateそれ自体に「フィードバック」しません。f関数、数値積分しようとしている関数、たとえば を呼び出しますsin

于 2009-02-26T03:32:44.443 に答える
1

に置き換えます(読み取り: f はsub subで評価さf(x_r)れます)。は、間隔 からランダムに一様に選択されます。f(x_r_i)xrir_i[x_1, x_2]

ポイントはこれです: fonの下の面積は、 intervalの平均の倍に[x_1, x_2]等しいです。あれは(x_2 - x_1)f[x_1, x_2]

A = (x_2 - x_1) * [(1 / (x_2 - x_1)) * int_{x_1}^{x_2} f(x)\, dx]

f角括弧内の部分は、[x_1, x_2]私たちが示す平均ですavg(f)。の平均をどのように推定できfますか? ランダムなポイントでサンプリングし、それらのランダムなポイントで評価されNたの平均値を取得します。fウィット:

avg(f) ~ (1 / N) * sum_{i=1}^{N} f(x_r_i)

ここでx_r_1, x_r_2, ..., x_r_N、[x_1, x_2] から一様に無作為に選択された点です。

それで

A = (x_2 - x_1) * avg(f) ~ (x_2 - x_1) * (1 / N) * sum_{i=1}^{N} f(x_r_i).

この方程式を別の方法で考えるとf、間隔の下の面積は、長さと高さが の平均高さに等しい[x_1, x_2]長方形の面積と同じです。の平均身長はおよそ(x_2 - x_1)ff

(1 / N) * sum_{i=1}^{N} f(x_r_i)

これは私たちが以前に生み出した価値です。

于 2009-02-26T03:40:12.880 に答える
0

x iか x rかは関係ありません。関数 f() に入力するのは乱数です。

次のように関数を(フォーマットは別として)書く可能性が高くなります。

(x 2 -x 1 ) * sum(f(x i ))/N

このように、f(x) の N サンプルの平均をとって関数の平均高さを取得し、幅 (x2-x1) を掛けていることがわかります。

結局のところ、積分は曲線の下の面積を計算しているだけだからです。( http://hyperphysics.phy-astr.gsu.edu/Hbase/integ.html#c4の素敵な写真。

于 2009-02-26T03:43:49.330 に答える
0

x_r は、積分の範囲からのランダムな値です。

x_r に Random(x_1, x_2) を代入すると、同等の方程式が得られます。

于 2009-02-26T03:44:26.350 に答える