#mixed normal distribution
def fNormal(x, mu, sd1):
return 1/sqrt(2*pi*sd1^2)*exp(-1/2*((x-mu)/sd1)^2)
def fN_summed(x, mu1, mu2, sd1, sd2):
return fNormal(x, mu1+mu2, sqrt(sd1^2 + sd2^2))
def fN_mixed(x, mu1, mu2, sd1, sd2, p1):
return p1*fNormal(x, mu1, sd1) + (1-p1)*fNormal(x, mu2, sd2)
a = plot(fNormal(x,1,1), (x,-3,3), linestyle=":", color="blue") #dashline
b = plot(fNormal(x,-1,1), (x,-3,3), linestyle="-.", color="red")
c = plot(fN_summed(x, -1,1,1,1), (x,-3,3), linestyle="-", color="black")
show(a+b+c)