如何生成平均值与方差确定的一组数据,并且其服从韦伯分布

如题
工具是MATLAB

第1个回答  2017-07-24
一、Matlab在一个集合中随机取数:function 'randperm'
for example:
a=[1 2 3 4 5 6 7 8 9 10];
b=a(randperm(length(a)));
x=b(1:5);
matlab生成随机数据
matlab本身提供很多的函数来生成各种各样的随机数据:
normrnd 可以生成一定均值和标准差的正态分布
gamrnd 可以生成gamma分布的伪随机数矩阵
chi2rnd 可以生成卡方分布的伪随机数矩阵
trnd 可以生成t分布的伪随机数矩阵
frnd 可以生成f分布的伪随机数矩阵
raylrnd 可以生成rayleigh分布的伪随机数矩阵
关于具体的函数语法,你可以在matlab中用help命令得到更详细的说明。
我要说的是,这些生成的伪随机矩阵的标准差,均值等都是和你给的具体数据很接近的,但是,不是一样啊。也就是说matlab生成的伪随机矩阵不是一定准确的,只能是很接近的。另外,要明白什么是伪随机数。
随机数的生成通常有两种方法:一是依赖一些专用的电子元件发出随机信号,这种方法又称为物理生成法。另一类就是通过数学的算法,仿照随机数发生的规律计算出随机数,由于产生的随机数是有数学公式计算出来的,所以这类随机数又称为伪随机数。
你也可以让matlab生成一个随机的正态分布矩阵,然后用normstat来求得生成矩阵的真实方差和矩阵。其实matlab中求均值和方差的函数都是以*stat结尾的。比如上面的求正态分布的normstat,求gam分布的均值和方差的gamstat,求rayleigh分布的均值和方差的raylstat等。同样的,还有以*pdf结尾的都是函数的概率密度,以*cdf结尾的函数是分布函数,以inv结尾的函数为逆分布函数求解函数。比如,正态分布的概率密度normpdf,正态分布的分布函数normcdf,正态分布的逆分布函数求解函数为norminv。同样道理的还有possion分布,gamma分布,卡方分布,T分布,F分布,rayleigh分布等,加上后缀都是相应的概率密度函数,分布函数。
二、统计编程:
此文纯粹是转贴
第4章 概率统计
本章介绍MATLAB在概率统计中的若干命令和使用格式,这些命令存放于MatlabR12\Toolbox\Stats中.
4.1 随机数的产生
4.1.1 二项分布的随机数据的产生
命令 参数为N,P的二项随机数据
函数 binornd
格式 R = binornd(N,P) %N,P为二项分布的两个参数,返回服从参数为N,P的二项分布的随机数,N,P大小相同.
R = binornd(N,P,m) %m指定随机数的个数,与R同维数.
R = binornd(N,P,m,n) %m,n分别表示R的行数和列数
例4-1
>> R=binornd(10,0.5)
R =
3
>> R=binornd(10,0.5,1,6)
R =
8 1 3 7 6 4
>> R=binornd(10,0.5,[1,10])
R =
6 8 4 6 7 5 3 5 6 2
>> R=binornd(10,0.5,[2,3])
R =
7 5 8
6 5 6
>>n = 10:10:60;
>>r1 = binornd(n,1./n)
r1 =
2 1 0 1 1 2
>>r2 = binornd(n,1./n,[1 6])
r2 =
0 1 2 1 3 1
4.1.2 正态分布的随机数据的产生
命令 参数为μ,σ的正态分布的随机数据
函数 normrnd
格式 R = normrnd(MU,SIGMA) %返回均值为MU,标准差为SIGMA的正态分布的随机数据,R可以是向量或矩阵.
R = normrnd(MU,SIGMA,m) %m指定随机数的个数,与R同维数.
R = normrnd(MU,SIGMA,m,n) %m,n分别表示R的行数和列数
例4-2
>>n1 = normrnd(1:6,1./(1:6))
n1 =
2.1650 2.3134 3.0250 4.0879 4.8607 6.2827
>>n2 = normrnd(0,1,[1 5])
n2 =
0.0591 1.7971 0.2641 0.8717 -1.4462
>>n3 = normrnd([1 2 3;4 5 6],0.1,2,3) %mu为均值矩阵
n3 =
0.9299 1.9361 2.9640
4.1246 5.0577 5.9864
>> R=normrnd(10,0.5,[2,3]) %mu为10,sigma为0.5的2行3列个正态随机数
R =
9.7837 10.0627 9.4268
9.1672 10.1438 10.5955
4.1.3 常见分布的随机数产生
常见分布的随机数的使用格式与上面相同
表4-1 随机数产生函数表
函数名
调用形式
注 释
Unifrnd
unifrnd ( A,B,m,n)
[A,B]上均匀分布(连续) 随机数
Unidrnd
unidrnd(N,m,n)
均匀分布(离散)随机数
Exprnd
exprnd(Lambda,m,n)
参数为Lambda的指数分布随机数
Normrnd
normrnd(MU,SIGMA,m,n)
参数为MU,SIGMA的正态分布随机数
chi2rnd
chi2rnd(N,m,n)
自由度为N的卡方分布随机数
Trnd
trnd(N,m,n)
自由度为N的t分布随机数
Frnd
frnd(N1, N2,m,n)
第一自由度为N1,第二自由度为N2的F分布随机数
gamrnd
gamrnd(A, B,m,n)
参数为A, B的分布随机数
betarnd
betarnd(A, B,m,n)
参数为A, B的分布随机数
lognrnd
lognrnd(MU, SIGMA,m,n)
参数为MU, SIGMA的对数正态分布随机数
nbinrnd
nbinrnd(R, P,m,n)
参数为R,P的负二项式分布随机数
ncfrnd
ncfrnd(N1, N2, delta,m,n)
参数为N1,N2,delta的非中心F分布随机数
nctrnd
nctrnd(N, delta,m,n)
参数为N,delta的非中心t分布随机数
ncx2rnd
ncx2rnd(N, delta,m,n)
参数为N,delta的非中心卡方分布随机数
raylrnd
raylrnd(B,m,n)
参数为B的瑞利分布随机数
weibrnd
weibrnd(A, B,m,n)
参数为A, B的韦伯分布随机数
binornd
binornd(N,P,m,n)
参数为N, p的二项分布随机数
geornd
geornd(P,m,n)
参数为 p的几何分布随机数
hygernd
hygernd(M,K,N,m,n)
参数为 M,K,N的超几何分布随机数
Poissrnd
poissrnd(Lambda,m,n)
参数为Lambda的泊松分布随机数
4.1.4 通用函数求各分布的随机数据
命令 求指定分布的随机数
函数 random
格式 y = random('name',A1,A2,A3,m,n) %name的取值见表4-2;A1,A2,A3为分布的参数;m,n指定随机数的行和列
4.2 随机变量的概率密度计算
4.2.1 通用函数计算概率密度函数值
命令 通用函数计算概率密度函数值
函数 pdf
格式 Y=pdf(name,K,A)
Y=pdf(name,K,A,B)
Y=pdf(name,K,A,B,C)
说明 返回在X=K处,参数为A,B,C的概率密度值,对于不同的分布,参数个数是不同;name为分布函数名,其取值如表4-2.
表4-2 常见分布函数表
name的取值
函数说明
'beta'

