Запись f = log(x)/(x**2-1)
, потому что в Python полномочия обозначены **
(а ^
- XOR). Вот почему ошибка выдается. Тем не менее, SymPy все еще не может интегрировать эту функцию: интеграл возвращает неоцененный результат. Эти неэлементарные интегралы типа полилога доставляют много проблем SymPy.
Если у вас все в порядке с ответом с плавающей запятой, используйте численное интегрирование:
print(Integral(f,(x, 0, 1)).evalf())
, который возвращает 1.23370055013617
...
С такими интегралами стоит попробовать nsimplify
, который находит символический ответ, который соответствует результату числовой интеграции.
>>> nsimplify(Integral(f, (x, 0, 1)), [pi, E])
pi**2/8
Здесь список [pi, E]
включает две самые известные математические константы, которые, вероятно, появляются в интегралах. (Другая часто встречающаяся константа EulerGamma
).