【问题标题】:Possible infinite loop on math equation?数学方程可能无限循环?
【发布时间】:2010-10-09 23:49:30
【问题描述】:

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

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

中估计出来

alt text http://www.goftam.com/images/area.gif

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

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

【问题讨论】:

    标签: math simulation montecarlo


    【解决方案1】:

    应该说 f(xi)

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

    Ref.

    【讨论】:

    • 我宁愿将求和索引更改为 r,并将积分限制更改为 a 和 b。这样就不会混淆 x_i。
    • x_i 是相当标准的符号。
    • 无论哪种方式都是不好的表示法,因为 x1 和 x2 是积分的极限。您希望 xi 或 xr(无论您喜欢哪个)随机分布在 [x1,x2] 中。
    • 我不同意这种记法不好。像数学中的许多事情一样,使用了公认的形式。对我来说 x_i 似乎很自然
    • 重新表示法:xi 本身就是很好的表示法,显然在整个数学中都被接受了。从 1 到 N 的总和超过了 i,这意味着它还包括 i=1 和 i=2。这意味着总和的一部分是 f(x1) 和 f(x2),它们是函数在端点处的值。你可能不想要这个。
    【解决方案2】:

    您的目标是计算 fx1x2 的积分。例如,您可能希望计算sin(x)0pi 的积分。

    使用 Monte Carlo 积分,您可以通过在区间 [x1,x2] 中采样随机点并在这些点处评估 f 来近似此值。或许你想称之为MonteCarloIntegrate( f, x1, x2 )

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

    【讨论】:

    • 谢谢,这就是我要找的。​​span>
    • @Mitch Wheat:为你 +1。 =)
    【解决方案3】:

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

    重点是:[x_1, x_2]f 下的面积等于(x_2 - x_1) 乘以区间[x_1, x_2]f 的平均值。那是

    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).
    

    这是考虑这个等式的另一种方式:在区间[x_1, x_2]f 下的面积与长度为(x_2 - x_1) 且高度等于f 的平均高度的矩形的面积相同. f的平均高度约为

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

    这是我们之前产生的价值。

    【讨论】:

      【解决方案4】:

      是 xi 还是 xr 无关紧要 - 这是我们输入函数 f() 的随机数。

      我更有可能将函数(除了格式化)编写如下:

      (x2-x1) * sum(f(xi))/N

      这样,我们可以看到我们取 f(x) 的 N 个样本的平均值来获得函数的平均高度,然后乘以宽度 (x2-x1)。

      因为毕竟积分只是计算曲线下的面积。 (好图http://hyperphysics.phy-astr.gsu.edu/Hbase/integ.html#c4

      【讨论】:

        【解决方案5】:

        x_r 是积分范围内的随机值。

        用 Random(x_1, x_2) 代替 x_r 会得到一个等价的方程。

        【讨论】:

          猜你喜欢
          • 2011-02-24
          • 1970-01-01
          • 2015-01-11
          • 2020-06-09
          • 1970-01-01
          • 2015-08-29
          • 1970-01-01
          • 2023-03-29
          • 2016-03-19
          相关资源
          最近更新 更多