2017-10-20 4 views
2

Sympy와 wolframalpha는 다른 결과를 산출했습니다. 여기에 명백하게 잘못된 것을 한 적이 있습니까?Sympy와 Wolframalpha는 다른 결과를 나타냅니다.

import sympy as smp 
smp.init_printing() 
In [2]: 

a,R,t = smp.symbols('a,R,t',real=True) 
In [3]: 

f = t**2/(1+t**2/a**2);f 
Out[3]: 

enter image description here

In [4]: 
I=smp.Integral(f,t); I 
Out[4]: 

enter image description here

In [5]: 
I.doit() 
Out[5]: 

2톤는

울프 럼 알파 그러나

준다

enter image description here

+0

sympy가 a^3 tan-1 (x/a) 항을 제거하여 함수를 단순화하는 것처럼 보입니다. 왜 그래도. – BenT

답변

-1

현재 Sympy는 비 한정 적분을 계산할 수 없습니다. 그것은 산출한다

$$\(\int_{x_0}^{x} f(x)dx\)$$ 

documentation에는 세부 사항이 더있다.

볼프람 알파와 호환되는 무료 도구는 sagemath 입니다. online platform에서 워크 시트를 작업하고 클라우드에 저장할 수 있습니다.

+0

멋진 답변입니다. 당신은 원시 라텍스 대신이 그림을 사용할 수 있습니다 : https://i.stack.imgur.com/MyMfT.gif – Uriel

+0

0에서 x까지의 제한이 있더라도, 적분은 생산 된 것이 아닙니다. –

1

이것은 SymPy의 버그입니다. 나는 그것에 대해 issue을 열었습니다. 한편, 해결 방법은 a을 단지 실제가 아닌 긍정적 인 것으로 선언하는 것입니다. a이 제곱되어 있기 때문에 로그인은 중요하지 않지만, 긍정적 인 점을 알고 있으면 SymPy가 복잡한 비행기에서 올바른 분기 절단을하는 데 도움이됩니다.

>>> from sympy import * 
>>> a = symbols('a', positive=True) 
>>> t = symbols('t', real=True) 
>>> integrate(t**2/(1+t**2/a**2), t) 
a**2*(-a*atan(t/a) + t) 

Integral(expr, var).doit()보다 입력하기가 쉽습니다있는, 여기 integrate(expr, var) 사용.

+0

sympy 1.1.1에서 알려진 버그 목록을 찾을 수있는 곳이 있습니까? –

+0

[이슈 추적기] (https://github.com/sympy/sympy/issues)가 될 수 있지만 버전별로 구분되어 있지 않습니다. – FTP

관련 문제