如何选择蒙特卡洛模拟中的随机点数?

计算科学 算法 收敛 蒙特卡洛
2021-12-23 00:26:56

在对均匀分布执行蒙特卡罗模拟时,我正在努力解决收敛标准。任何帮助将非常感激 !

假设我想统一采样一维间隔(为简单起见)。

我使用随机数生成器(在 Fortran 中)来绘制介于 0 和 1 之间的 X 值。然后,我如何选择点数 N 以便进行良好的采样?

我知道预期平均值(= 0.5),我可以轻松计算我的 MC 点位置的平均值,即 μ = (X_1 +... + X_N) / N。我在想我可以定义一个简单的标准,例如即: μ / < 1% 例如,为了确定 N 是否足够大...

请问谁能告诉我是否有更好的方法来解决这个问题?

非常感谢 !

2个回答

您可能无法确定获得 1% 误差所需的确切点数,但您可以估计获得该精度所需的点的数量级。

的速率收敛,其中是样本大小。这意味着绝对误差有界为,其中 C 是某个常数。粗略地说,这意味着每增加一个精度数字,您就需要多出 100 倍的点数。由于您需要两位数的准确度才能获得 1% 的准确度(即因为 1% 相当于 0.01),所以您将在点的数量级上。由于我们不知道常数 C,因此该估计值并不能保证您将获得 1% 的准确度,恰好点。该常数取决于您正在采样的函数的属性,其数量级可能无法估计.O(1N)N|μμapprox|<CN100100=105105

我还没有遇到可以定义 MC 模拟的最佳样本数量的“显式”公式。

通常,一个好的方法是估计每个样本大小的模拟方差为那么样本的标准误差将是您可以通过增加样本量来重复错误估计,并在误差达到某个阈值的样本量处停止。nσn2nσnn