首页 > 解决方案 > 将 SymPy 表达式与不涉及 x 的复杂因子集成

问题描述

我想将复杂的功能与 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

?

标签: pythonsympy

解决方案


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))

推荐阅读