【发布时间】:2011-11-01 22:05:30
【问题描述】:
我正在尝试使用 Python 求解这个积分方程:
其中 z 的范围是 0 到 1。
scipy.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 求解积分方程吗?
【问题讨论】:
-
当您谈论积分方程时:您要寻找的值是多少?你想得到给定 D_L 的 z1 吗?
-
积分前有一个 z,这是错字吗?
-
我不知道如何使用 linalg 求解积分方程。
标签: python integration scipy equation