matlab线性同余发生器,用MATLAB进行随机数模拟--线性同余法
一、采用混合同余法生成随机数
根据要求生成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进行随机数模拟--线性同余法相关推荐
- R语言:作业六(逆变换法生成随机变量;线性同余发生器LCG的编写)
1. 用逆变换法编写产生下述随机变量的程序: X 0 1 p 0.4 0.6 模拟10000次,并确定随机变量的值0的比例. f <- function(n){{x <- rep(0,n) ...
- C++随机数之线性同余发生器
1. 随机数 随机数,也即"随机选择的数",是在一个有限数集上的一个一致分布的随机序列.随机数在许多方面有应用,如仿真.抽样.数值分析.计算机程序.娱乐等方面都有所应用.计算机用确 ...
- 同余 在计算机中的应用 算法,线性乘同余法在购车摇号中的应用
[1] 邓玉良, 毛志刚, 叶以正. 基于Logistic映射的智能IC卡随机数发生器[J] . 计算机研究与发展, 1999, 36(4):509-512. (Deng Yuliang, Mao Z ...
- 一个自带简易数据集的模拟线性分类器matlab代码——实验训练
一个自带简易数据集的模拟线性分类器matlab代码--实验训练 %%%% Tutorial on the basic structure of using a planar decision boun ...
- matlab倒立摆模型,线性倒立摆模型(LIP)Matlab建模.PDF
线性倒立摆模型(LIP)Matlab建模.PDF (LIP)Matlab ∗ 2015010445 1 Kajita Introduction to Humanoid Robotics 130 LIP ...
- 线性正切制导 matlab编程实现,数学建模之MATLAB编程
EverydayOneCat ✖️N 「Sushi shop!」 知识点 1.下载 链接:https://pan.baidu.com/s/1DbfysOOwIoSvt8HQUw0jhw 提取码:75m ...
- matlab生成任意波形发生器(AWG)所需波形文件程序
matlab生成任意波形发生器(AWG)所需波形文件程序 环境 matlab2016a 简介 使用Matlab生成任意波形发生器(AWG)所需波形文件,使得任意波形发生器产生你所需波形,本文使用高斯脉 ...
- matlab最小二乘法拟合图旋转,【Matlab】—{最小二乘法拟合一阶线性拟合传感器实验}...
[Matlab]-{最小二乘法拟合一阶线性拟合传感器实验} [Matlab]-{最小二乘法拟合一阶线性拟合&传感器实验} ???九层妖塔?起于垒土 [Matlab]-{最小二乘法拟合一阶线性拟 ...
- matlab离散线性时不变系统的分析,实验3线性时不变系统的时域分析及matlab实现.doc...
实验3线性时不变系统的时域分析及matlab实现.doc 试验报告学院基础信息工程系别电子信息工程课程名称信号与系统姓名李太荣学号2012311430日期2014/5/8实验(三)名称线性时不变系统的 ...
- 基于Matlab的循环码实验报告,基于matlab的循环码实验报告.doc
基于matlab的循环码实验报告.doc 基于MATLAB循环码编码方法的应用叶俊(指导老师,刘丹平副教授)(重庆大学通信工程学院中国重庆400000)摘要任何两个相邻的循环码只有一位数字不同,因此循 ...
最新文章
- docker安装mysql并实现远程访问
- Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题
- ubuntu 12.04 php升级,在 Ubuntu 12.04 LTS 中将 PHP 从 5.3 升级到 5.5
- asp2.0缓存概述
- 用ISAPI方式实现Web页面的自动更新
- linux系统io编程,Linux系统编程(1) —— 文件IO
- 国产特斯拉Model Y已开始向欧洲用户交付
- mysql解压版超详细安装以及各种避坑指南
- try,catch,finally
- 郑志勇:谁是中国最牛指数基金供应商(规模统计与产品点评)
- javascript 原型链实现继承简单例子
- c#实现txt转化为excel
- cydia软件路径_ifile下载和安装及使用图文教程 强大的iPhone文件管理器
- 电路基础-二阶(second -order) 电路
- XML Notepad 2007 汉化版发布
- android免费图标_20个免费和高质量的Android图标集—最佳
- Chrome插件(扩展)开发全攻略
- h5怎么做分享到QQ 、朋友圈、微信 、微博等功能
- 【Unity】3D模型或粒子渲染在UI上层
- 互联网摸鱼日报(2023-01-21)
热门文章
- 熵权法 —— matlab
- WinRAR去广告实现
- C语言题目:从键盘输入三个数,求三角形面积和周长
- win10定时关机c语言,电脑定时关机win10,电脑定时关机命令-
- photoshop破解
- php ziparchive 类不存在,php – 致命错误:类’ZipArchive’中找不到
- 用matlab对微分方程组进行仿真,基于MATLAB的微分方程组的数值计算
- HTTP文件下载原理
- Podfile文件用法详解
- 解决Invalid `Podfile` file: no implicit conversion of nil into String