【发布时间】:2016-05-09 07:33:41
【问题描述】:
已编辑的问题
对于误码率计算,您应该进行多少次迭代才能使模拟成为准确的“蒙特卡洛模拟”?
最小值是多少?如果我想以指数增长的数字重复模拟五次?我应该从1e2开始>>迭代= [1e2 1e3 1e4 1e5 1e6]还是1e3 >> [1e3 1e4 1e5 1e6 1e7]?或者是其他东西?常见的做法是什么?
附加信息: 我以前用过 [8e3 1e4 3e4 5e4 8e4 1e5] 但教授说这还不够。因为结果不尽如人意。
在我的计算机上进行模拟需要很长时间,因此我无法根据结果不断更改迭代。如果有这方面的常见做法,请告诉我。
感谢@BillBokeey 帮助我编辑问题。
【问题讨论】:
-
嗯,这是一个尴尬的问题。
Monte Carlo simulation是一个随机过程,因此任何介于 1 和无穷大之间的数字都符合定义。一个更好的问题是包含convergence这个词(并发布在math.stackexchange.com上) -
我的教授告诉我增加迭代次数,因为这是一个“蒙特卡罗”模拟......所以我假设蒙特卡罗模拟的迭代次数最少。 @BillBokeey
-
蒙特卡洛算法收敛(意味着结果更接近解),因为迭代次数趋于无穷大。因此,增加迭代次数可以让您更接近解决方案。如果您知道模拟的预期结果(例如,您正在尝试使用 Monte Carlo 方法逼近 pi 的值),您可以定义一个公差并在您距离 pi 比您定义的公差更近时停止您的算法
-
根据您的编辑,我认为您的教授希望您做的是为 以指数方式增加次迭代运行模拟,并绘制结果与迭代次数的关系图为了证明这个算法确实会收敛
-
@BillBokeey 是的,在这种情况下,做 1e2 然后 1e3 然后 1e4 就足够了吗?还是我应该从 1e3 开始?常见的做法是什么?
标签: matlab simulation montecarlo