Объедините выражение SymPy со сложным фактором, который не включает x - PullRequest
0 голосов
/ 04 ноября 2018

Я хочу интегрировать сложные функции с sympy.integrate. Я понял, что это занимает слишком много времени (по крайней мере, я остановил процесс через 2,5 часа).

Я планирую дать уравнение программе как можно проще. Предположим, у меня есть функция:

alpha*x**(-rho/(rho - 1))*(-gamma*l*rho + gamma*l - gamma*pi*rho + gamma*pi - l*rho - pi*rho)/(gamma*mu)

Я только часть, которую я буду интегрировать это

MainPart = x**(-rho/(rho - 1))

IntegMainPart=sympy.integrate(MainPart)

и остальные являются только параметрами, и они будут

Rest=alpha*(-gamma*l*rho + gamma*l - gamma*pi*rho + gamma*pi - l*rho - pi*rho)/(gamma*mu)

Так возможно ли, что я могу принять только важную часть и интегрировать ее, а затем несколько с остальными, как

IntegMainPart*Rest

1 Ответ

0 голосов
/ 04 ноября 2018

SymPy способен корректно обрабатывать факторы, не связанные с переменной интеграции. Вам не нужно удалять их вручную. Вот как этот интеграл работает для меня.

from sympy import symbols, pi, integrate
x, alpha, gamma, mu, rho, l = symbols('x, alpha, gamma, mu, rho, l')
expr = alpha*x**(-rho/(rho - 1))*(-gamma*l*rho + gamma*l - gamma*pi*rho + gamma*pi - l*rho - pi*rho)/(gamma*mu)
print(integrate(expr, x))

SymPy 1.3 печатает интеграл сразу.

alpha*x**(-rho/(rho - 1) + 1)*(-gamma*l*rho + gamma*l - pi*gamma*rho + pi*gamma - l*rho - pi*rho)/(gamma*mu*(-rho/(rho - 1) + 1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...