第二种不正确的积分

时间:2017-12-22 08:43:50

标签: python sympy integral

我试图用sympy计算第二类不正确积分的精确值:

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

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

这段代码返回了很多错误。可能我需要使用另一种方法吗?我试过Integral并没有得到任何结果。

我想从Dwight表(863.61和863.10)计算这些积分: enter image description here

我可以用数值方法计算它们,但我希望得到精确的解决方案。是否可以通过同情来获得第二类不正确积分的精确解?或者这些积分对于同情来说太复杂了?

1 个答案:

答案 0 :(得分: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没有成功找到它的价值。它似乎超出了它的能力。

对于第二个,它返回polylog(2, -exp_polar(I*pi))。复数I*piexp_polar的存在意味着SymPy正在进行一些复杂的平面工作,其中原点周围的缠绕量可能很重要。函数exp_polarexp的不同之处在于exp_polar(2*I*pi)不会像exp(2*I*pi)那样简化为1:它保持转向360度而不转弯的区别。

但如果我们忽略所有这些并将exp放在结果中,

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

评估为pi**2 / 6,第二个积分的正确值。