私は2つのガウス分布をプロットし、交差点を見つけることを試みています。私は次のコードを持っています。それは正確な交差点をプロットしていないと私は本当に理由を把握することはできません。それはほんのわずかに外れているようですが、引き算されたガウス分布のログをとった場合は、派生した解を試してみました。正しいと思われるようです。誰も助けることができますか?どうもありがとうございます!ガウスの交点
import numpy as np
import matplotlib.pyplot as plt
def plot_normal(x, mean = 0, sigma = 1):
return 1.0/(2*np.pi*sigma**2) * np.exp(-((x-mean)**2)/(2*sigma**2))
# found online
def solve_gasussians(m1, s1, m2, s2):
a = 1.0/(2.0*s1**2) - 1.0/(2.0*s2**2)
b = m2/(s2**2) - m1/(s1**2)
c = m1**2 /(2*s1**2) - m2**2/(2.0*s2**2) - np.log(s2/s1)
return np.roots([a,b,c])
s1 = np.linspace(0, 10,300)
s2 = np.linspace(0, 14, 300)
solved_val = solve_gasussians(5.0, 0.5, 7.0, 1.0)
print solved_val
solved_val = solved_val[0]
plt.figure('Baseline Distributions')
plt.title('Baseline Distributions')
plt.xlabel('Response Rate')
plt.ylabel('Probability')
plt.plot(s1, plot_normal(s1, 5.0, 0.5),'r', label='s1')
plt.plot(s2, plot_normal(s2, 7.0, 1.0),'b', label='s2')
plt.plot(solved_val, plot_normal(solved_val, 7.0, 1.0), 'mo')
plt.legend()
plt.show()
あなたは私たちがするように、あなたがオンラインで見つけるソリューションに私たちを指すことができます自分のためにそれを派生させる必要はありませんか? –
私は彼らが言及している解決策は、この[あなたの質問](http://stackoverflow.com/a/22579904/752843)かもしれないと思います。だから私たちは、コードにコメントすることの怠慢な欠如を完全に非難することはできません。 – Richard
@リチャード、それも私の考えです。 –