本专辑参考了薛定宇老师的早年的一本专著《高等应用数学问题 MATLAB求解》,遴选部分习题供初学者参考,仅用作学习资料传播,版权属于原作者,特此致谢。
如有不妥,请联系删除。
主要内容改编或来源于:薛定宇、高等应用数学问题 MATLAB求解:习题参考解答(预印本)。
每日一题 | Matlab在概率统计中的应用(0001)
问题:
假设已知 Rayleigh 分布的概率密度函数为
试用解析推导的方法求出该分布的分布函数、均值、方差、中心矩和原点矩。生成一组满足 Rayleigh 分布的伪随机数,用数值方法检验得出的解析结果是否正确。
解:
工具相应的数学定义的公式,所需的分布函数、均值、方差、中心矩和原点矩等可 以由下面的语句推导出来。
>> syms x;
syms b positive
p=x*exp(-x^2/2/b^2)/b^2*heaviside(x);
>> syms tau;
F=int(subs(p,x,tau),tau,-inf,x)
F =
-exp(-1/2*x^2/b^2)+1
>> Emean=int(x*p,x,-inf,inf)
Emean =
1/2/b^2*2^(1/2)/(1/b^2)^(3/2)*pi^(1/2)
>> Evar=int((x-Emean)^2*p,x,-inf,inf)
Evar =
-1/2*b^2*pi+2*b^2
>> Ev=int(x^r*p,x,0,inf)
Ev =
2^(1/2*r)*b^r*gamma(1/2*r+1)
>> Evm=int((x-Emean)^r*p,x,0,inf) % 不能得出解析解
注意:MATLAB 6.* 版本不支持 heaviside() 函数。
因为 x < 0 时 p = 0,所以,实际求解可以由下面的语句实现,得出的结果和前面一致。
>> syms x;
syms b positive
p=x*exp(-x^2/2/b^2)/b^2;
>> syms tau;
F=int(subs(p,x,tau),tau,0,x)
F =
-exp(-1/2*x^2/b^2)+1
>> Emean=int(x*p,x,0,inf)
Emean =
1/2/b^2*2^(1/2)/(1/b^2)^(3/2)*pi^(1/2)
>> Evar=int((x-Emean)^2*p,x,0,inf)
Evar =
-1/2*b^2*pi+2*b^2
假设 b = 1,则可以由下面语句
>> R=raylrnd(1,10000,1);
mean(R)
>> vpa(subs(Emean,b,1))
ans =
1.26374494951941
ans =
1.2533141373155003428507825447014
>> vpa(subs(Evar,b,1))
ans =
.42920367320510344200101826572791
>> cov(R-mean(R))
ans =
0.43460979618693
快去试试吧!
喜欢就点个在看吧!