我用两种方法模拟标准布朗运动,但是不知道做的对不对,因为两种方法作图 结果不一样
##第一种方法:
##n=1000
S1000=c();
n=1000;
seq_t=sort(runif(n));
for (i in 1:n)
{ t=runif(1);
nt=round(n*t);
e=rnorm(nt);
S1000[nt]=sum(e)/sqrt(n);
}
##第二种方法
##n=1000
n=1000;
Brown1000=c();
t=sort(runif(n));
Brown1000[1]=0;
Brown1000[2]=Brown1000[1]+rnorm(1)*sqrt(t[1]);
for (i in 2:n)
{ w=Brown1000+rnorm(1)*sqrt(t[i+1]-t);
Brown1000=c(Brown1000,w);
}
##作图
par(mfrow=c(2,1));
ts.plot(S1000,col="blue",main="模拟布朗运动1 n=1000");
ts.plot(Brown1000,col="red",main="模拟布朗运动2 n=1000");
哪位DX能告诉我 到底那个是正确的??


雷达卡








京公网安备 11010802022788号







