R中的散点图

时间:2017-06-12 02:40:12

标签: r

我通过在蒙特卡洛课程中重新做一些作业来教我自己。我在R中构建了一个RANDU生成器,我的任务是序列中的所有三元组(u_i,u_ {i + 1},u_ {i + 2}),其中0.5< = u_ {i + 1}< = 0.51,绘制u_i与u_ {i + 2}。

我在课堂上在MATLAB中做了以下工作,我得到了这个:

enter image description here

这是我在Latex中编写的代码,请注意存储在变量u中的数据只是0到1之间的均匀随机数。

enter image description here

现在我的问题是,我在R

中收到此错误
Error in if (0.5 <= u[i + 1] & u[i + 1] <= 0.51) { : 
  missing value where TRUE/FALSE needed

我不确定这里的问题是什么,这是我的完整R代码:

n = 20002
x <- 1:n
x[1] = 1

for(i in 2:n){
  x[i] = (65539*x[i-1]) %% 2^31
}

u <- 1:n
u[1] = 1/(2^31)
for(i in 2:n){
  u[i] = x[i]/(2^31)
}


for(i in 1:length(u)){
  if(0.5 <= u[i+1] & u[i+1] <= 0.51){
    plot(u[i],u[i+2])
  }
}

非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

我认为问题出在u的最后一次观察中。对于您要求评估for的{​​{1}}循环。试试这个:

u[i+1]