我正在编写一段模拟宇宙膨胀的代码,特别是我正在积分(使用scipy-odeint)Friedmann方程,得到不同曲率的标度因子与时间的关系图。我的代码是:
import numpy as np
import matplotlib.pyplot as plt
import scipy as sp
from scipy.integrate import odeint
t_0 = 0.0004
a_0 = 0.001
omega_m = 1
omega_r = 0
omega_lambda = 0
omega_k = 1 - omega_lambda - omega_m - omega_r
H_0 = 1./13.799
def Friedmann(a, t):
dadt = H_0 * (((omega_m) * a**(-1)) + ((omega_r) * a**(-2)) + ((omega_lambda) * a**2) + (omega_k))**(1./2.)
return dadt
plt.rc('text', usetex=True)
plt.rc('font', family='serif')
fig, ax = plt.subplots(nrows=1,ncols=1)
for omega_k in np.linspace(-1, 1, 3):
t = np.linspace(t_0,50,200)
a = odeint(Friedmann, a_0, t)
a = np.array(a).flatten()
ax.plot(t,a)
line1, = plt.plot(t, a, 'b')
plt.xlabel('Time/Gyr')
plt.ylabel('Scale factor a')
plt.grid(True)
plt.axis([0,50,0,5])
plt.show()
This是我得到的情节。我试图得到一个底部(浅蓝色)线向下循环并在t~43 Gyr处与x轴相交的图,但我似乎无法得到这个(可能与积分有关)。你知道吗
非常感谢您的帮助。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