我需要为一个函数编写代码并获得期望值

问题描述 投票:0回答:1

我需要用方程编写一个代码,用于宇宙学中称为“共动声视界”的东西

这与哈勃(a) 的方程相同:

虽然我已经根据需要正确定义了 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))
python numpy scipy physics
1个回答
0
投票

我修好了。我必须在哈勃函数中添加一个项,该项非常小,通常会被忽略。但添加这个术语就解决了这个问题。谢谢你。

© www.soinside.com 2019 - 2024. All rights reserved.