当前位置:文档之家› MATLAB计算概率

MATLAB计算概率

一、实验名称
已知随机向量(X ,Y )独立同服从标准正态分布,D={(x,y)|a<x<b ,c<y<d},用四种方法计算概率)),((D Y X P ∈。

二、实验目的
(1) 培养编程与上机调试能力;
(2) 熟悉matlab6.5.1软件环境;
(3) 了解概率计算的方法。

三、实验要求
(1) 用input ()语句输入常数a,b,c,d;
(2) 用菜单选择计算方法:.
第一种是用matlab 的二重积分计算语句计算;
第二种是用等距网格法,把区域分成n 2个小区域,在每个小区域中随机地取一个点),(j i ηξ,计算二重积分的近似值ij j i f σηξ∆∑),(,其中f 是密度函数;
第三种是用正态分布的分布函数计算;
第四种是蒙特卡罗方法计算。

(3) 把四种不同方法计算出的结果打印在屏幕上。

(4) 用三维图像表示在平面区域D 上的f(x,y)。

(5) 每种计算法都要有计算框图,且每种计算法都要编成一个自定义函数.
五、程序及其运行结果
程序
Function gailv
syms a b c d e n;
a=input('输入值a=');
b=input('\n 输入值b=');
c=input('\n 输入值c=');
d=input('\n 输入值d=');
e=input('\n 请选择:\n1用二重积分计算语句计算概率:\n2等距网格法计算概率;\n3用分布函数计算概率;\n4蒙特卡罗法计算概率.\n5三维图像在D 上表示f(x,y)\n');
while e>0&&e<6
if e==1
p=erchong(a,b,c,d)
end
if e==2
p=wangge(a,b,c,d);
end
if e==3
p=fenbu(a,b,c,d);
end
if e==4
p=mente(a,b,c,d);
end
if e==5
[X,Y]=meshgrid(-3:0.2:3);
Z=1/(2*pi)*exp(-1/2*(X.^2+Y.^2));
meshz(X,Y,Z);
end
e=input('请选择: \n');
end
% ===============================用二重积分计算function p=erchong(a,b,c,d)
syms x y;
f0=1/(2*pi)*exp(-1/2*(x^2+y^2));
f1=int(f0,x,a,b); %对x积分
f1=int(f1,y,c,d); %对y积分
p=vpa(f1,9);
% ================================等距网格法function p=wangge(a,b,c,d)
syms x y ;
n=100;
r1=(b-a)/n; %求步长
r2=(d-c)/n;
za(1)=a;for i=1:n,za(i+1)=za(i)+r1;end %分块
zc(1)=c;for j=1:n,zc(j+1)=zc(j)+r2;end
for i=1:n x(i)=unifrnd(za(i),za(i+1));end %随机取点
for i=1:n y(i)=unifrnd(zc(i),zc(i+1));end
s=0;
for i=1:n
for j=1:n
s=1/(2*pi)*exp(-1/2*(x(i)^2+y(j)^2))+s;%求和end
end
p=s*r1*r2;
p=vpa(p,9)
% ============================用正态分布的分布函数计算function p=fenbu(a,b,c,d)
syms x y;
f0=1/(2*pi)*exp(-1/2*(x.^2+y.^2));%联合密度函数
F=int(f0,x);
F=int(F,y); %分布函数
F=simple(F);
F1=subs(F,{x,y},{b,d}); %F(b,d)
F2=subs(F,{x,y},{a,d}); %F(a,d)
F3=subs(F,{x,y},{b,c}); %F(b,c)
F4=subs(F,{x,y},{a,c}); %F(a,c)
p=F1-F2-F3+F4 %P=F(b,d)-F(a,d)-(b,c)+(a,c)
% ===========================蒙特卡罗法
function p=mente(a,b,c,d)
syms x y;
N=10000000;%取点数
h=0.5;%¸高度
x=a+(b-a)*rand(N,1); %随机生成点
y=c+(d-c)*rand(N,1);
z=h*rand(N,1);
F=1/(2*pi)*exp(-1/2*(x.^2+y.^2));%联合密度函数
i=z<F;
k=sum(i); %求和
p=k*(b-a)*(d-c)*h/N。

相关主题