Matlab笔记——数值计算—概率篇017
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17. 数值计算—概率篇
一、计算组合数、排列数
!n——factorial(n)或prod(1:n)
k
C——nchoosek(n,k)
n
k
A——factorial(n)/factorial(n-k)
n
二、生成随机数
1. rand(m,n)
——生成m×n的服从[0,1]上均匀分布的随机数;
用a + (b-a).*rand(m,n)生成m×n的服从[a,b]上均匀分布的随机数。
2. 二项分布与正态分布随机数
binornd(N,P,m,n)——生成m×n的服从二项分布B(N,P)的随机数;
normrnd(MU,SIGMA,m,n)
——生成m×n的服从正态分布N(MU,SIGMA2)的随机数;
3. 通用格式:
分布缩写+rnd(分布参数, m,n)
或random(‘分布名或缩写’, 分布参数, m,n)
可以用来生成m×n该分布的随机数。各种分布名见下图:
4. 使用randsample和randsrc函数生成指定离散分布随机数
X=randsample(N, k, replace, w)
N相当于[1:N], 也可以是具有确定值的向量;k表示生成k个随机数;replace=’true’表示可重复,或’false’表示不可重复(默认);w是权重向量。
X= randsrc(m,n,[x; p])
生成m×n的随机矩阵,服从取值为向量x, 对应概率为向量p的离散分布。
例1 设离散型随机变量X服从如下分布:
生成服从3×5的该分布的随机数。
代码:
xvalue = [-2 -1 0 1 2];
xp = [0.05 0.2 0.5 0.2 0.05];
% 调用randsample函数生成100个服从指定离散分布的随机数
x = randsample(xvalue, 15, true, xp);
reshape(x,[3 5])
% 调用randsrc函数生成10*10的服从指定离散分布的随机数矩阵
y = randsrc(3,5,[xvalue;xp])
运行结果:ans = 0 0 1 0 0
0 0 0 -1 -1
1 1 0 0 1
y = -1 -1 1 1 -1
-1 0 0 2 0
-1 0 -1 0 0
5. 已知概率密度函数,生成服从该分布的随机数 例2 设随机变量X 的概率密度函数为(抛物线分布):
6(1), 01
() 0, x x x f x -<<⎧=⎨⎩其他
调用crnd 函数(来自《MATLAB 统计分析与应用 40个案例分析》作者:谢中华),生成3×5个服从该分布的随机数。
代码:
pdffun = '6*x*(1-x)'; % 密度函数表达式 x = crnd(pdffun,[0 1],3,5)
运行结果:x = 0.3160 0.6866 0.2724 0.2816 0.1268 0.2681 0.8439 0.1948 0.7999 0.5383 0.7377 0.2040 0.4932 0.1948 0.6909
6. 生成多元分布的随机数
mrnd(N, P, m)——多项分布,P 为概率向量;
mvnrnd(mu, sigma, m)——多元正态分布,mu, sigma 为n 元向量; mvtrnd(C, df, m)——多元t 分布; wishrnd(sigma,df,m)——Wishart 分布; iwishrnd(sigma,df, m)——逆Wishart 分布;
例3利用mvnrnd 函数生成3组的二元正态分布随机数,其中分布的参数为
1013==20316μ⎛⎫⎛⎫
∑ ⎪ ⎪⎝⎭⎝⎭
, 代码:
mu = [10 20];
sigma = [1 3; 3 16];
xy = mvnrnd(mu, sigma, 3)
运行结果:xy = 11.8336 25.7385
9.0347 17.8026
9.6030 19.5821
三、随机变量的概率密度函数及其图像
概率密度函数,描述随机变量X在点x附近取值的可能性。
1. 通用格式:
pdf(‘分布名或缩写’, x, 分布参数)
——返回该分布在X=x处的概率密度值;
例如,Pk=pdf('bino',3, 10, 0.4)
2. 专用函数
分布名缩写+pdf(x, 分布参数)
例如,binopdf (k, n, p)
例4绘制卡方分布密度函数在自由度分别为1、5、15的图形。
代码:
x=0:0.1:30;
y1=chi2pdf(x,1); plot(x,y1,':')
hold on
y2=chi2pdf(x,3);plot(x,y2,'+')
y3=chi2pdf(x,10);plot(x,y3,'o')
axis([0,30,0,0.2])
运行结果:
四、随机变量的分布函数
分布函数定义为:F(x)=P{X≤x},表示随机变量X的取值落在(-∞,x)范围内的概率。引入分布函数的目的,就是可以计算随机变量X的取值落在任意区间内的概率,例如,
P{a 1. 通用格式: cdf(‘分布名或缩写’, x, 分布参数) ——返回该分布的分布函数; 例如,Pk=cdf('bino',3, 10, 0.4) 2. 专用函数 分布名缩写+cdf(x, 分布参数) 例如,binocdf (k, n, p)