问题描述
我正在尝试使用SciPy的resolve_ivp函数绘制变量a与时间的关系图。下面的函数定义了导数:
def da_dt0(a,t):
return H0*(omega_m/a+a**2*omega_l-5*eta*omega_m/3.)**(1./2)
其中H0,omega_m,omega_1和eta都是常数。 我用这两行代码来求解a(t)。
trange_void = np.linspace(7.5,15.,101)
sol0 = solve_ivp(da_dt0,[7.5,15.],y0=[av0],t_eval = trange_void)
其中av0也是前面定义的常量。
但是,现在我正在尝试更改eta参数,以了解其对a(t)的影响。我有一个名为eta_list的列表,其中包含101个组件,每个组件对应于t值。
我尝试制作一个给出t值的eta值的函数,并将该函数放入da_dt0()函数中:
def eta_fxn(t):
index = int(np.round((100./15.)*t))
return eta_list[index]
def da_dt0(a,t):
eta_value = eta_fxn(t)
return H0*(omega_m/a+a**2*omega_lambda-5*eta_value*omega_m/3.)**(1./2)
这是一个漫长的询问过程:如何使用带有作为列表元素的参数(eta)的solve_ivp解决da_dt0()。我尝试在我的resolve_ivp调用中使用args =(),但我认为这些args必须是标量,而不是列表。
请让我知道我是否可以澄清任何内容,或者是否不应该使用solve_ivp。谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)