一、采用混合同余法生成随机数

根据要求生成100个[0,1]内的均匀分布随机数,且运用混合同于法,混合同于法为线性同余法中的一种方法,混合同余法的迭代公式如下:

其中,若 和 不为0,则为混合同余法;若 和 不为0,则称为乘同余法。

根据上述方法利用matlab编程得到生成均匀分布函数fangzheng3如下程序:

function f=fangzheng3(a,c,m,x)

A=zeros(1000,1);

n=1;

while n<=1000

n=n+1;

x=rem((a*x+c),m);

r=x/1000;

A(n-1,1)=r;

End

运行如下:

fangzheng3(97,3,1000,71)得到的结果见附表1,部分结果如下表1:混合同余法生成随机数部分结果表:

表1:混合同余法生成随机数部分结果表:

序号

随机数

序号

随机数

序号

随机数

序号

随机数

序号

1

0.89

101

0.39

201

0.89

301

0.39

401

2

0.333

102

0.833

202

0.333

302

0.833

402

3

0.304

103

0.804

203

0.304

303

0.804

403

4

0.491

104

0.991

204

0.491

304

0.991

404

5

0.63

105

0.13

205

0.63

305

0.13

405

6

0.113

106

0.613

206

0.113

306

0.613

406

7

0.964

107

0.464

207

0.964

307

0.464

407

8

0.511

108

0.011

208

0.511

308

0.011

408

9

0.57

109

0.07

209

0.57

309

0.07

409

10

0.293

110

0.793

210

0.293

310

0.793

410

11

0.424

111

0.924

211

0.424

311

0.924

411

12

0.131

112

0.631

212

0.131

312

0.631

412

13

0.71

113

0.21

213

0.71

313

0.21

413

14

0.873

114

0.373

214

0.873

314

0.373

414

15

0.684

115

0.184

215

0.684

315

0.184

415

16

0.351

116

0.851

216

0.351

316

0.851

416

17

0.05

117

0.55

217

0.05

317

0.55

417

18

0.853

118

0.353

218

0.853

318

0.353

418

19

0.744

119

0.244

219

0.744

319

0.244

419

对生成的随机数进行一般的统计量进行计算,计算出生成随机数的均值和方差以及标准差,matlab程序如下:

sum=0;

for n=1:1000

sum=sum+A(n,1);

end

sum

Avg=sum/1000; %计算其均值

s=0;

for n=1:1000

s=s+(A(n,1)-Avg)^2;

end

S=s/(1000-1) %计算其方差

Stdv=S^0.5 %计算其标准差

得到如下结果:

Avg =0.49950000000000

S =0.08339464464464

Stdv =0.28878130937553

可以看出,生成的均匀分布随机数是均值为0.5,标准差在0.3左右。

2、用上面的均匀分布随机数,再根据正态分布函数生成正态分布随机数,标准正态分布函数如下:

因此利用matlab编程,程序如下:

n=length(A);

Z=zeros(n,1);

z=zeros(n,1);

for i=1:n;

z(i,1)=A(i,1)-0.5;

Z(i)=exp((-z(i,1)^2)/2)/(2*pi)^0.5;

plot(z(i,1),Z(i,1),'-r');

hold

on

end

根据上面的程序将生成的均匀分布随机数转化成了标准正态分布随机数,结果见附表2,部分结果如下表2:标准正态分布随机数

表2:标准正态分布随机数

序号

随机数值

序号

随机数值

序号

随机数值

序号

随机数值

1

0.3697277

101

0.396536

201

0.3697277

301

0.396536

2

0.3934178

102

0.3774251

202

0.3934178

302

0.3774251

3

0.3913525

103

0.3809274

203

0.3913525

303

0.3809274

4

0.3989261

104

0.3536389

204

0.3989261

304

0.3536389

5

0.3955854

105

0.3725483

205

0.3955854

305

0.3725483

6

0.3701589

106

0.3964033

206

0.3701589

306

0.3964033

7

0.3582277

107

0.3986838

207

0.3582277

307

0.3986838

8

0.3989181

108

0.3539856

208

0.3989181

308

0.3539856

9

0.3979661

109

0.3637136

209

0.3979661

309

0.3637136

10

0.3904861

110

0.3821802

210

0.3904861

310

0.3821802

11

0.3977918

111

0.3646466

211

0.3977918

311

0.3646466

12

0.372686

112

0.3955338

212

0.372686

312

0.3955338

13

0.3902419

113

0.3825146

213

0.3902419

313

0.3825146

14

0.3721333

114

0.3957379

214

0.3721333

314

0.3957379

15

0.3922458

115

0.379513

215

0.3922458

315

0.379513

通过生成的结果做出了标准正态分布图如下图:

