2017-02-05 11 views
0

で、より効果的に表現を統合:私は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と同じ統合を行ったとき、私はほとんど瞬時に結果を得ます。唯一の違いは、e**2-1が肯定的であるか否定的であるかをMaximaが私に尋ねることです。

Sympyで同じ機能を使用するにはどうすればよいですか?それはなぜ自動的に起こっていないのですか?

答えて

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) 
関連する問題