第二类不当积分
Improper integral of the second kind
我正在尝试使用 sympy 计算第二类不正确积分的精确值:
from sympy import integrate, log
from sympy.abc import x
print (integrate(log(x) * log(x) /(1+x*x), (x,0,1)))
这段代码return错误很多。可能我需要使用另一种方法吗?我试过 Integral
但一无所获。
我想根据 Dwight 表(863.61 和 863.10)计算这些积分:
我可能会用数值方法计算它们,但我更想用 sympy 得到精确的解。是否有可能通过 sympy 获得第二类不正确积分的精确解?或者这些积分对于 sympy 来说太复杂了?
浮点数是符号计算的毒药,尤其是像符号积分这样复杂的计算。不要把它们放在符号积分中。
另外,这样声明正变量会有很大帮助。
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 没有成功找到它的价值。好像有点力不从心了
第二个 returns polylog(2, -exp_polar(I*pi))
。复数 I*pi
和 exp_polar
的存在意味着 SymPy 正在做一些复杂的平面工作,其中围绕原点的缠绕量可能很重要。函数 exp_polar
与 exp
的不同之处在于 exp_polar(2*I*pi)
不像 exp(2*I*pi)
那样化简为 1:它保留了转 360 度和根本不转的区别。
但是如果我们忽略所有这些并在结果中放入 exp
,
polylog(2, -exp(I*pi))
计算为 pi**2 / 6
,第二个积分的正确值。
我正在尝试使用 sympy 计算第二类不正确积分的精确值:
from sympy import integrate, log
from sympy.abc import x
print (integrate(log(x) * log(x) /(1+x*x), (x,0,1)))
这段代码return错误很多。可能我需要使用另一种方法吗?我试过 Integral
但一无所获。
我想根据 Dwight 表(863.61 和 863.10)计算这些积分:
我可能会用数值方法计算它们,但我更想用 sympy 得到精确的解。是否有可能通过 sympy 获得第二类不正确积分的精确解?或者这些积分对于 sympy 来说太复杂了?
浮点数是符号计算的毒药,尤其是像符号积分这样复杂的计算。不要把它们放在符号积分中。
另外,这样声明正变量会有很大帮助。
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 没有成功找到它的价值。好像有点力不从心了
第二个 returns polylog(2, -exp_polar(I*pi))
。复数 I*pi
和 exp_polar
的存在意味着 SymPy 正在做一些复杂的平面工作,其中围绕原点的缠绕量可能很重要。函数 exp_polar
与 exp
的不同之处在于 exp_polar(2*I*pi)
不像 exp(2*I*pi)
那样化简为 1:它保留了转 360 度和根本不转的区别。
但是如果我们忽略所有这些并在结果中放入 exp
,
polylog(2, -exp(I*pi))
计算为 pi**2 / 6
,第二个积分的正确值。