2016-09-25 91 views
0

我剛開始在Matlab中工作,在理解它是如何工作時遇到了一些麻煩。在Matlab中找到兩個正態分佈的交點

我正在嘗試返回兩個高斯分佈的交集,其平均值爲0和1,方差爲0.5。我用下面的代碼來生成兩個分佈:

mu1 = 0; 
mu2 = 1; 

sigma1 = sqrt(0.5); 
sigma2 = sqrt(0.5); 

dist1 = makedist('normal',mu1,sigma1); 
dist2 = makedist('normal',mu2,sigma2); 

我發現,您可以生成概率密度functionwith下面的代碼文件中:

pdf(dist1,[range]) 

的問題是,我不我真的有一個範圍,我只想找到這兩個分佈的交集。在Matlab中最好的方法是什麼?

+1

http://stats.stackexchange.com/questions/12209/percentage-of-overlapping-regions-of-two-normal-distributions – StefanM

+0

[HTTPS ://fr.mathworks.com/matlabcentral/fileexchange/49823-calc-overlap-twonormal-s1-s2-mu1-mu2-xstart-xend-xinterval-](https://fr.mathworks.com/matlabcentral/fileexchange/49823-鈣重疊twonormal-S1-S2-MU1-MU2-XSTART-xend的-xinterval-) – shamalaia

回答

1

我明白你想要交點,而不是兩條曲線下的面積。如果這是正確的,它更容易使用匿名函數,

mu1 = 0; 
mu2 = 1; 
sigma1 = sqrt(0.5); 
sigma2 = sqrt(0.5); 
dist1 [email protected](x) exp(-(x-mu1).^2/(2*sigma1^2))/sqrt(2*sigma1^2*pi); 
dist2 [email protected](x) exp(-(x-mu2).^2/(2*sigma2^2))/sqrt(2*sigma2^2*pi); 
fzero(@(x) dist1(x) - dist2(x), rand * (mu1 - mu2) + (mu1 + mu2)) 

    0.500