'Beta'
Beta分布
'bino'

'Binomial'
二项分布
'chi2'

'Chisquare'
卡方分布
'exp'

'Exponential'
指数分布
'f'

'F'
F分布
'gam'

'Gamma'
GAMMA分布
'geo'

'Geometric'
几何分布
'hyge'

'Hypergeometric'
超几何分布
'logn'

'Lognormal'
对数正态分布
'nbin'

'Negative Binomial'
负二项式分布
'ncf'

'Noncentral F'
非中心F分布
'nct'

'Noncentral t'
非中心t分布
'ncx2'

'Noncentral Chi-square'
非中心卡方分布
'norm'

'Normal'
正态分布
'poiss'

'Poisson'
泊松分布
'rayl'

'Rayleigh'
瑞利分布
't'

'T'
T分布
'unif'

'Uniform'
均匀分布
'unid'

'Discrete Uniform'
离散均匀分布
'weib'

'Weibull'
Weibull分布
4.2.2 专用函数计算概率密度函数值
命令 二项分布的概率值
函数 binopdf
格式 binopdf (k, n, p) %等同于, p — 每次试验事件A发生的概率;K—事件A发生K次;n—试验总次数
命令 泊松分布的概率值
函数 poisspdf
格式 poisspdf(k, Lambda) %等同于
命令 正态分布的概率值
函数 normpdf(K,mu,sigma) %计算参数为μ=mu,σ=sigma的正态分布密度函数在K处的值
专用函数计算概率密度函数列表如表4-3.