瑞利分布随机变量产生MATLAB,运用直接抽样法产生指数分布、瑞利分布的随机变量序列matlab编程...

N=10000; %产生随机数的个数

lambda=2; %参数λ

y=rand(1,N); %生成N个[0,1]间均匀分布随机数

x=-log(1-y)/lambda; %生成指数分布随机数

[n,xout]=hist(x,100); %分区间统计随机数出现概率

clc;clear all;close all;

%运用直接抽样法产生指数分布、瑞利分布的随机变量序列

%%

% 运用直接抽样法产生指数分布的随机变量序列

% (1)使用直接抽取的方法 先产生 [0,1]间的随机数列

% (2) 利用累积分布函数的反函数,得到的结果就是符合指数分布的序列

N=10000; %产生随机数的个数

lambda=2; %参数λ

y=rand(1,N); %生成N个[0,1]间均匀分布随机数

x=-log(1-y)/lambda; %生成指数分布随机数

[n,xout]=hist(x,100); %分区间统计随机数出现概率

nn=n/N/mean(diff(xout));

figure;

bar(xout,nn,1);hold on; %画图验证随机数是否符合概率密度函数

plot([0 xout],lambda*exp(-lambda*([0 xout])),'r');

xlabel('x');ylabel('p(x)');title('直接抽样法产生指数分布的随机变量序列'); hold off;

%%

% 运用直接抽样法产生瑞利分布的随机变量序列

N=10000; %产生随机数的个数

y=rand(1,N); %生成N个[0,1]间均匀分布随机数

sigma=2;%参数sigma

z=sqrt(-2*sigma^2*log(1-y));%生成瑞利分布随机数

[m,zout]=hist(z,100);

mm=m/N/mean(diff(zout));

figure;

bar(zout,mm,1);

% hold on; %画图验证随机数是否符合概率密度函数

% plot([0 zout],([0 zout]*(1/sigma^2))*exp(-([0

zout])^2/(2*sigma^2)),'r');

xlabel('z');ylabel('p(z)');title('直接抽样法产生瑞利分布的随机变量序列'); hold off;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值