次のコードエラーでsympy積分限界エラー:例外TypeError:単項の悪いオペランドタイプ - : 'タプル'
from sympy import *
r = Symbol('r', real=True, positive=True)
a = Symbol('a', real=True, positive=True)
Integral(1/r**2,(r,oo,a)).doit()
結果
TypeError: bad operand type for unary -: 'tuple'
-Integral(1/r**2,(r,a,oo)).doit()
一方、上記の積分の等価定式化であるが、正しい結果を与える:-1/a
。
さらに、a
r = Symbol('r', real=True, positive=True)
a = Symbol('a')
Integral(1/r**2,(r,oo,a)).doit()
のドメインのための制限を低下させることにも正しい結果を与えます。
sympy
のバグで、これは間違っていますか?
編集: Infinityから正の値に統合することは完全に有効です。 Mathematicaは@BenTに関する私のコメントに書いたとおり、仕事を正しく行う。
エラーは発生しましたが、非常にあいまいです。 –
私は同意する、非常に直感的ではない。 – BenT
@BenT:無限大から正の数に統合するのはなぜ理にかなっていないのですか?なぜこれが問題であるべきかわからない。 '-Integral(1/r ** 2、(r、a、oo))'はうまく動作し、Integral(1/r ** 2、(r、oo、a))と同等でなければなりません。さらに、Mathematica(Integrate [1/r^2、{r、Infinity、a}、 前提 - > {Element [a、Reals]、a> 0}] ')を使って積分を解くと、正しい結果。 – Finn