例如,蒙特卡洛模拟的常见情况是,如果我们想运行我们的模拟步骤,我们定义一个增量这样告诉我们在 MC 运行期间我们测量/评估感兴趣的数量的频率。例如,说我们想测量一个可观察的平均值每次之后步骤(所以在这里)。平均值是通过除以得到的按次数已被测量。这是对时间或 MC 步骤进行线性采样,模拟看起来像示意图(用 Python 风格编写):
interval = N/delta
f = 0
countmeasurement = 0
for mcstep in range(1,N):
interval -= 1
.
.
.
if interval == 0:
f += computef()
.
.
interval = N/delta
countmeasurement += 1
#save or print
print "steps ", mcstep, "average f ", f/countmeasurement
题:
有了这个方案,如果稍后我们绘制作为 MC 步长的函数,在对数对数比例图上,我们不会为每个时间尺度采样相同数量的数据点,因为我们仅对总步长进行线性采样。我们如何改变我们的采样方案,从而重新定义interval,以便我们收集相同数量的数据点对于对数图的每个部分(时间尺度)?在蒙特卡洛模拟中以对数方式对 MC 步骤进行采样是否常见?