《中科院matlab课件matlab在科学计算中的应用8章节》由会员分享,可在线阅读,更多相关《中科院matlab课件matlab在科学计算中的应用8章节(113页珍藏版)》请在金锄头文库上搜索。
1、1,第8章 概率论与数理统计问题的求解,概率分布与伪随机数生成 统计量分析 数理统计分析方法及计算机实现 统计假设检验 方差分析及计算机求解,2,8.1概率分布与伪随机数生成 8.1.1 概率密度函数与分布函数概述,图4-9,3,通用函数计算概率密度函数值,函数 pdf 格式 P=pdf(name,K,A)%name是根据分布函数名,查帮助 P=pdf(name,K,A,B) P=pdf(name,K,A,B,C) 说明 返回在X=K处、参数为A、B、C的概率密度值,对于不同的分布,参数个数是不同;name为分布函数名。 例如二项分布:设一次试验,事件Y发生的概率为p,那么,在n次独立重复试验
2、中,事件Y恰好发生K次的概率P_K为:P_K=PX=K=pdf(bino,K,n,p),4,例: 计算正态分布N(0,1)的随机变量X在点0.6578的密度函数值。 解: pdf(norm,0.6578,0,1) ans = 0.3213 例:自由度为8的卡方分布,在点2.18处的密度函数值。 解: pdf(chi2,2.18,8) ans = 0.0363,5,随机变量的累积概率值(分布函数值),通用函数cdf用来计算随机变量的概率之和(累积概率值) 函数 cdf 格式 cdf(name,K,A) cdf(name,K,A,B) cdf(name,K,A,B,C) 说明 返回以name为分布
3、、随机变量XK的概率之和的累积概率值,name为分布函数名.,6,例: 求标准正态分布随机变量X落在区间(-,0.4)内的概率。 解: cdf(norm,0.4,0,1) ans = 0.6554 例:求自由度为16的卡方分布随机变量落在0,6.91内的概率。 解: cdf(chi2,6.91,16) ans = 0.0250,7,随机变量的逆累积分布函数,MATLAB中的逆累积分布函数是已知,求x。 命令 icdf 计算逆累积分布函数 格式 icdf(name,F,A) icdf(name,F,A,B) icdf(name,F,A,B,C) 说明 返回分布为name,参数为a1,a2,a3,
4、累积概率值为F的临界值,这里name与前面相同。 如果F= cdf(name,X,A,B,C) , 则 X = icdf(name,F,A,B,C),8,例:在标准正态分布表中,若已知F=0.6554,求X 解: icdf(norm,0.6554,0,1) ans = 0.3999 % 接近0.4 例:公共汽车门的高度是按成年男子与车门顶碰头的机会不超过1%设计的。设男子身高X(单位:cm)服从正态分布N(175,6),求车门的最低高度。 解:设h为车门高度,X为身高。 求满足条件 FX=0.99,即 FXh h=icdf(norm,0.99, 175, 6) h = 188.9581,9,8
5、.1.2 常见分布的概率密度函数与分布函数 8.1.2.1 Poisson分布,其要求x是正整数。,10,其中:x为选定的一组横坐标向量, y为x各点处的概率密度函数值。,11,例:绘制 l =1,2,5,10 时 Poisson 分布的概率密度函数与概率分布函数曲线。 x=0:15; y1=; y2=; lam1=1,2,5,10; for i=1:length(lam1) y1=y1,poisspdf(x,lam1(i); y2=y2,poisscdf(x,lam1(i); end plot(x,y1), figure; plot(x,y2),12,8.1.2.2 正态分布,正态分布的概率
6、密度函数为:,13,例: x=-5:.02:5; y1=; y2=; mu1=-1,0,0,0,1; sig1=1,0.1,1,10,1; sig1=sqrt(sig1); for i=1:length(mu1) y1=y1,normpdf(x,mu1(i),sig1(i); y2=y2,normcdf(x,mu1(i),sig1(i); end plot(x,y1), figure; plot(x,y2),14,8.1.2.3 分布,15,例:绘制 为(1,1),(1,0.5),(2,1),(1,2),(3,1)时 x=-0.5:.02:5; x=-eps:-0.02:-0.5,0:0.02
7、:5; x=sort(x);替代 y1=; y2=; a1=1,1,2,1,3; lam1=1,0.5,1,2,1; for i=1:length(a1) y1=y1,gampdf(x,a1(i),lam1(i); y2=y2,gamcdf(x,a1(i),lam1(i); end plot(x,y1), figure; plot(x,y2),16,8.1.2.4 分布(卡方分布),其为一特殊的 分布 ,a=k/2, l =1/2。,17,例: x=-eps:-0.02:-0.5,0:0.02:2; x=sort(x); k1=1,2,3,4,5; y1=; y2=; for i=1:leng
8、th(k1) y1=y1,chi2pdf(x,k1(i); y2=y2,chi2cdf(x,k1(i);end plot(x,y1), figure; plot(x,y2),18,8.1.2.5 分布,概率密度函数为:,其为参数k的函数,且k为正整数。,19,例: x=-5:0.02:5; k1=1,2,5,10; y1=; y2=; for i=1:length(k1) y1=y1,tpdf(x,k1(i); y2=y2,tcdf(x,k1(i); end plot(x,y1), figure; plot(x,y2),20,8.1.2.6 Rayleigh分布,21,例: x=-eps:-0
9、.02:-0.5,0:0.02:5; x=sort(x); b1=.5,1,3,5; y1=; y2=; for i=1:length(b1) y1=y1,raylpdf(x,b1(i); y2=y2,raylcdf(x,b1(i); end plot(x,y1), figure; plot(x,y2),22,8.1.2.7 F 分布,其为参数p,q的函数,且p,q均为正整数。,23,例:分别绘制(p,q)为(1,1),(2,1),(3,1)(3,2),(4,1)时F分布的概率密度函数与分布函数曲线。 x=-eps:-0.02:-0.5,0:0.02:1; x=sort(x); p1=1 2
10、3 3 4; q1=1 1 1 2 1; y1=; y2=; for i=1:length(p1) y1=y1,fpdf(x,p1(i),q1(i); y2=y2,fcdf(x,p1(i),q1(i); end plot(x,y1), figure; plot(x,y2),24,8.1.3 概率问题的求解,图4-9,25,例: b=1; p1=raylcdf(0.2,b); p2=raylcdf(2,b); P1=p2-p1 P1 = 0.8449 p1=raylcdf(1,b); P2=1-p1 P2 = 0.6065,26,例: syms x y; f=x2+x*y/3; P=int(in
11、t(f,x,0,1/2),y,0,1/2) P = 5/192 syms x y; f=x2+x*y/3; P=int(int(f,x,0,1),y,0,2) P = 1,27,8.1.4 随机数与伪随机数,28,29,例: b=1; p=raylrnd(1,30000,1); xx=0:.1:4; yy=hist(p,xx); hist()找出随机数落入各个子区间的点个数,并由之拟合出生成数据的概率密度。 yy=yy/(30000*0.1); bar(xx,yy), y=raylpdf(xx,1); line(xx,y),30,8.2 统计量分析 8.2.1 随机变量的均值与方差,31,例:
12、 均值 syms x; syms a lam positive p=lama*x(a-1)/gamma(a)*exp(-lam*x); m=int(x*p,x,0,inf) m = 1/lam*a 方差 s=simple(int(x-1/lam*a)2*p,x,0,inf) s = a/lam2,32,已知一组随机变量样本数据构成的向量:,求该向量各个元素的均值、方差和标准差、中位数median,33,例:生成一组 30000 个正态分布随机数,使其均值为 0.5,标准差为1.5,分析数据实际的均值、方差和标准差,如果减小随机变量个数,会有什么结果? p=normrnd(0.5,1.5,300
13、00,1);mean(p),var(p),std(p) ans = 0.4879 2.2748 1.5083 300个随机数 p=normrnd(0.5,1.5,300,1);mean(p),var(p),std(p) ans = 0.4745 1.9118 1.3827 可见在进行较精确的统计分析时不能选择太小的样本点。,34,例: m,s=raylstat(0.45) m = 0.5640 s = 0.0869,35,8.2.2 随机变量的矩,36,例: 求解原点矩 syms x; syms a lam positive; p=lama*x(a-1)/gamma(a)*exp(-lam*x
14、); for n=1:5, m=int(xn*p,x,0,inf), end m = 1/lam*a m = 1/lam2*a*(a+1) m = 1/lam3*a*(a+1)*(a+2) m = 1/lam4*a*(a+1)*(a+2)*(a+3) m = 1/lam5*a*(a+1)*(a+2)*(a+3)*(a+4) 有规律,37, syms n; m=simple(int(x)n*p,x,0,inf) 直接求出 m = lam(-n)*gamma(n+a)/gamma(a) for n=1:6, s=simple(int(x-1/lam*a)n*p,x,0,inf), end 中心距
15、s = 0 s = a/lam2 s = 2*a/lam3 s = 3*a*(a+2)/lam4 s = 4*a*(5*a+6)/lam5 s = 5*a*(3*a2+26*a+24)/lam6 好像无规律,38,39,例:考虑前面的随机数,可以用下面的语句得出随机数的各阶矩。 A=; B=; p=normrnd(0.5,1.5,30000,1); n=1:5; for r=n, A=A, sum(p.r)/length(p); B=B,moment(p,r); end A,B A = 0.5066 2.4972 3.5562 18.7530 41.5506 B = 0 2.2405 0.0212 15.1944 0.0643,40,求各阶距的理论值: syms x; A1=; B1=; p=1/(sqrt(2*pi)*1.5)*exp(-(x-0.5)2/(2*1.52); for i=1:5 A1=A1,vpa(int(xi*p,x,-inf,inf),12); B1=B1,vpa(int(x-0.5)i*p,x,-inf,inf),12); end A1, B1 A1 = .500000000001, 2.50000000000, 3.5000