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

因为这样的矩阵有很多,本人在此只做了三组实验。

由于本人能力有限,编写过程中可能存在不足之处,望大家海涵~~~~
谢谢大家

  • 9
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq-120

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值