2024年1月7日发(作者:)
实验一 随机变量的概率分布
一 实验目的
1. 掌握计算随机变量分布律或概率密度值的Matlab命令;
2. 掌握计算分布函数的Matlab命令;
3. 学习常见分布的随机变量的模拟与应用。
二 实验背景知识介绍
1. 随机变量及其概率分布
随机变量是定义在样本空间{|为基本事件}上的实函数,按其取值情况常见有两类:离散型与连续型。
设X是随机变量,给定任意实数x,记
F(x)P{Xx}
则称函数F(x)为随机变量X的概率分布函数,简称分布函数。分布函数能完整地描述随机变量的统计规律性。
若已知随机变量X的分布函数为F(x),则对于任意的实数x1,x2(x1x2), 有
P{x1Xx2}P{Xx2}P{Xx1}F(x2)F(x1).
若X为连续型随机变量,F(x)是X的分布函数,则存在非负函数f(x),对任意实数x,有
F(x)xf(t)dt
称f(x)为X的概率密度函数或密度函数。
在概率与统计中,常用的分布有:二项分布、几何分布、
泊松分布、正态分布、指数分布、均匀分布、2分布、T分布、F分布等。
2. 统计工具箱与常见命令介绍
为了便于研究概率与统计的计算问题,Matlab提供了专门的统计工具箱(stastoolbox),其概率计算的主要功能有:计算相应分布的概率、分布函数、逆分布函数和产生相应分布的随机数。工具箱的统计计算主要功能有:统计量的数字特征、统计图形的绘制、参数估计、假设检验、方差分析等。
表1:常见分布名称
字符
bino
geo
poiss
unif
exp
分布名
二项分布
几何分布
泊松分布
均匀分布
指数分布
字符
norm
chi2
logn
f
t
分布名
正态分布
2分布
对数正态分布
F分布
T分布
在统计工具箱中,Matlab为每一种分布提供了5类命令函数,其命令字符分别为:pdf表示概率密度;cdf表示概率分布函数(累积概率);inv表示逆概率分布函数;stat表示均值与方差;rnd表示生成相应分布的随机数。这样,当需要一种分布的某一类命令函数时,只要将表6.1中的分布名字符后缀命令函数字符并输入命令参数即可。如,binopdf(x,n,p)表示计算服从参数为n,p二项分布的随机变量在x的概率;normcdf(x,,) 表示计算
服从参数为,2的正态分布的随机变量在x的分布函数;expstas()表示计算服从参数为的指数分布的随机变量的期望与方差,等等。
三 实验内容
1. 常见分布的概率计算
例1 掷硬币100次,其中正面出现的概率为0.5,这100次中正面出现的次数记为X:
(1) 试计算X45的概率和X45的概率;
(2) 绘制分布函数图形和概率分布律图形。
分析 这是100重的贝努力试验,X~B(100,0.5),计算二项分布的分布函数的命令为binocdf(x,n,p),计算概率分布律的命令为binopdf(x,n,p)。
解 设计程序并保存为M文件“glsy1201li01.m”p1=binopdf(45,100,0.5)
p2=binocdf(45,100,0.5)
x=1:100;
p=binocdf(x,100,0.5);
px=binopdf(x,100,0.5);
subplot(1,2,1)
plot(x,p,'r*')
subplot(1,2,2)
plot(x,px)
程序运行结果:p1 = 0.0485,p2 = 0.1841。输出图形为
分布函数 分布律
例2 设X~N(2,2),
(1) 当0.5时,求P{1.8X(2) 当0.5时,若P{X(3) 分别绘制
2.9},P{3X},P{|X2|1.5};x}0.95, 求x;
0.2,0.5,0.9时的概率密度函数图形。
分析 本题是关于正态分布的有关概率计算问题,只要调用正态分布(norm)的有关命令就能实现其计算。这些命令分别是分布函数命令normcdf(x,,);概率密度命令normpdf(x,,);逆分布函数命令norminv(x,,)。
解 设计程序并保存为M文件“glsy1201li02.m”
p1=normcdf(2.9,2,0.5)-normcdf(1.8,2,0.5)
p2=1-normcdf(-3,2,0.5)
p3=1+normcdf(0.5,2,0.5)-normcdf(3.5,2,0.5)
px=0.95;
x0=norminv(px,2,0.5)
x=-2:0.05:5;
y1=normpdf(x,2,0.2);
y2=normpdf(x,2,0.5);
y3=normpdf(x,2,0.9);
plot(x,y1,x,y2,x,y3)
gtext('标准差为0.2')
gtext('标准差为0.5')
gtext('标准差为0.9')
title('正态概率密度曲线')
程序运行结果为p1 = 0.6195,p2 = 1,3 = 0.0027,x0 = 2.8224。
2 常见分布随机数的产生与计算机模拟
在Matlab的统计工具箱中,提供了产生满足常用分布的随机数命令,这些命令的名字构成为:分布名字符+rnd.如unifrnd(a,b),表示产生[a,b]均匀分布的随机数。[0,1]的随机数还可以用命令rand产生,如rand(m,n), 表示产生[0,1]区间上的mn维的随机数,还可以通过变换将[0,1]区间的随机数转化为任意区间的随机数。
例3 投掷硬币的计算机模拟。投掷硬币1000次,试模拟掷硬币的结果。
分析 设硬币是质地均匀的,掷硬币一次的结果为正面与反面。用命令unifrnd(0,1)或rand(1,n)产生[0,1]区间均匀分布的随机数x,将区间二等分。若0x0.5,则对应于硬币的正面,否则,对应于硬币的反面,掷硬币的结果可以是统计正面与反面出现的频数与频率。
解 设计程序并保存为M文件“glst1201li03”
n=1000;
m=0;
k=0;
for i=1:n
x(i)=unifrnd(0,1);
if x(i)<=0.5
m=m+1;
else
k=k+1;
end
end
p1=m/n
p2=k/n
运行结果为 p1 = 0.5370,p2 = 0.4630。
例4
n个人中至少有两人生日相同的概率是多少?通过计算机模拟此结果。
假设每个人在一年(按365天计算)内每一天出生的可能性都相同,现在随机的选取n个人,则他们中至少有两人生日相同的概率为
nP365P1365n,
经计算,得到表1:
表1
n个人中至少有两人生日相同的概率
n
10 15 20 25 30 35 40 45
50
P
0.12 0.25 0.41 0.57 0.71 0.81 0.89
0.94 0.97
由表1可以看出,在40人左右的人群里,两人或两人以上生日相同这一事件十有八九会发生。
下面通过Matlab软件模拟这个结果。
实验过程 先在(0,1)区间上产生k个随机数,用365乘以这k个随机数,这相当于是在区间(0,365)上产生k个随机数,再给这k个随机数取整,这相当于是在区间(0,365)上随机抽取的k个人的生日,通过对这k个数的比较,来决定是否有人生日相同。下面的Matlab程序,模拟了这个结果。
n=10000; %实验的次数
for k=10:5:50 %分别抽取的人数
s=0;w=0;
for i=1:n
x=sort(fix(365*rand(1,k))); %产生k个不同人的生日
for j=1:(k-1)
y=x(j+1)-x(j); %比较两人的生日
if y==0
w=1; %作出两人生日相同的判断
break;
else
w=0;
end
end
s=w+s; %统计n此实验中生日相同的次数
end
p=s/n; %计算生日相同的频率
fprintf('k=%.0f,p=%.5fn',k,p)
end
输出结果
k=10,p=0.11694
k=15,p=0.25287
k=20,p=0.41044
k=25,p=0.56922
k=30,p=0.70843
k=35,p=0.81595
k=40,p=0.89100
k=45,p=0.94112
k=50,p=0.97008
与表1相比,接近程度相当好。我们还画出了随着人数的变化,频率的变化曲线图。
图3
k个人的生日相同的频率图
3 如何产生具有X的分布律的随机数?
离散型随机数的模拟:设随机变量X的分布律为
令
P{Xxi}pi,i1,2,
nP(0)0,P(n)pi,n1,2,,将P(n)作为区间(0,1)的分点。
i1若随机变量Y~U(0,1),有
P{P(n1)YP(n)}P(n)P(n1)pn,n1,2,,
令
则有
P{Xxn}pn,n1,2,
{P(n1)YP(n)}{Xxn}
据此,可产生具有X的分布律的随机数的具体执行过程为:每产生一个(0,1)区间上均匀分布的随机数r,如果P(n1)rP(n),则令X的取值为xn。
例如 离散型随机变量X的分布律为
X
P
0 1 2
0.3 0.4 0.3
设r1,r2,,rN是(0,1)上均匀分布的随机数,令
0,x
i1,2,0ri0.3,0.3ri0.7,
ri0.7则x1,x2,,xN是具有X的分布律的随机数。
例5.一列火车从甲站经过乙站开往丙站,某人每天赶往乙站乘这趟火车。已知火车从甲站到乙站运行时间为均值30分钟,标准差为2分钟的正态随机变量。火车大约下午1点离开甲站,火车离开时刻的频率分布和这个人到达乙站的频率分布如表2所示,问他能赶上火车的概率有多大?
表2 火车出发时刻和人到达乙站的时刻及频率分布
出发时1:1:1:10 到达时1:28 1:30 1:32 1:34
刻
频率
00 05 刻
0.3 0.4 0.2 0.1 0.7 0.2 0.1 频率
这是一个概率问题,但如果用概率论的方法来求解,将是十分困难的。因为它涉及此人到达时刻、火车离开甲站的时刻、火车运行时间这几个随机变量。计算时应将此人赶火车事件A分解为以下几个事件:A1:此人1:28分到达火车站并赶上火车;A2:此人1:30分到达火车站并赶上火车;A3:此人1:32分到达火车站并赶上火车;A4:此人1:34分到达火车站并赶上火车.。为了计算事件A1的概率,需要将火车出发的时间进行分解:火车1:00从甲站出发且在1:28分以后到达乙站;火车1:05从甲站出发且在1:28分以后到达乙站;火车1:10从甲站出发且在1:28分以后到达乙站。其余的也可类似进行分解。又因为火车运行时间是随机的,没有有效的方法来进行概率的计算。下面我们用随机模拟的方法来解决此问题。
用随机模拟的方法解决此问题就是通过多次随机试验来得到此人能赶上火车的概率有多大。为此,首先引入以下随机变量:T1:火车从甲站开出的时刻;T2火车从甲站运行到乙站所需要的时间;T3此人到达乙站的时刻。此人能赶上火车的条件是T3T1T2。取下午1:00为时间0点,则T1取值为0,5,10,其概率分别为0.7,0.2,0.1;T2服从N(30,4);T3取值为28,30,32,34,其概率分别为0.3,0.4,0.2,0.1.
按前述所讲的,具有T1,T2分布律的随机数为:设x,y分别为
[0,1]区间的随机数,则有
0,T15,10,28,30,0.7x0.9,
T332,0.9x1,34,0x0.7,0y0.3,0.3y0.7,0.7y0.9,0.9y1.
解决此问题的Matlab程序为
n=10000;w=0;
x=rand(n,1);
y=rand(n,1);
z=randn(n,1);
for i=1:n
if x(i)<0.7
T1=0;
elseif x(i)<0.9
T1=5;
else
T1=10;
end
T2=30+2*z(i);
if y(i)<0.3
T3=28;
elseif y(i)<0.7
T3=30;
elseif y(i)<0.9
T3=32;
else
T3=34;
end
if T3<=T1+T2
w=w+1;
end
end
w/n
输出结果为0.6321。即此人能赶上火车的概率约为0.63。
作业
1. 考察通过某交叉路口的汽车流,假设在1min之内通过路口的汽车数服从泊松分布,且在1min之内没有汽车通过的概率为0.2,求在1min至少有3辆汽车通过的概率。
2. 设X~N(,2);
(1) 当1.5,0.5时,求P{1.8X2.9},P{2.5X},P{|X1.7|1.6};
(2) 当1.5,0.5时,若P{Xx}0.95,求x;
(3) 分别绘制1,2,3,0.5 时的概率密度函数图形。
3. 已知每百份报纸全部卖出可获利14元,卖不出去将赔8元,设报纸的需求量X的分布律为
X
0 1 2 3 4 5
P
0.05 0.10 0.25 0.35 0.15 0.10
试确定报纸的最佳购进量n。(要求使用计算机模拟)
发布者:admin,转转请注明出处:http://www.yc00.com/news/1704579790a1358738.html
评论列表(0条)