我试图使用Matlab计算特定区域内二元正态分布的概率。
让我们假设随机变量遵循标准正态分布,我想计算单位圆的质量。
我使用了以下代码:
fun = @(x,y) exp(-0.5*(x.^2+y.^2))/(2*pi);
ymin = @(x) -sqrt(1-(x.^2));
ymax = @(x) sqrt(1-(x.^2));
integral2(fun,-1,1,ymin,ymax)
我得到0.3935。我想知道这个结果是否正确。
任何人都可以确认结果是正确的还是指出我犯的错误?
答案 0 :(得分:2)
我认为这是正确的。一些检查:
整合在一个大方块上,看看结果是否几乎为1
:
>> integral2(fun,-5,5,-5,5)
ans =
0.999998853581851
单变量高斯分布的90%是
>> norminv(.9)
ans =
1.281551565544601
因此,[−∞,∞] × [−∞,1.281]
上的函数的积分应为0.9
:
>> integral2(fun,-10,10,-10,norminv(.9))
ans =
0.900000750806316
明确的蒙特卡罗检查:
>> N = 1e6;
x = randn(1,N);
y = randn(1,N);
mean((x>-1)&(x<1)&(y>-sqrt(1-(x.^2)))&(y<sqrt(1-(x.^2))))
ans =
0.393678000000000