What happen to the Convergence rate of Quasi-Monte Carlo Integration?


zhangyuancau
09-23-2004, 09:48 PM
I correctly implemented the Quasi-Random Generator of Halton and Sobel sequences. And then I replaced the independant monte-carlo random generator wiht these Quasi-Random Sequences. I was told by the NR,that the convengence
rate of quasi-Monte Carlo Integration is O(N) instead of Monte Carlo's O(N^1/2) --- However,nothing happened to my
Integration!

That is,Not only the variation But Also the expected value of the two methods were almost the same with various sizes of samplings. To make thing worse, the convergence rate of quasi-Monte Carlo seems also to be O(N^1/2) --- same to classical Monte Carlo!

Is anyone who implemented the quasi-Monte Carlo Integration
,and observed of the convergence rate of O(N)?

Thanks a lot.


My source code is below,it is integration in 3-D, so quasi-MC should outwit MC, but nothing happen...

....
const float den = 1.0f;
sw=swx=swy=swz=0.0;
varw=varx=vary=varz=0.0;
vol=3.0*7.0*2.0;
n = -123;
float f[4];
sobSeq(&n,f)//init the seq
n = 3; //set seq to be 3-dim
for(j=1;j<=n;j++)
{
sobSeq(&n,f)
x=1.0+3.0*f[1] ;
y=(-3.0)+7.0*f[2];
z=(-1.0)+2.0*f[3];

if (z*z+SQR(sqrt(x*x+y*y)-3.0) < 1.0) //equation of torus
{
swx += x*den;
swy += y*den;
swz += z*den;
varw += SQR(den);
varx += SQR(x*den);
vary += SQR(y*den);
varz += SQR(z*den);
}
}
w=vol*sw/n;
x=vol*swx/n;
y=vol*swy/n;
z=vol*swz/n;
dw=vol*sqrt((varw/n-SQR(sw/n))/n);
dx=vol*sqrt((varx/n-SQR(swx/n))/n);
dy=vol*sqrt((vary/n-SQR(swy/n))/n);
dz=vol*sqrt((varz/n-SQR(swz/n))/n);