一、古典概型 主讲教师:董庆宽 副教授 研究方向:密码学与信息安全 电子邮件:qkdong@xidian.edu.cn 基于MATLAB的概率统计数值实验 一、古典概型 主讲教师:董庆宽 副教授 研究方向:密码学与信息安全 电子邮件:qkdong@xidian.edu.cn 个人主页:http://web.xidian.edu.cn/qkdong/
内容介绍 一、古典概型 MATLAB常用的及与随机数产生相关的函数 实验1:计算超几何分布 实验2:频率稳定性实验 实验3:利用频率估计自然对数底e 实验4:蒲丰投针实验,利用频率估计圆周率 实验5:生日悖论实验
一、古典概型 利用MATLAB 软件的图形可视功能将概率统计的内容用图形表示出来,以加深对概率的理解 factorial(n) :阶乘,n!,可通过阶乘来计算排列组合数 1.rand(m,n):生成m×n的随机矩阵,每个元素都在(0,1)间,生成方式为均匀分布。 2.randn(m,n):生成m×n的随机矩阵,每个元素都在(0,1)间,生成方式为正态分布 3.randperm(m):生成一个1~m的随机整数排列 4.perms(1:n):生成一个1~n的全排列,共n!个 5.取整函数系列: (1)fix(x):截尾法取整; (2)floor(x):退一法取整(不超过x的最大整数);向负方向舍入 (3)ceil(x):进一法取整(= floor(x)+1); 向正方向舍入 (4)round(x):四舍五入法取整。 6.unique(a):合并a中相同的项 7.prod(x):向量x的所有分量元素的积
一、古典概型 示例: >> rand(1) %生成一个(0,1)间的随机数 ans = 0.8147 >> rand(2,2) %生成一个2×2阶(0,1)间的随机数矩阵 ans = 0.9134 0.0975 0.6324 0.2785 >> randperm(5) %生成一个1~5的随机整数排列 ans = 4 1 5 2 3 >> a=[1 2 4 2 3 3 2]; unique(a) ans = 1 2 3 4
实验 1:计算超几何分布的结果 解:编辑组合函数zuhe.m文件 计算如下: 设有N件产品,其中D件次品,今从中任取n件 问其中恰有k(kD)件次品的概率是多少? (令N=10,D=3,n=4,k=2) 解:编辑组合函数zuhe.m文件 function y=Com(n,r) y=factorial(n)/(factorial(r)*factorial(n-r)) 计算如下: >> N=10; D=3; n=4; k=2; p=Com(3,2)*Com(10-3,4-2)/Com(10,4)=0.3
随机投掷均匀硬币,观察国徽朝上与国徽朝下的频率 解 实验2 频率稳定性实验 随机投掷均匀硬币,观察国徽朝上与国徽朝下的频率 解 >> n= 3000~100000000;m=0; for i=1:n t=randperm(2); %生成一个1~2的随机整数排列 x=t-1; %生成一个0~1的随机整数排列 y=x(1); %取x排列的第一个值 if y==0; m=m+1; end p1=m/n p2=1-p1
试验次数n 3000 5000 1万 2万 3万 国徽朝上频率 0.5040 0.5006 0.4879 0.4999 0.5046 国徽朝下频率 0.4960 0.4994 0.5121 0.5001 0.4954 试验次数n 5万 10万 100万 1亿 国徽朝上频率 0.5021 0.4999 0.5001 0.5000 国徽朝下频率 0.4979 可见当 时,
实验3 用频率估计自然对数e 某班有n个人,每人各有一支枪,这些枪外形一样。某次夜间紧急集合,若每人随机地取走一支枪,求没有一个人拿到自己枪的概率? 解:记事件Ai为第i个人拿到自已枪,事件 为第i个人没拿到自己枪,易知: ; , 又记 p0为没有一个人拿到自己枪的概率。 由乘法公式可知 … …
于是 所以 特别地,当n较大时, 。 因此,可随机模拟出没有人拿到自己枪的频率,根据频率的稳定性,近似当做概率,然后去估计自然对数e。并考虑估计精度与人数是否有关系,为什么。算法如下:
具体程序及相关结果如下页图 1、产生n个随机数的随机序列; 2、检验随机列与自然列是否至少有一个配对; 3、对没有一个配对的序列进行累积 t; 4、重复1、2、3步 m 次; 5、估计 具体程序及相关结果如下页图 注:自然常数 e≈2.7183
>> m=40000; n=50; t=0; for j=1:m k=0; sui=randperm(n); for i=1:n if sui(i)==i k=k+1; else k=k; end if k==0 t=t+1; t=t; e=m/t e = 2.7313 模拟次数 m 4000 40000 400000 人数 n 50 e 2.7379 2.7313 2.7194 模拟次数 m 40000 人数 n 1000 2000 5000 e 2.7155 2.7082 2.7202
实验4:蒲丰(Buffon)投针实验,用频率估计值 在画有许多间距为d的等距平行线的白纸上,随机投掷一根长为l(ld)的均匀直针,求针与平行线相交的概率,并计算的近似值 解:设针与平行线的夹角为(0),针的中心与最近直线的距离为x(0xd/2)。针与平行线相交的充要条件是x(l/2)sin ,这里x(0xd/2并且0。建立直角坐标系,上述条件在坐标系下将是曲线所围成的曲边梯形区域,总的区域即x和所有可能取值构成的矩形区域,且所有可能取值是机会均等的,符合几何概型,则所求概率为 故可得的近似计算公式 ,其中n为随机试验次数,m为针与平行线相交的次数。
解 >> clear,clf n=10000000;l=0.5;m=0;d=1; for i=1:n x=(l/2)*sin(rand(1)*pi); y=rand(1)*d/2; if x>=y m=m+1; end p1=m/n pai=2*n*l/(m*d) 确定针与平行线的角度 确定针中心点的位置
试验次数n 5千 1万 10万 100万 1000万 针长l/平行间距d 3/10 相交频率 0.1836 0.1971 0.1887 0.1905 0.1912 π的近似值 3.2680 3.0441 3.1798 3.1498 3.1387 试验次数n 5千 1万 10万 100万 1000万 针长l/平行间距d 2/5 相交频率 0.2496 0.2562 0.2549 0.2544 0.2543 π的近似值 3.2051 3.1226 3.1386 3.1451 3.1433
试验次数n 5千 1万 10万 100万 1000万 针长l/平行间距d 1/2 相交频率 0.3254 0.3148 0.3158 0.3178 0.3183 π的近似值 3.0731 3.1766 3.1667 3.1470 3.1417 试验次数n 5千 1万 10万 100万 1000万 针长l/平行间距d 4/5 相交频率 0.5142 0.5134 0.5086 0.5093 π的近似值 3.1116 3.1165 3.1460 3.1418
试验次数n 5千 1万 10万 100万 1000万 针长l/平行间距d 17/20 相交频率 0.5432 0.5452 0.5420 0.5412 0.5410 π的近似值 3.1296 3.1181 3.1366 3.1413 3.1426 试验次数n 5千 1万 10万 100万 1000万 针长l/平行间距d 9/10 相交频率 0.5860 0.5700 0.5756 0.5733 0.5731 π的近似值 3.0717 3.1579 3.1272 3.1395 3.1410
实验5 生日悖论实验 在100个人的团体中,不考虑年龄差异,研究是否有两个以上的人生日相同。假设每人的生日在一年365天中的任意一天是等可能的,那么随机找n个人(不超过365人)。 (1)求这n个人生日各不相同的概率是多少?从而求这n个人中至少有两个人生日相同这一随机事件发生的概率是多少? (2)近似计算在30名学生的一个班中至少有两个人生日相同的概率是多少
解: (1) >> clear,clf for n=1:100 p0(n)=prod(365:-1:365-n+1)/365^n; p1(n)=1-p0(n); end p1=ones(1,100)-p0; n=1:100; plot(n,p0,n,p1,'--') xlabel('人数'),ylabel('概率') legend('生日各不相同的概率','至少两人生日相同的概率') axis([0 100 -0.1 1.199]),grid on
p1(30)=0.7063, p1(60)= 0.9941
(2) 在30名学生中至少两人生日相同的概率为70.63%。 下面进行计算机仿真。 随机产生30个正整数,代表一个班30名学生的生日,然后观察是否有两人以上生日相同。当30个人中有两人生日相同时,输出“1”,否则输出“0”。如此重复观察100次,计算出这一事件发生的频率f100 >> clear,clf n=0; for m=1:100 %做100次随机试验 y=0; x=1+fix(365*rand(1,30)); %产生30个随机数 for i=1:29 %用二重循环寻找30个随机数 中是否有相同数 for j=i+1:30 if x(i)==x(j) y=1;break; end n=n+y; %累计有两人生日相同的试验次数 f=n/m %计算频率
作业 1. 利用实验3求自然对数底e,精确到2.7183,并给出得到该精确值时的实验次数。将该实验做三次,比较一下所得结果。 2. 求50个人中至少两人生日相同的概率
谢谢!