Sympy-当表达式包含许多符号时,集成速度很慢

说我有以下表达式,我想对变量z从0到L进行积分。

import sympy as sp

mdot,D,R,alpha,beta,xi,mu0,q,cp,Tin,L = sp.symbols("\dot{m},mu_0,c_p,T_in,L",real=True,positive=True,constant=True)
z = sp.symbols("z",positive=True)
n = sp.Symbol("n",real=True)

firstexpr = 8 * mdot**2 * R / (sp.pi**2 * D**5) * (alpha + beta * (sp.pi * D * mu0 / (4 * mdot))**xi * (q * z / (mdot * cp) + Tin)**(n * xi)) * (q * z / (mdot * cp) + Tin)

res1 = sp.integrate(firstexpr,(z,L),conds="none")

这将是永远的:我必须在PC上等待10分钟后停止计算,而没有得到答案。

如果我重写表达式以使它只包含最小数量的常量符号,然后对其进行积分,最后替换原始符号,则情况将大大改善:

a = 8 * mdot**2 * R / (sp.pi**2 * D**5)
b = beta * (sp.pi * D * mu0 / (4 * mdot))**xi
c = q / (mdot * cp)
_a,_b,_c = sp.symbols("a,b,c",constant=True)

secondexpr = _a * (alpha + _b * (_c * z + Tin)**(n * xi)) * (_c * z + Tin)

res2 = sp.integrate(secondexpr,conds="none")
sp.simplify(res2.subs([(_a,a),(_b,b),(_c,c)]))

为什么在第一种情况下sympy需要花费很长时间?我在创建符号时是否错过了某些假设?

klmMMM 回答:Sympy-当表达式包含许多符号时,集成速度很慢

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2920322.html

大家都在问