def chi2_func(params): d, rho, A = params[0], params[1], params[2] if A < 0 or rho > 6.0 / np.pi or \ model_kmin / d > kf[0] or model_kmax / d < kf[-1]: return 1e199 km, Pm = hkfunc(params, model_kmin, model_kmax, model_Nk) if km[0] > kf[0] or km[-1] < kf[-1]: raise Exception('k range for model is smaller than that of data.') Pint = interp1d(km, Pm, kind='cubic') Pmodel = Pint(kf) diff = Pmodel - Pf chi2 = np.dot(diff.T, np.dot(icovf, diff)) return chi2
def best_fit(params): return hkfunc(params, model_kmin, model_kmax, model_Nk)
usecols=(0, 1), unpack=True) #Pb = Pb/np.max(abs(Pb)) kd_PACHY, Pkd_PACHY, Variance_1_PACHY = np.loadtxt( "/hpcstorage/zhaoc/share/ting/PATCHY_pre_voids/powspec_PACHY_dis_voids_16/catelogues/average.dat", usecols=(0, 1, 2), unpack=True) test = np.loadtxt( "/hpcstorage/zhaoc/share/ting/PATCHY_pre_voids/powspec_PACHY_dis_voids_16/catelogues/average.dat", usecols=(0, 1, 2), unpack=True) #result = test[test[0]<0.7] k_test, P_test = hkfunc([33.2, 0.32, 43000], model_kmin, model_kmax, model_Nk) fk = interp1d(k_test, P_test, kind='cubic') #for i in range(len(k_test)): # if k_test[i]>0.6: # P_test[i]=0 #fk = interp1d(k_test, P_test, kind='cubic') #k_test = k_test[0.00001<k_test] #P_test = fk(k_test) #P_test = fk(kd) #k_test = kd fhk = lambda k: fk(k) #print(np.min(k_test),np.max(k_test)) r, chi = xicalc(fhk, int(model_Nk), np.min(k_test), np.max(k_test), 0.01) np.savetxt("correlation function.dat", np.transpose([r, chi]), fmt='%g')
r_ori, chi_ori, chi_var = np.loadtxt("/hpcstorage/zhaoc/share/ting/2PCF_disjoint_voids/correlation_function_auto_disjoint_16_18/average.dat", usecols=(0,1,2), unpack=True) kd, Pkd, Variance_1 = np.loadtxt("input/input_data.dat", usecols=(0,1,2), unpack=True) k_lin, P_lin = np.loadtxt("input/Pnw.dat", usecols=(0,1), unpack=True) #Variance_1 = Variance_1/np.max(abs(Pkd)) #Pkd = Pkd/np.max(abs(Pkd)) kb, Pb = np.loadtxt("output/HSfit_input_data_bestfit.dat", usecols=(0,1), unpack=True) #Pb = Pb/np.max(abs(Pb)) kd_PACHY, Pkd_PACHY, Variance_1_PACHY = np.loadtxt("/hpcstorage/zhaoc/share/ting/PATCHY_pre_voids/powspec_PACHY_dis_voids_16_18/catelogues/average.dat", usecols=(0,1,2), unpack=True) test = np.loadtxt("/hpcstorage/zhaoc/share/ting/PATCHY_pre_voids/powspec_PACHY_dis_voids_16_18/catelogues/average.dat", usecols=(0,1,2), unpack=True) #result = test[test[0]<0.7] k_2, P_2 = hkfunc([33.513739,0.40260519,37490.99], model_kmin, model_kmax, model_Nk) fk = interp1d(k_2, P_2, kind='cubic') #for i in range(len(k_test)): # if k_test[i]>0.6: # P_test[i]=0 #fk = interp1d(k_test, P_test, kind='cubic') #k_test = k_test[0.00001<k_test] #P_test = fk(k_test) #P_test = fk(kd) #k_test = kd fhk = lambda k : fk(k) #print(np.min(k_test),np.max(k_test)) r, chi = xicalc(fhk, int(model_Nk), np.min(k_2), np.max(k_2), 0.01)