Я пытаюсь решить это интегральное уравнение, используя 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?