我正在尝试计算以下积分
使用 scipy,使用以下程序:
def E(z):
result = 1/np.sqrt(Om*(1 + z)**3 + Ode + Ox*(1 + z)**2)
return result
def r(z, E):
result, error = quad(E, 0, z) # integrate E(z) from 0 to z
return result
z 是自变量,而 Om Ode 和 Ox 是简单的常量(之前已分配)。然后当我尝试调用该函数时:
z = np.linspace(1e-3, 4, 300)
plt.plot(z, r(z))
我得到错误
flip, a, b = b < a, min(a, b), max(a, b)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any()
or a.all()
问题是什么?scipy.quad 是否无法集成到变量?非常感谢你的帮助