我试图用Python来解这个积分方程:
其中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求解积分方程吗?