Я работал с символическими выражениями в Python и пришел к тому, который я хочу интегрировать через определенный интервал.Выражение содержит pi
.
. Беда в том, что мне не удалось выяснить, как преобразовать это выражение в функцию, которую можно ввести в качестве аргумента scipy.integrate.quad
.Соответствующие части моего кода следующие:
from sympy import *
import numpy as np
import scipy.integrate as integrate
from sympy.utilities.lambdify import lambdify
# this defines the symbols that
# we will be using in our computations:
x, y, g, y1, a0, a1, a2 = symbols('x y g y1 a0 a1 a2')
# this defines what a0 and a1,
# and what y and y' are:
a0 = 2
a1 = -((2/pi)+(pi*a2))
y = a0+a1*x+a2*x**2
y1 = y.diff(x)
# this defines the integrand that
# here represents the Lagrangian:
L=sqrt((1+y1**2)/(2*g*y))
# this differentiates the above with
# respect to a2, to define the integrand:
difL = L.diff(a2)
Это difL
, который я хочу интегрировать.Я попытался определить его как функцию следующим образом:
def integrand(a2):
return difL
f = lambdify(x, integrand(a2))
безрезультатно.Итак, мой вопрос: как я могу преобразовать difL
в функцию, которая затем может быть интегрирована с использованием scipy.integrate.quad
?
И, как заявление об отказе от ответственности, я новичок в Python, поэтому, если я использовалусловия неправильно, дайте мне знать.