建模与仿真作业-随机数生成

建模与仿真作业-随机数生成

ID:1819250

大小:86.00 KB

页数:11页

时间:2017-11-13

建模与仿真作业-随机数生成_第1页
建模与仿真作业-随机数生成_第2页
建模与仿真作业-随机数生成_第3页
建模与仿真作业-随机数生成_第4页
建模与仿真作业-随机数生成_第5页
资源描述:

《建模与仿真作业-随机数生成》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、建模与仿真作业随机数生成本次作业使用MATLAB编写程序。1、线性同余法基本公式:其中a为乘子,为种子,c为常数,M为模迭代步骤:(1)设定a,c,M值,并给定初始种子(2)令(3)(4)(5),转入(3)本题采用著名的Coveyou与Macpherson混合同余发生器及Kobayashi混合同余发生器程序代码:线性同余法函数:functionr=MixMOD(x0,n,type)%随机数种子:x0%产生的随机数个数:n%采用的混合同余法的公式类型:type%产生的随机数序列:rformatlong;M1=p

2、ower(2,31);M2=power(2,35);a1=314159269;a2=power(5,15);c1=453806245;c2=1;r=zeros(n,1);x=zeros(n+1,1);x(1)=x0;iftype==1fori=2:n+1y=a1*x(i-1)+c1;x(i)=mod(y,M1);r(i-1)=x(i)/M1;endelsefori=2:n+1y=a2*x(i-1)+c2;x(i)=mod(y,M2);r(i-1)=x(i)/M2;endendformatshort;对(0,1

3、)均匀分布随机数进行矩检验函数:function[s1,s2,s3,s4]=moment_test(R)%对(0,1)均匀分布随机数进行矩检验n=length(R);R_mean=mean(R);R_var=var(R);R_std=std(R);u1=sqrt(12*n)*(R_mean-0.5);ifabs(u1)<1.96s1='pass';elses1='*';end%对方差进行检验var(R)u2=sqrt(180*n)*(R_var-1/12)ifabs(u2)<1.96s2='pass';els

4、es2='*';end%对偏度进行检验u3=mean(((R-R_mean)/R_std).^3)*0.408248*sqrt(n);ifabs(u3)<1.96s3='pass';elses3='*';end%对峰度进行检验uu=mean(((R-0.5)/sqrt(1/12)).^4)-1.75u4=uu*0.204124*sqrt(n);ifabs(u4)<1.96s4='pass';elses4='*';end相关系数检验函数:function[sacf1,sacf2,sacf3,sacf4,sacf

5、5,sacf6,sacf7]=acf_test(R)%独立性的自相关AFC检验R_mean=mean(R);R_var=var(R);n=length(R);fori=1:7rou(i)=sum(((R(1:n-i).*R(i+1:n)-R_mean^2))/R_var)*sqrt(1/(n-i));endrouifabs(rou(1))<1.96sacf1='pass';elsesacf1='*';endifabs(rou(2))<1.96sacf2='pass';elsesacf2='*';end线性同余

6、法和移位寄存器法联合使用:functionmt=initializeGenerator(seed)%初始化随机序列数组的函数N=624;mt=zeros(1,N);mt(1)=seed;fori=2:Ny=1812433253*bitxor(mt(i-1),bitshift(mt(i-1),-30))+i-1;mt(i)=uint32(bitand(uint64(y),hex2dec('ffffffff')));end;function[y2,mt1]=extractNumber(mt1,index)%根据i

7、ndex的值提取数组中的某个数来生成随机数ifindex==1mt1=generateNumbers(mt1);y1=mt1(index);y1=bitxor(y1,bitshift(y1,-11));y1=bitxor(y1,bitand(bitshift(y1,7),2636928640));y1=bitxor(y1,bitand(bitshift(y1,15),4022730752));y1=bitxor(y1,bitshift(y1,-18));functiony2=generateNumbers(m

8、t)%产生随机数N=624;fori=1:Ny3=bitand(mt(i),2147483648);j=i;j=j+1;ifi==624j=1;end;y2=y3+bitand(mt(j),2147483647);k=i+397;ifk==624k=1;end;mt(i)=bitxor(mt(mod(k,624)),bitshift(y2,-1));ifmod(y2,2)==1mt(i)=bitxo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。