【问题标题】:Integrate expression more effectively with sympy使用 sympy 更有效地集成表达式
【发布时间】:2017-02-09 23:59:14
【问题描述】:

我正在尝试与 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 获得相同的功能?为什么这不会自动发生?

【问题讨论】:

    标签: integration sympy


    【解决方案1】:

    显然,可以通过对常数进行假设来完成,尽管这与 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      相关资源
      最近更新 更多