当前位置:   article > 正文

瑞利分布随机变量产生MATLAB,运用直接抽样法产生指数分布、瑞利分布的随机变量序列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;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/83806
推荐阅读
相关标签
  

闽ICP备14008679号