matlab中两条曲线的交集

pis*_*var 0 matlab

我必须找到pdf正态分布函数的两个交点.

我已经计算了曲线的所有点(x,y)iy = pdf('normal', ix, mu, sd)并将它们绘制在具有两个交叉点的屏幕上.
我已经尝试了fzero功能,但它不起作用,两条曲线的标准偏差都不同,因此阵列的长度不同.
我尝试了最简单的逻辑2 for循环,但它也没有用.

强力方法并没有为我工作是因为在MATLAB中精度不考虑例如24.000和24.001,并从高斯所产生的价值有这使得它不可能MATLAB检查平等小数点后15个整数.

Rod*_*uis 6

如果分析失败,只跳转到数值方法.找到两个正态分布的交点是一个相当简单的代数问题,我现在懒得做,但Matlab可以为我做:

>> syms x sig1 sig2 mu1 mu2;
>> solve(1/sig1/sqrt(2*pi) * exp(-1/2*((x-mu1)/sig1)^2) == ...
         1/sig2/sqrt(2*pi) * exp(-1/2*((x-mu2)/sig2)^2), x)

ans =

 +(mu2*sig1^2 - mu1*sig2^2 + sig1*sig2*(2*sig2^2*log(sig2/sig1) - 2*sig1^2*log(sig2/sig1) - 2*mu1*mu2 + mu1^2 + mu2^2)^(1/2))/(sig1^2 - sig2^2)
 -(mu1*sig2^2 - mu2*sig1^2 + sig1*sig2*(2*sig2^2*log(sig2/sig1) - 2*sig1^2*log(sig2/sig1) - 2*mu1*mu2 + mu1^2 + mu2^2)^(1/2))/(sig1^2 - sig2^2)
Run Code Online (Sandbox Code Playgroud)

sig1, sig2第一和第二标准偏差在哪里mu1, mu2,分别是第一和第二平均值.