matlab的
toolbox中
也含有概率统计方面的库函数.概率方面的库函数主要有各种常见分布的分布函数、概率密度、分布率以及生成服从各种分布随机数的函数.统计方面的库函数含盖
了简单随机样本下常见的参数估计(点估计、区间估计),假设检验.此外还含有大量涉及实验设计、线性回归、非线性回归等方面的库函数.以下我们主要对
matlab在概率统计方面的内容做一些介绍.
1. matlab自带的一些常用分布的分布律或概率密度
分布名称
|
matlab中的函数名
|
解析表达式
|
正态分布
|
normpdf(x,m,s)
|
http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image002.gif
|
指数分布
|
exppdf(x,m)
|
http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image004.gif
|
均匀分布
|
unifpdf(x,a,b)
|
http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image006.gif
|
gamma分布
|
gampdf(x,a,b)
|
http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image008.gif
|
t分布
|
tpdf(x,a)
|
http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image010.gif
|
F分布
|
fpdf(x,a,b)
|
http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image012.gif
|
weibull分布
|
weibpdf(x,a,b)
|
http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image014.gif
|
二项分布
|
binopdf(k,n,p)
|
= http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image016.gif
0<p<1
k=0,1,2,...,n
|
poisson分布
|
poisspdf(k,l)
|
= http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image018.gif
k=0,1,2,3,?
|
几何分布
|
geopdf(k,p)
|
= http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image020.gif
p?(0,1)
k=0,1,2,3,...
|
超几何分布
|
hygepdf(k,l,m,n)
|
=http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image022.gif
|
例一.
x~n(0,1),y~n(3,5),求x,y概率密度的图象.
x、y的概率密度为
http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image024.gif
http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image026.gif
图(1)
图(1)中上半部为matlab的命令窗口,下面半部为相应的图象窗口.命令窗口中命令行fplot('normpdf(x,0,1)',[-3,10],'b-'),fplot('normpdf(x,3,sqrt(5))',[-3,10],'r
:')分别对应图象窗口中的兰色实线与红色虚线所表示的函数曲线.其中normpdf(x,0,1)是标准正态分布的概率密度函数.fplot是绘制m-函数图象的命令.
值得注意的是matlab所给的一些常见分布律或概率密度的参数表示法与我们教材中所给的有所不同,matlab中使用这些分布律或概率密度前最好先查阅帮助文件.获得帮助文件得最快捷的方法是在matlab的命令窗口键入
help "所查函数名"
键入回车键后,在命令窗口会显示相应的帮助信息.图(2)所示为获得正态分布概率密度函数帮助信息的过程.
2. matlab自带的一些常用分布的分布函数及分布函数的反函数
如果把前面所述的各分布律或概率密度函数名的后缀pdf改为cdf则得到相应分布的分布函数.
图(3)所示为随机变量x~n(0,1)、y~n(3,5)得分布函数.注意命令行中表示分布函数的
normcdf(x,0,1) 、normcdf(x,3,sqrt(5)).
http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image028.jpg
图(2)
http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image030.jpg
图(3)
如果把分布函数名的后缀cdf改为inv,便得到了相应分布函数的反函数.这些常用分布的分布函数及其反函数对于实际应用很方便,至少可以免除我们去查分布表的工作.
例二.
计算例一中有关随机变量y的概率
(1). p(y<3.5)
(2).
p(y<x)=0.91, 求x
解:(1).在命令窗口中键入
normcdf(3.5, 3, sqrt(5))
在命令行下方立刻会显示出:
ans =
0.58846836312094
(2). 在命令窗口中键入
norminv(0.91, 3, sqrt(5))
在命令行下方立刻会显示出:
ans =
5.99801939650634
显然,各分布函数的反函数使得获取各种分布的上分位数(点)变得极为方便.
3. 服从各种常用分布随机数的产生
实际工作过程中常常需要我们产生各种随机数,而matlab在这一方面为人们提供了很大的方便.事实上,只需将matlab提供的各分布函数的后缀改为rnd即可.
例三.生成一组(10个)服从N(0,1)的随机数.
在命令窗口中键入
normrnd(0, 1,1,10)
在命令行下方立刻会显示出:
ans
=
columns 1 through 7
-0.1867
0.7258
-0.5883
2.1832
-0.1364
0.1139
1.0668
columns 8
through 10
0.0593
-0.0956 -0.8323
normrnd中的第一、二参数分别表示均值及均方差,第三、四参数表示生成的是一行十列的向量.
例四.利用matlab生成的随机数做蒲丰(buffon)投针问题.
解:以x 表示针的中点与最近一条平行线的距离,以
j表示针与此线间的交角.显然
0≤x≤a/2
0≤j≤p
针与平行线相交的充要条件是
x≤lsin(j)/2
因(x,j)在图(4)中下面的矩形中等可能地取点,可见针与平行线相交的概率p为图(4)正弦曲线线段与横轴围成的面积同图(4)中矩形面积的比.经计算得
p= http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image034.gif
另一方面得到
p = http://jpkc.njust.edu.cn/gltj/image1/matlab/matlab.files/image036.gif
如大量得投针实验,利用大数定理知:随着实验次数的增加,针与平行线相交的频率依概率收敛到概率p.那么在上式中以频率代替相应的概率p,则可以获得圆周率p的近似值.下面的程序是用matlab语言编写的计算机模拟投针以计算p的近似值的程序.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
%清空工作区
a=1;
%两平行线间的宽度
l=0.6;
%针长
counter=0;
%计数器,用以统计针与线相交的次数
n=10000;
%投针次数
x=unifrnd(0,a/2,1,n);
%投出的针的中点到线的距离,在此设其服从
%区间(0,a/2)上的均匀分布.
fi=unifrnd(0,pi,1,n);
%投出的针与平行线的交角,在此设其服从
%区间(0,p)上的均匀分布.
for i=1:n
if
x(i)<l*sin(fi(i))/2%满足此条件表示投出的针与平行线的相交.
counter=counter+1;
end
end
fren=counter/n;
%表示投出的针与平行线相交的频率
pihat=2*l/(a*fren)
%pi的估计
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
加载中,请稍候......