python怎么算积分_如何在python中求解积分方程?

我试图用Python来解这个积分方程:

Fp4YP.png

其中z的范围从0到1。

quad函数只提供特定时间间隔的数值解,但不提供整个时间间隔的数值解。def f(z,Om,Ol): return 1./p.sqrt((1+z)**2 * (1+Om*z) - z*(2+z)*Ol)

quad(lambda r:f(r,Om,Ol),0,1)

(0.77142706642781111, 8.5645609096719596e-15)

但是我不知道如何在这个区间得到一个完整的向量,就像你用scipy.odeint解微分方程时得到的那样。

另一方面,sympy.integrate不能做到这一点。我的堆栈溢出。另外,我不知道如何用一个列表来替换这些符号,即:sy.integrate(x**2,x).subs(x,1)

1/3

sy.integrate(x**2,x).subs(x,[1,2])

TypeError: unhashable type: 'list'

所以问题是:有人知道如何用python求解积分方程吗?