def MxCfGl(m): res = (10 ** (stpars.x[0] * (m - stpars.x[1])) * 0.5 * mf.erfc((m - stpars.x[2]) / stpars.x[3])) / ( (10 ** (stpars.x[0] * (m - stpars.x[1]))) * 0.5 * mf.erfc((m - stpars.x[2]) / stpars.x[3]) + 10 ** (gapars.x[0] * (m - gapars.x[1])) * 0.5 * mf.erfc((m - gapars.x[2]) / gapars.x[3]) ) # res = ( 10**(stpars.x[0]*(m-stpars.x[1])) ) / ( (10**(stpars.x[0]*(m-stpars.x[1]))) + 10**(gapars.x[0]*(m-gapars.x[1])) ) return res
def SSga(para): check = 0 if para[0] < 0.0001: check = 1; res = 10**20 if check == 0: m = mids[hga[0] > 0] y = np.log(hga[0][hga[0] > 0]) res = np.sum((y - np.log(10**(para[0]*(m - para[1]))*0.5*mf.erfc((m-para[2])/para[3])))**2) return res
def SSga(para): check = 0 if para[0] < 0.0001: check = 1 res = 10 ** 20 if check == 0: m = mids[hga[0] > 0] y = np.log(hga[0][hga[0] > 0]) res = np.sum((y - np.log(10 ** (para[0] * (m - para[1])) * 0.5 * mf.erfc((m - para[2]) / para[3]))) ** 2) return res
def SSga(para): check = 0 if para[0] < 0.0001: check = 1 res = 10 ** 20 if check == 0: m = mids[hga[0] > 0] y = np.log(hga[0][hga[0] > 0]) res = np.sum((y - np.log(10 ** (para[0] * (m - para[1])) * 0.5 * mf.erfc((m - para[2]) / para[3]))) ** 2) return res stpars = minimize(SSst, [0.25, 5, 20, 0.5], method="BFGS") gapars = minimize(SSga, [0.45, 15, 20, 0.5], method="BFGS") lst = 10 ** (stpars.x[0] * (m - stpars.x[1])) * 0.5 * mf.erfc((m - stpars.x[2]) / stpars.x[3]) lga = 10 ** (gapars.x[0] * (m - gapars.x[1])) * 0.5 * mf.erfc((m - gapars.x[2]) / gapars.x[3]) plt.plot(m, np.log(lst), color="c") plt.plot(m, np.log(lga), color="m") plt.show() # plt.savefig("numcounthist.png".format(file)) def MxCfGl(m): res = (10 ** (stpars.x[0] * (m - stpars.x[1])) * 0.5 * mf.erfc((m - stpars.x[2]) / stpars.x[3])) / ( (10 ** (stpars.x[0] * (m - stpars.x[1]))) * 0.5 * mf.erfc((m - stpars.x[2]) / stpars.x[3]) + 10 ** (gapars.x[0] * (m - gapars.x[1])) * 0.5 * mf.erfc((m - gapars.x[2]) / gapars.x[3]) ) # res = ( 10**(stpars.x[0]*(m-stpars.x[1])) ) / ( (10**(stpars.x[0]*(m-stpars.x[1]))) + 10**(gapars.x[0]*(m-gapars.x[1])) ) return res
def MxCfGl(m): res = ( 10**(stpars.x[0]*(m-stpars.x[1]))*0.5*mf.erfc((m-stpars.x[2])/stpars.x[3]) ) / ( (10**(stpars.x[0]*(m-stpars.x[1])))*0.5*mf.erfc((m-stpars.x[2])/stpars.x[3]) + 10**(gapars.x[0]*(m-gapars.x[1]))*0.5*mf.erfc((m-gapars.x[2])/gapars.x[3]) ) #res = ( 10**(stpars.x[0]*(m-stpars.x[1])) ) / ( (10**(stpars.x[0]*(m-stpars.x[1]))) + 10**(gapars.x[0]*(m-gapars.x[1])) ) return res
return res def SSga(para): check = 0 if para[0] < 0.0001: check = 1; res = 10**20 if check == 0: m = mids[hga[0] > 0] y = np.log(hga[0][hga[0] > 0]) res = np.sum((y - np.log(10**(para[0]*(m - para[1]))*0.5*mf.erfc((m-para[2])/para[3])))**2) return res stpars = minimize(SSst,[0.25,5,20,0.5],method='BFGS') gapars = minimize(SSga,[0.45,15,20,0.5],method='BFGS') lst = 10**(stpars.x[0]*(m-stpars.x[1])) * 0.5*mf.erfc((m-stpars.x[2])/stpars.x[3]) lga = 10**(gapars.x[0]*(m-gapars.x[1])) * 0.5*mf.erfc((m-gapars.x[2])/gapars.x[3]) plt.plot(m, np.log(lst), color = 'c') plt.plot(m, np.log(lga), color = 'm') plt.show() #plt.savefig("numcounthist.png".format(file)) def MxCfGl(m): res = ( 10**(stpars.x[0]*(m-stpars.x[1]))*0.5*mf.erfc((m-stpars.x[2])/stpars.x[3]) ) / ( (10**(stpars.x[0]*(m-stpars.x[1])))*0.5*mf.erfc((m-stpars.x[2])/stpars.x[3]) + 10**(gapars.x[0]*(m-gapars.x[1]))*0.5*mf.erfc((m-gapars.x[2])/gapars.x[3]) ) #res = ( 10**(stpars.x[0]*(m-stpars.x[1])) ) / ( (10**(stpars.x[0]*(m-stpars.x[1]))) + 10**(gapars.x[0]*(m-gapars.x[1])) ) return res plt.plot(m,MxCfGl(m), color = 'k') plt.plot(mids,(hst[0]/(hst[0]+hga[0]+0.0)), color = 'r') plt.show() #plt.savefig("starperhist.png".format(file))