2

我有以下问题,并且无法理解等式的一部分:

估计积分的蒙特卡罗方法基本上是,取大量随机样本并确定加权平均值。例如,f(x) 的积分可以从 N 个独立的随机样本 x r估计为

替代文字 http://www.govtam.com/images/area.gif

对于 xr 在 [x1, x2] 范围内的均匀概率分布。由于每个函数评估 f(xr) 都是独立的,因此很容易将这项工作分配给一组进程。

我不明白 f(x r ) 应该做什么?它是否反馈到相同的方程中?那不是无限循环吗?

4

5 回答 5

11

它应该说 f(x i )

f() 是我们试图通过数值蒙特卡罗方法进行积分的函数,该方法通过评估从积分区域中随机选择的点来估计积分(及其误差)。

参考

于 2009-02-26T03:29:19.113 回答
7

您的目标是计算ffromx1到的积分x2。例如,您可能希望计算sin(x)from0到的积分pi

使用蒙特卡洛积分,您可以通过在区间内随机采样点并在这些点处[x1,x2]进行评估来近似这一点。f也许你想称之为MonteCarloIntegrate( f, x1, x2 ).

所以不,MonteCarloIntegrate不会“反馈”到自身。它调用一个函数f,即您尝试进行数值积分的函数,例如sin.

于 2009-02-26T03:32:44.443 回答
1

替换f(x_r)为(阅读: f 在sub subf(x_r_i)评估)。是从区间 中随机均匀选择的。xrir_i[x_1, x_2]

关键是: on 下的面积f等于[x_1, x_2]区间on(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)和高度等于 的平均高度的矩形的面积相同f。的平均高度f约为

(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 ) * 和(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 是来自积分范围的随机值。

用 Random(x_1, x_2) 代替 x_r 将给出一个等效方程。

于 2009-02-26T03:44:26.350 回答