首页 > 解决方案 > SymPy 中的集成引发“无属性 '_eval_power'”错误

问题描述

为什么积分_0^1 log(x)/(x^2 - 1) dx 在 SymPy 中不起作用?

AttributeError:“Not”对象没有属性“_eval_power”

http://www.ms.u-tokyo.ac.jp/kyoumu/a20170524.pdf#page=4

(好的)Wolfram|Alpha 示例:

https://www.wolframalpha.com/input/?i= ∫%5B0,1%5D+log(x)%2F(x%5E2-1)+dx

积分_0^1 log(x)/(x^2 - 1) dx = π^2/8?

1.2337

(??) 同情

from sympy import *
# var("x")
x = symbols('x', positive=True)
f=log(x)/(x^2-1)
print(integrate(f,(x, 0, 1)))
print(float(integrate(f,(x, 0, 1))))
# AttributeError: 'Not' object has no attribute '_eval_power'

标签: pythonsympy

解决方案


在 python 中,电源符号不是^but **

用这个:

from sympy import *
# var("x")
x = symbols('x', positive=True)
f=log(x)/(x**2-1)
print(integrate(f,(x, 0, 1)))

结果:

Integral(log(x)/((x - 1)*(x + 1)), (x, 0, 1))

推荐阅读