这是 matlab 中用于随机游走模拟的代码的一部分。
- 为了测试代码,我使用 steps=[30]; 会有更多的值,但我想运行 1 次试用以减少代码处理。
log_steps = log(1:steps);
<--- 对应于绘图 x 轴的日志(步数向量)log_AVG = log(d_AVG);
<---- 对应于绘图 y 轴的日志(平均步长)
预期的方法
来证明表示任何一步(向前||向后)的概率为 0.5。
问题:程序的 p 值估计值比应有的值大 10 倍。它给出的 p 值介于 4 到 5 之间,此时 p 应该约为 0.5。
逻辑错在哪里?相关代码如下。
figure(i+10);
hold on;
loglog(log_steps, log_AVG,'-s');
%loglog(1:steps(i), d_AVG, '-s');
N=log_steps;
c= log_AVG;
p = polyfit(N, c,0);
f = (c.* (N.^p));
hold on;
loglog(N, f);
hold off;
end;