用sympy更有效地整合表达

时间:2017-02-05 05:33:00

标签: integration sympy

我正在尝试与Sympy进行以下集成:

import sympy as sp
sp.var('a e nu lamb omeg')
r = a*(1.-e**2)/(1. + e*sp.cos(lamb-omeg))
I = sp.integrate(r**2, lamb)

接下来发生的事情是处理器在几分钟内保持100%,我的笔记本电脑变热了,最后我厌倦了等待和放弃。

令人惊讶的是,当我与Maxima进行相同的集成时,我几乎可以立即获得结果。唯一的区别是Maxima问我e**2-1是正面还是负面。

如何使用Sympy获得相同的功能?为什么这不会自动发生?

1 个答案:

答案 0 :(得分:0)

显然,可以通过对常数进行假设来完成,尽管这与Maxima使用的假设不同:

import sympy as sp
sp.var('a e nu lamb omeg', positive=True, real=True)
r = a*(1.-e**2)/(1. + e*sp.cos(lamb-omeg))
I = sp.integrate(r**2, lamb)