matlab线性同余发生器,用MATLAB进行随机数模拟--线性同余法相关推荐

  1. R语言:作业六(逆变换法生成随机变量;线性同余发生器LCG的编写)

    1. 用逆变换法编写产生下述随机变量的程序: X 0 1 p 0.4 0.6 模拟10000次,并确定随机变量的值0的比例. f <- function(n){{x <- rep(0,n) ...

  2. C++随机数之线性同余发生器

    1. 随机数 随机数,也即"随机选择的数",是在一个有限数集上的一个一致分布的随机序列.随机数在许多方面有应用,如仿真.抽样.数值分析.计算机程序.娱乐等方面都有所应用.计算机用确 ...

  3. 同余 在计算机中的应用 算法,线性乘同余法在购车摇号中的应用

    [1] 邓玉良, 毛志刚, 叶以正. 基于Logistic映射的智能IC卡随机数发生器[J] . 计算机研究与发展, 1999, 36(4):509-512. (Deng Yuliang, Mao Z ...

  4. 一个自带简易数据集的模拟线性分类器matlab代码——实验训练

    一个自带简易数据集的模拟线性分类器matlab代码--实验训练 %%%% Tutorial on the basic structure of using a planar decision boun ...

  5. matlab倒立摆模型,线性倒立摆模型(LIP)Matlab建模.PDF

    线性倒立摆模型(LIP)Matlab建模.PDF (LIP)Matlab ∗ 2015010445 1 Kajita Introduction to Humanoid Robotics 130 LIP ...

  6. 线性正切制导 matlab编程实现,数学建模之MATLAB编程

    EverydayOneCat ✖️N 「Sushi shop!」 知识点 1.下载 链接:https://pan.baidu.com/s/1DbfysOOwIoSvt8HQUw0jhw 提取码:75m ...

  7. matlab生成任意波形发生器(AWG)所需波形文件程序

    matlab生成任意波形发生器(AWG)所需波形文件程序 环境 matlab2016a 简介 使用Matlab生成任意波形发生器(AWG)所需波形文件,使得任意波形发生器产生你所需波形,本文使用高斯脉 ...

  8. matlab最小二乘法拟合图旋转,【Matlab】—{最小二乘法拟合一阶线性拟合传感器实验}...

    [Matlab]-{最小二乘法拟合一阶线性拟合传感器实验} [Matlab]-{最小二乘法拟合一阶线性拟合&传感器实验} ???九层妖塔?起于垒土 [Matlab]-{最小二乘法拟合一阶线性拟 ...

  9. matlab离散线性时不变系统的分析,实验3线性时不变系统的时域分析及matlab实现.doc...

    实验3线性时不变系统的时域分析及matlab实现.doc 试验报告学院基础信息工程系别电子信息工程课程名称信号与系统姓名李太荣学号2012311430日期2014/5/8实验(三)名称线性时不变系统的 ...

  10. 基于Matlab的循环码实验报告,基于matlab的循环码实验报告.doc

    基于matlab的循环码实验报告.doc 基于MATLAB循环码编码方法的应用叶俊(指导老师,刘丹平副教授)(重庆大学通信工程学院中国重庆400000)摘要任何两个相邻的循环码只有一位数字不同,因此循 ...

最新文章

  1. docker安装mysql并实现远程访问
  2. Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题
  3. ubuntu 12.04 php升级,在 Ubuntu 12.04 LTS 中将 PHP 从 5.3 升级到 5.5
  4. asp2.0缓存概述
  5. 用ISAPI方式实现Web页面的自动更新
  6. linux系统io编程,Linux系统编程(1) —— 文件IO
  7. 国产特斯拉Model Y已开始向欧洲用户交付
  8. mysql解压版超详细安装以及各种避坑指南
  9. try,catch,finally
  10. 郑志勇:谁是中国最牛指数基金供应商(规模统计与产品点评)
  11. javascript 原型链实现继承简单例子
  12. c#实现txt转化为excel
  13. cydia软件路径_ifile下载和安装及使用图文教程 强大的iPhone文件管理器
  14. 电路基础-二阶(second -order) 电路
  15. XML Notepad 2007 汉化版发布
  16. android免费图标_20个免费和高质量的Android图标集—最佳
  17. Chrome插件(扩展)开发全攻略
  18. h5怎么做分享到QQ 、朋友圈、微信 、微博等功能
  19. 【Unity】3D模型或粒子渲染在UI上层
  20. 互联网摸鱼日报(2023-01-21)

热门文章

  1. 熵权法 —— matlab
  2. WinRAR去广告实现
  3. C语言题目:从键盘输入三个数,求三角形面积和周长
  4. win10定时关机c语言,电脑定时关机win10,电脑定时关机命令-
  5. photoshop破解
  6. php ziparchive 类不存在,php – 致命错误:类’ZipArchive’中找不到
  7. 用matlab对微分方程组进行仿真,基于MATLAB的微分方程组的数值计算
  8. HTTP文件下载原理
  9. Podfile文件用法详解
  10. 解决Invalid `Podfile` file: no implicit conversion of nil into String