利用泊松分布近似二项分布

标签:
matlab杂谈 |
利用泊松分布近似二项分布
摘要:利用Matlab编制二项分布,泊松分布概率密度和积概率函数,用图像表现用泊松分布近似二项分布精度。
关键词:二项分布,泊松分布,泊松定理,近似,Matlab,制图。
1.
Matlab6.5附加stats工具箱中带有二项分布、泊松分布基本公式,但并非强制安装组件,故自行编制二项分布、泊松分布概率密度和积概率函数以方便使用。
2.
二项分布: ; ; ; ;
泊松分布: ;
近似理论依据:根据泊松定理 ;
3. 实例计算:
3.1 函数说明:
stats_binopdf(X,n,p):用于计算二项分布的概率密度;
stats_binocdf(X,n,p):用于计算二项分布的积概率;
stats_poisspdf(X,λ):用于计算泊松分布的概率密度;
stats_poisscdf(X,λ):用于计算泊松分布的积概率;
注①:函数中X可以是数组。
3.2 Matlab计算源程序:
%第一次对比%(p=0.005;n=10000;lambda=n*p=50) X=0:100; p=0.005; n=10000; lambda=n*p; output_p=num2str(p); output_n=num2str(n); output_lambda=num2str(lambda); p_cdf=stats_poisscdf(X,lambda); b_cdf=stats_binocdf(X,n,p); text(100,100,'sgsfgdfgdgdfgsdfsdf') plot(X,b_cdf,'b.',X,p_cdf,'r+') legend('二项分布积概率','泊松分布积概率',2) title('积概率函数 图像比较(1)') text(80,0.25,'参数:') text(80,0.2,'p=') text(83,0.2,output_p) text(80,0.15,'n=') text(83,0.15,output_n) text(80,0.1,'lambda=') text(92,0.1,output_lambda) p_pdf=stats_poisspdf(X,lambda); b_pdf=stats_binopdf(X,n,p); figure,plot(X,b_pdf,'b.',X,p_pdf,'r+') legend('二项分布概率密度','泊松分布概率密度',2) title('概率密度函数 图像比较(1)') text(80,0.015,'参数:') text(80,0.012,'p=') text(83,0.012,output_p) text(80,0.009,'n=') text(83,0.009,output_n) text(80,0.006,'lambda=') text(92,0.006,output_lambda) |
%第二次对比%(p=0.5;n=100;lambda=n*p=50) X=0:100; p=0.5; n=100; lambda=n*p; output_p=num2str(p); output_n=num2str(n); output_lambda=num2str(lambda); p_cdf=stats_poisscdf(X,lambda); b_cdf=stats_binocdf(X,n,p); figure,plot(X,b_cdf,'b.',X,p_cdf,'r+') legend('二项分布积概率','泊松分布积概率',2) title('积概率函数 图像比较(2)') text(80,0.25,'参数:') text(80,0.2,'p=') text(83,0.2,output_p) text(80,0.15,'n=') text(83,0.15,output_n) text(80,0.1,'lambda=') text(92,0.1,output_lambda) p_pdf=stats_poisspdf(X,lambda); b_pdf=stats_binopdf(X,n,p); figure,plot(X,b_pdf,'b.',X,p_pdf,'r+') legend('二项分布概率密度','泊松分布概率密度',2) title('概率密度函数 图像比较(2)') text(80,0.015,'参数:') text(80,0.012,'p=') text(83,0.012,output_p) text(80,0.009,'n=') text(83,0.009,output_n) text(80,0.006,'lambda=') text(92,0.006,output_lambda) |
函数stats_binocdf(X,n,p)源程序: function P=stats_binocdf(X,n,p) %二项分布积概率 warning off MATLAB:nchoosek:LargeCoefficient; if p>1 | p<0;%判断参数是否合法 end; q=1-p; if length(X)==1; %判断X是否为数组 else temp_P=1:length(X);
P=temp_P;
end |
函数stats_binopdf(X,n,p)源程序: function Px=stats_binopdf(X,n,p) %二项分布概率密度 warning off MATLAB:nchoosek:LargeCoefficient; if p>1 | p<0;%判断参数是否合法
end; q=1-p; if length(X)==1; %判断X是否为数组 else temp_Px=1:length(X);
Px=temp_Px; end |
函数stats_poisscdf(X,λ)源程序: function Px=stats_poisscdf(X,lambda) %泊松分布积概率 warning off MATLAB:nchoosek:LargeCoefficient; if lambda<0; end if length(X)==1; %判断X是否为数组
else
Px=temp_Px;
end |
函数stats_poisspdf(X,λ)源程序: function Px=stats_poisspdf(X,lambda) %泊松分布概率密度 warning off MATLAB:nchoosek:LargeCoefficient; if lambda<0; end if length(X)==1; %判断X是否为数组 else temp_Px=1:length(X);
Px=temp_Px; end |
http://img64.pp.sohu.com/images/blog/2006/12/22/10/11/1103d160069.jpg
4. 结论:
1)当p很小,n很大时,有 ,即可用泊松分布近似二项分布。
如图像显示:第一次近似(参数p=0.005;n=10000;lambda=n*p=50) 的效果
明显优于第二次近似(参数p=0.5;n=100;lambda=n*p=50)。
2)Matlab绘图功能强大,使用简单。
3)Matlab函数编写方便。
参考文献:
[1]盛
[2]石博强. Matlab数学计算范例教程. 北京:中国铁道出版社,2004
[3]李英冰. Matlab课程课件. 武汉:武汉大学测绘学院,2006