2017-12-22 10 views
1

不適切不可欠

from sympy import integrate, log 
from sympy.abc import x 

print (integrate(log(x) * log(x) /(1+x*x), (x,0,1))) 

このコードは、多くのミスを返します。別のアプローチを使用する必要がありますか?私はIntegralと試して何も持っていない。

私はドワイト・テーブル(863.61と863.10)からこれらの積分を計算したいとD」: enter image description here

私は数値法でそれらを計算してもよいのではなく、私はsympyとの厳密解を取得したいのですが。 sympyで第2種の不適切な積分の正確な解を得ることは可能ですか?または、これらの積分はsympyのために複雑すぎますか?

答えて

2

浮動小数点数は、特に浮動小数点数の積分と同じくらい複雑な記号演算で有害です。それらを象徴的な積分に入れないでください。

また、陽性変数を宣言することは大きな助けになります。

x = symbols('x', positive=True) 

int1 = integrate(log(x)**2/(1 + x**2), (x, 0, 1)) 
int2 = integrate(log(1/x)/(1 - x), (x, 0, 1)) 

今エラーなし、しかしint1だけである元の積分非評価しました。 SymPyはその価値を見つけることに成功しなかった。それはその能力を超えているようです。

もう1つはpolylog(2, -exp_polar(I*pi))です。複素数I*piexp_polarが存在するということは、SymPyが、原点周りの巻線量が重要ないくつかの複雑な平面作業を行っていたことを意味します。 exp_polarは、とは異なり、exp_polar(2*I*pi)exp(2*I*pi)のように1に単純化されません。360度回転しても全く回転しないのは区別されます。

しかし、我々はすべてのことを無視した結果でexpを置けば、

polylog(2, -exp(I*pi)) 

は、pi**2/6に第2の積分の正しい値を評価します。

+0

回答ありがとうございます – Serenity