Пример #1
0
y_0 = 1.246
v_0 = 1.64
w_0 = 1 + x_0 + y_0 - v_0
r_0 = 41
ci = [x_0, y_0, v_0, w_0, r_0]  #Condiciones iniciales
#%%

os.chdir(path_git + '/Software/Estadística/Datos/Datos_pantheon/')
zcmb, zhel, Cinv, mb = leer_data_pantheon('lcparam_full_long_zhel.txt')
#%%
#Parametros a ajustar
M_true = -19.6
omega_m_true = 0.26
b_true = -1.2
H0_true = 73  #73.48 #Unidades de (km/seg)/Mpc

#%%
np.random.seed(42)
nll = lambda theta: params_to_chi2(ci, theta, n, zcmb, zhel, Cinv, mb)
initial = np.array([M_true, omega_m_true, b_true, H0_true])
soln = minimize(nll,
                initial,
                bounds=((-20, -18), (0.2, 0.3), (None, None),
                        (60, 80)))  #,options = {'eps': 0.001})
M_ml, omega_m_ml, b_ml, H0_ml = soln.x

print(M_ml, omega_m_ml, b_ml, H0_ml)

os.chdir(path_git + '/Software/Estadística/Resultados_simulaciones')
np.savez('valores_medios_supernovas_4params', sol=soln.x)
#Datos de Supernovas
os.chdir(path_git + '/Software/Estadística/Datos/Datos_pantheon/')
zcmb, zhel, Cinv, mb = leer_data_pantheon('lcparam_full_long_zhel.txt')

os.chdir(path_git + '/Software/Estadística/Resultados_simulaciones/')
with np.load('valores_medios_ST_SN_3params.npz') as data:
    sol = data['sol']
sol[0] = -19.0
print(sol)

#Parametros fijos
H_0 = 73.48
n = 2
params_fijos = [H_0, n]

log_likelihood = lambda theta: -0.5 * params_to_chi2(theta, params_fijos, zcmb,
                                                     zhel, Cinv, mb)


#%% Definimos las gunciones de prior y el posterior
def log_prior(theta):
    M, omega_m, b = theta
    if (-20 < M < -18.5 and 0.05 < omega_m < 0.4 and 0 < b < 2.5):
        return 0.0
    return -np.inf


def log_probability(theta):
    lp = log_prior(theta)
    if not np.isfinite(lp):  #Este if creo que está de más..
        return -np.inf
    return lp + log_likelihood(theta)
#%% Predeterminados:
M_true = -19.25
omega_m_true = 0.3
b_true = 0.1
H0_true = 73.48  #Unidades de (km/seg)/Mpc
n = 1

params_fijos = [H0_true, n]

#Datos de Supernovas
os.chdir(path_git + '/Software/Estadística/Datos/Datos_pantheon/')
zcmb, zhel, Cinv, mb = leer_data_pantheon('lcparam_full_long_zhel.txt')

#%%
#Parametros a ajustar
nll = lambda theta: params_to_chi2(theta, params_fijos, zcmb, zhel, Cinv, mb)

initial = np.array([M_true, omega_m_true, b_true])
soln = minimize(nll,
                initial,
                options={'eps': 0.01},
                bounds=((-19.5, -19), (0.25, 0.35), (0, 0.5)))
M_ml, omega_m_ml, b_ml = soln.x

print(M_ml, omega_m_ml, b_ml)

os.chdir(path_git + '/Software/Estadística/Resultados_simulaciones')
np.savez('valores_medios_HS_SN_3params', sol=soln.x)
soln.fun / (len(zcmb) - 3)  #0.9830091200848468
#%%
os.chdir(path_git + '/Software/Estadística/Resultados_simulaciones/')
Пример #4
0
w_0 = 1 + x_0 + y_0 - v_0
r_0 = 41
ci = [x_0, y_0, v_0, w_0, r_0] #Condiciones iniciales
#%%
os.chdir(path_git+'/Software/Estadística/Datos/Datos_pantheon/')
zcmb,zhel, Cinv, mb = leer_data_pantheon('lcparam_full_long_zhel.txt')
os.chdir(path_git+'/Software/Estadística/Resultados_simulaciones/')
with np.load('valores_medios_supernovas_3params.npz') as data:
    sol = data['sol']
print(sol)
sol[1] = 0.23
sol[2] = 0
#Parametros a ajustar
H0_true =  73.48 #Unidades de (km/seg)/Mpc

log_likelihood = lambda theta: -0.5 * params_to_chi2(ci, theta, [H0_true,n], zcmb, zhel, Cinv, mb)

#%% Definimos las gunciones de prior y el posterior

def log_prior(theta):
    M, omega_m, b = theta
    if (-21 < M < -18.5 and  0.09 < omega_m < 0.4 and -2 < b < 2):
        return 0.0
    return -np.inf

def log_probability(theta):
    lp = log_prior(theta)
    if not np.isfinite(lp):
        return -np.inf
    return lp + log_likelihood(theta)