matlab仿真随机数的产生
概率论和数理统计实验(matlab中实现)
一.伯努利分布
R=binornd(N,P); //N,P为二次分布的俩个参数,返回服从参数为N,P的二项分布的随机数,且N,P,R的形式相同。
R=binornd(N,P,m); //m是一个1*2向量,它为指定的随机数的个数,其中N,P分别代表返回值R中行与列的维数;
R=binornd(N,P,m,n); //m,n分别表示R的行数与列数;
例:一个射击手进行射击比赛,假设每枪射击命中率为0.45,每枪射击10次,共进行10万轮,就可以用matlab去仿真该实验的可能情况。
编写代码如下:
x=binornd(10,0.45,100000,1); hist(x,11)
结果如图[射击结果直方图]
从上图可以看出,该射击员每轮最有可能命中4环。
二.泊松分布随机数
y=poisspdf(x,lambda); 求取参数为Lambda的泊松分布的概率密度函数值。
我要观察取不同的Lanbda值,使用poisspdf函数绘出来的泊松分布概率密度图像。(分别取2.5,5,10)
在matlab中编程
x=0:20; y1=poisspdf(x,2.5); y2=poisspdf(x,5); y3=poisspdf(x,10); hold on plot(x,y1,':r*') plot(x,y2,':b*') plot(x,y3,':g*') hold off
三.均匀分布随机数
1.R=unifrnd(A,B): 生成被A和B指定上下端点【A,B】的连续均匀分布的随机数组R.
2.R=unifrnd(A,B,m,n,…): 返回mn……数组.
a=0; b=1:5; r1=unifrnd(a,b)
r1 =
0.5799 0.2172 2.6572 3.2917 3.7076
四.正态分布随机数
R=normrnd(mu,sigma);返回均值为mu,标准差为sigma的正态分布的随机数据。 R=normrnd(mu,sigma,m,n,…);m,n分布表示R的行数与列数。
如果要得到mu=10,sigma=0.4的2行4列个正态随机数,可以在MATLAB命令行窗口输入代码:
R=normrnd(10,0.4,2,4)
R =
9.7923 10.1380 10.5178 9.5354 9.9844 9.6784 9.2855 9.9237 >> R=normrnd(10,0.4,2,4)
R =
9.7484 10.3920 10.1876 10.4871 10.1456 10.3034 9.5257 10.1286 >> R=normrnd(10,0.4,2,4)
R =
10.3718 10.2499 9.9566 9.9542 9.9151 10.1271 9.9685 10.1344
因为这样的矩阵有很多,本人在此只做了三组实验。
由于本人能力有限,编写过程中可能存在不足之处,望大家海涵~~~~
谢谢大家
相关推荐
聪聪李 2020-06-13
jessieHJ 2020-05-31
xinhao 2020-05-28
czsay 2020-05-25
qscool 2020-05-06
xiechao000 2020-04-21
Lexan 2020-04-15
idning 2020-03-08
IBMRational 2020-03-07
zuihaobushi 2020-02-24
蜗牛慢爬的李成广 2020-02-02
明天你好 2020-01-28
yfisaboy 2020-01-19
风吹夏天 2020-01-10
idning 2020-01-06
georgeandgeorge 2019-12-28
oraclemch 2019-12-12
oXiaoChong 2019-12-07
蓝色深海 2019-10-09