有很多概率问题难以计算,用计算计模拟的方法计算概率在数学建模和实际工作生活中有实际意义。下例基于matlab软件,用计算机模拟的方法计算出一个随机变量的分布。
例:设Xi(i=1,2,...,7)相互独立,取值都为0,1,2,3,各个取值的概率都是1/4,求Y=X1+X2+...+X7的概率分布。
分析:显然Y的可能取值为0,1,2,...,21,共22个,要计算其分布并不容易。用计算机模拟的方法,可以估算出每个取值的概率,得到分布列。程序如下:
Y=[0:21;zeros(1,22)];%%%%%初始值,第一行随机变量Y的取值,第二行表示概率:
%%%%%%以下计算频数:
b=0;%%%%%%%随机变量求和,初始值设为0
for j=1:7
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%以下定义随机变量Xi:
a=rand; %取0—1之间服从均匀分布的随机数
if a<=1/4
elseif a<=2/4
elseif a<=3/4
%%%%%以上定义随机变量Xi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
b=b+x;%随机变量求和
Y(2,b+1)=Y(2,b+1)+1;%计算频数,此处b的值是0—21,而对应的列是1—22,所以用b+1
%%%%%%%%以上计算频数
xlswrite('d:\Excel.xls',Y','data1');%数据存储至D盘根目录下,Y转置是为了方便观察结果
运行结果明显看出,Y取10和11的概率最大。
多次运行,结果差别不大。