【发布时间】:2014-03-31 06:55:17
【问题描述】:
我有一个蒙特卡洛马尔可夫链模拟要测试。系统大小为n。现在想知道n和cost是什么关系。换句话说,我想知道成本中n 的幂/阶,例如,是n^2.5 还是n^2.8?
由于涉及的因素和步骤很多,我不想先分析复杂性。我非常想运行模拟以获得机器时间成本。所以我的问题是如何根据机器时间获得成本关系n^x,其中x 是未知的?
例如n = 1000时,需要t_1运行一次完整的扫描,也就是1000蒙特卡洛步骤。当n = 666 时,需要t_2 运行一个完整的扫描,这次是666 Monte Carlo 步骤。 n的不同大小我可以得到t_1,t_2,t_3,那么如何查看费用的顺序呢?
顺便说一句,使用不同的计算机获取机器时间有关系吗?对不起,我的无知。
【问题讨论】:
-
使用 tic, toc 获取不同 n 的时间(我猜如果给定时间存在分布,你必须取平均值),然后使用 log 获取指数(假设它是指数形式)并在不同的 n 值上进行最佳拟合。
-
@Lazarus 非常感谢。请您单独回答,以便我可以选择答案?
-
@Lazarus 通过取平均值,你的意思是我需要为一个 n 的系统运行 k*n 次并且平均时间超过 k 吗?
-
是的。你经营的是蒙特卡罗,所以我认为会有一些差异。如果方差真的很小,那么就忽略平均部分。
标签: matlab complexity-theory simulation time-complexity montecarlo