用均匀分布产生高斯分布的算法实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

用均匀分布产生高斯分布的算法实现05111251姚远1120121169前言正态分布(Normaldistribution)又名高斯分布(Gaussiandistribution),是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。若随机变量X服从一个数学期望为μ、方差为σ^2的高斯分布,记为N(μ,σ^2)。其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。因其曲线呈钟形,因此人们又经常称之为钟形曲线。我们通常所说的标准正态分布是μ=0,σ=1的正态分布。算法原理由[0,1)均匀分布的随机变量生成一个已知概率密度函数的随机变量的方法可以归纳为以下这几点:1.对概率密度函数积分,算出概率分布函数F;2.求概率分布函数的反函数F-1;3.生成一个[0,1)均匀分布的随机变量X;4.那么Y=F-1(X)就服从所需要的分布;但是高斯分布的分布函数不是一个初等函数,不过从概率论我们也知道一个[0,2π)上均匀分布的随机变量的正弦(或者余弦)乘以一个瑞利分布的随机变量结果是一个高斯分布的随机变量,[0,2π)上均匀分布的随机变量用上面的方法很容易构造,用上面讲的步骤可以构造出服从瑞利分布的随机函数,那么高斯分布的随机变量就可以构造了。代码xaxis=-5:0.1:5;miu=1;delta=1;PDFGaussian=1/sqrt(2*pi*delta^2)*exp(-1/2*((xaxis-miu)/delta).^2);CDFGaussian=1/2*(1+erf((xaxis-miu)/(sqrt(2)*delta)));PDFGaussian_0=1/sqrt(2*pi*delta^2);plot(xaxis,CDFGaussian,'LineWidth',2);holdonplot(xaxis,PDFGaussian,'LineWidth',2);title('GaussianDistribution')xlabel('Randomvariable')ylabel('PDFandCDF')N=100000u1=rand(1,N);u2=rand(1,N);y=(-2*log(u1)).^0.5.*sin(2*pi*u2);var=miu+delta*y;[sum,loc]=hist(var,100);prob=sum/N;prob=[0,prob,0];step=loc(2)-loc(1);loc=[loc(1)-step/2,loc,loc(end)-step/2];prob=cumsum(prob);plot(loc,prob,'g*');legend('TheoreticalCDF','TheoreticalPDF','SimulatedCDF');

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功