用乘同余法产生随机数

上传人:枫** 文档编号:431638390 上传时间:2023-03-25 格式:DOCX 页数:8 大小:188.85KB
返回 下载 相关 举报
用乘同余法产生随机数_第1页
第1页 / 共8页
用乘同余法产生随机数_第2页
第2页 / 共8页
用乘同余法产生随机数_第3页
第3页 / 共8页
用乘同余法产生随机数_第4页
第4页 / 共8页
用乘同余法产生随机数_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《用乘同余法产生随机数》由会员分享,可在线阅读,更多相关《用乘同余法产生随机数(8页珍藏版)》请在金锄头文库上搜索。

1、例 2.1 用乘同余法产生随机数 (见光盘 FLch2sjxleg1.m)编程如下:A=6; N=l00;x0=l; M=255;%初始化;for k=l:Nx2=A*x0;xl=mod (x2,M); vl=xl/256;%乘同余法递推10 0次; %x2和x0分别表示x和x ;i i-1%将x2存储器的数除以M,取余数放xl (x.)中;i%将xl存储器的数除以256得到小于1的随机数放vl中;v(:,k)=vl;%将v1中的数(.)存放在矩阵存储器v的第k列中,v(:,k)i%表示行不变、列随递推循环次数变化;x0=xl;v0=vl;%x.-l= x.;endv2=v%递推10 0次结束

2、;%该语句末无;实现矩阵存储器v中随机数放在v2中,%且可直接显示在MATLAB的window中;k1=k;%grapher%以下是绘图程序;k=1:k1;plot(k,v,k,v,r);xlabel(k), ylabel(v);tktle(O-l)均匀分布的随机序列) 产生的 (0-1)均匀分布的随机序列 在程序运行结束后,产生的(0,1)均匀分布的随机序列,直接从 MATLAB 的 window 界面中copy出来如下(v2中每行存6个随机数):v2 =0.02340.l4060.84380.08200.49220.96090.78520.72660.37500.25780.55080.3

3、l640.90230.43360.60940.66800.02340.l4060.84380.08200.49220.96090.78520.72660.37500.25780.55080.3l640.90230.43360.60940.66800.02340.l4060.84380.08200.49220.96090.78520.72660.37500.25780.55080.3l640.90230.43360.60940.66800.02340.l4060.84380.08200.49220.96090.78520.72660.37500.25780.55080.3l640.90230.4

4、3360.60940.66800.02340.l4060.84380.08200.49220.96090.78520.72660.37500.25780.55080.3l640.90230.43360.60940.66800.02340.l4060.84380.08200.49220.96090.78520.72660.37500.25780.55080.3l640.90230.43360.60940.66800.02340.l4060.84380.0820第二章的白噪声产生程序例 2.2 用乘同余法产生(见光盘 FLch2bzsheg2.m) 编程如下:A=6; x0=1; M=255; f

5、=2;N=100; %初始化x0=1; M=255;for k=l: N x2=A*x0;xl=mod (x2,M); vl=xl/256;%乘同余法递推10 0次; %分别用x2和x0表示X和X;i+1i-1%取x2存储器的数除以M的余数放x1 (x.)中;i%将xl存储器中的数除以256得到小于1的随机数放vl中;v(:,k)=(vl-0.5 )*f; %将vl中的数(.)减去0.5再乘以存储器f中的系数,存放i在矩阵存储器v的第k列中,v(:,k)表示行不变、列随递推循环次数变化;x0=x1; % x = x ;i-1 iv0=v1;end%递推100次结束;v2=v%该语句后无;,实现

6、矩阵存储器v中随机数放在v2中,且可直接显示在MATLAB的window中;k1=k;%grapher%以下是绘图程序;k=1:k1;plot(k,v,k,v,r);xlabel(k), ylabel(v);tktle( (-1,+1)均匀分布的白噪声) 程序运行结果如图2.6所示。,+!)均匀分布的白噪声在程序运行结束后,产生的(-1, 1)均匀分布的白噪声序列,直接从MATLAB的window 界面中copy出来如下(v2中每行存6个随机数):v2 =-0.9531-0.71880.6875-0.8359-0.01560.92190.57030.4531-0.2500-0.48440.10

7、16-0.36720.8047-0.13280.21880.3359-0.9531-0.71880.6875-0.8359-0.01560.92190.57030.4531-0.2500-0.48440.1016-0.36720.8047-0.13280.21880.3359-0.9531-0.71880.6875-0.8359-0.01560.92190.57030.4531-0.2500-0.48440.1016-0.36720.8047-0.13280.21880.3359-0.9531-0.71880.6875-0.8359-0.01560.92190.57030.4531-0.250

8、0-0.48440.1016-0.36720.8047-0.13280.21880.3359-0.9531-0.71880.6875-0.8359-0.01560.92190.57030.4531-0.2500-0.48440.1016-0.36720.8047-0.13280.21880.3359-0.9531-0.71880.6875-0.8359-0.01560.92190.57030.4531-0.2500-0.48440.1016-0.36720.8047-0.13280.21880.3359-0.9531-0.71880.6875-0.8359*另外,书中图2.3白噪声的产生如下:

9、显然,只要在例2.2程序的初始化部分中给N=300, f=6,运行程序就可以得到如图2.3 所示的(-3, 3)的白噪声过程.编程如下:A=6; x0=1; M=255; f=6;N=300; %初始化;x0=1; M=255;for k=1: N x2=A*x0;x1=mod (x2,M); v1=x1/256;%乘同余法递推100次;%分别用x2和x0表示x和x;i+1i-1%取x2存储器的数除以M的余数放xl (x.)中;i%将xl存储器中的数除以256得到小于1的随机数放vl中;v(:,k)=(v1-0.5 )*f;%将vl中的数(.)减去0.5再乘以存储器f中的系数,存放 i在矩阵存

10、储器v的第k列中,v(:,k)表示行不变、列随递推 循环次数变化;x0=x1;v0=v1;% xi-1= xi;endv2=v%递推10 0次结束;%该语句后无;实现矩阵存储器v中随机数放在v2中,且可直接显示在MATLAB的window中;k1=k;%grapher%以下是绘图程序;k=1:k1;plot(k,v,k,v,r);xlabel(k), ylabel(v);tktle( (-1,+1)均匀分布的白噪声) 程序运行结果如图2.3所示。-1-3图2.3白噪声声过第二章的M序列产生例2.3用移位寄存器产生M序列的MatLAB也件实现(见光盘FLch2bzsheg3.m) 编程如下:X1

11、=1;X2=O;X3=1;X4=0; %移位寄存器输入X初T态(0101), Yi为移位寄存器各级输出 m=60;%置皿序列总长度for i=1:m%1#Y4=X4; Y3=X3; Y2=X2;Y1=X1;X4=Y3; X3=Y2;X2=Y1;X1=xor(Y3,Y4); %异或运算if Y4=0U(i)=-1;elseU(i)=Y4;endendM=U% 绘图i1=ik=1:1:i1;plot(k,U,k,U,rx)xlabel(k)ylabel(M序列)title(移位寄存器产生的M序列) 程序运行结果如图2.8 所示。图2.8软件实现的移位寄存器产生的M序列图 四级移位寄存器产生的M序列M =Columns 1 through 10-1 1 -1 1111 -1 -1 -1Columns 11 through 201 -1 -1 11 -11 -1 1 1Columns 21 through 301 1 -1 -1Columns 31 through 40-11-1-11-1 1 -1 1111-1-1Columns 41 through 501 -1 -1 11-11-11Columns 51 through 601 1 -1 -1-11-1-11i1 =60-1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号