我需要用方程编写一个代码,用于宇宙学中称为“共动声视界”的东西
虽然我已经根据需要正确定义了 H 函数,但我在编码
r_s(z)
函数(即共同移动的声层)时遇到了麻烦。当我计算它时,我需要得到大约 140(z=1089),但我得到了大约 250。我也在代码中包含了常量的值。 (这仅用于测试我的代码,因为我需要使用此代码来使用 emcee 估计参数。)
import numpy as np
from scipy.integrate import quad
H0 = 70
c = 3e5
omega_b =0.04
omega_dm = 0.26
h = (H0/100)
def Hubble(a):
return H0*np.sqrt(((omega_b+omega_dm)/(a**3))+(1-(omega_b+omega_dm)))
def aintegrand(a):
omega_gamma = 2.469e-5/(h**2)
k1 = (a**2)*Hubble(a)
k2= (3*omega_b)/(4*omega_gamma)
return 1/(k1*np.sqrt(1+(k2*a)))
def comov1(z):
return c*quad(aintegrand,0,(1/(1+z)))[0]/(np.sqrt(3))
print(comov1(1089))
我修好了。我必须在哈勃函数中添加一个项,该项非常小,通常会被忽略。但添加这个术语就解决了这个问题。谢谢你。