Я пытаюсь вычислить следующий интеграл
с помощью 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 не может интегрироваться до переменной? Большое спасибо за вашу помощь