clc;clear all;close all;
%运用直接抽样法产生指数分布、瑞利分布的随机变量序列
%%
% 运用直接抽样法产生指数分布的随机变量序列
% 1)使用直接抽取的方法 先产生 [0,1]间的随机数列
% 2 利用累积分布函数的反函数,得到的结果就是符合指数分布的序列
N=10000; %产生随机数的个数
lambda=2; %参数λ
y=rand(1,N);  %生成N[01]间均匀分布随机数
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; %产生随机数的个数
matlab生成随机数y=rand(1,N);  %生成N[01]间均匀分布随机数
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;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。