预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共30页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

二、Monte-Carlo方法设计思想如图1所示,在单位正 方形内,曲线y=g(x)右 面的阴影A的面积就是 积分值s. 即n充分大时,k/n依概率收敛到P.由于P=s,因此常取 s≈k/n三、数学实验结果及分析现在用投点方法来计算,以k/n作为,的近似值,这里k是n次投点试验中,使不等式 成立的个数. 下面将用混合同余法、乘同余法、加同余法、平取中法、乘积取中法、移位法这6种方法分别产生随机数列,并用投点法来计算上述4个积分.cout<<showpoint<<fixed<<left<<setprecision(4); cout<<"n="<<n<<endl; cout<<"试验次数N="<<N<<",不同随机数产生算法的实验果:"<<endl; cout<<"混合同余法"<<"\t"<<"乘同余法"<<"\t"<<"加同余法"<<endl; cout<<"I_"<<n<<"="<<setw(12)<<I[0]; cout<<"I_"<<n<<"="<<setw(12)<<I[1]; cout<<"I_"<<n<<"="<<setw(12)<<I[2]<<endl; cout<<"平方取中法"<<"\t"<<"乘积取中法"<<"\t"<<"移位法"<<endl; cout<<"I_"<<n<<"="<<setw(12)<<I[3]; cout<<"I_"<<n<<"="<<setw(12)<<I[4]; cout<<"I_"<<n<<"="<<setw(12)<<I[5]<<endl<<endl<<endl; for(j=0;j<6;j++) {k[j]=0;}}}由上面的几组试验可以看出,3种同余法都有 比较好的性质,算出的结果精度高.而取中法(平方 取中法、乘积取中法)和移位法的计算结果明显是错 误的. 在程序运行时通过变量跟踪会发现,取中法(平 方取中法、乘积取中法等)很快退化为0或产生周期 较短的循环.使用平方取中法,当2s=4:初值x0=