Integration in SymPy raises “no attribute '_eval_power'” error
Why does integral_0^1 log(x)/(x^2 - 1) dx not work in SymPy?
AttributeError: 'Not' object has no attribute '_eval_power'
http://www.ms.u-tokyo.ac.jp/kyoumu/a20170524.pdf#page=4
(OK)
Wolfram|Alpha Examples:
https://www.wolframalpha.com/input/?i=∫%5B0,1%5D+log(x)%2F(x%5E2-1)+dx
integral_0^1 log(x)/(x^2 - 1) dx = π^2/8?
1.2337
(??)
sympy
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'
python sympy
add a comment |
Why does integral_0^1 log(x)/(x^2 - 1) dx not work in SymPy?
AttributeError: 'Not' object has no attribute '_eval_power'
http://www.ms.u-tokyo.ac.jp/kyoumu/a20170524.pdf#page=4
(OK)
Wolfram|Alpha Examples:
https://www.wolframalpha.com/input/?i=∫%5B0,1%5D+log(x)%2F(x%5E2-1)+dx
integral_0^1 log(x)/(x^2 - 1) dx = π^2/8?
1.2337
(??)
sympy
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'
python sympy
^
is not the power operator in Python. Have you triedx**2
?
– user8408080
Nov 12 '18 at 12:52
add a comment |
Why does integral_0^1 log(x)/(x^2 - 1) dx not work in SymPy?
AttributeError: 'Not' object has no attribute '_eval_power'
http://www.ms.u-tokyo.ac.jp/kyoumu/a20170524.pdf#page=4
(OK)
Wolfram|Alpha Examples:
https://www.wolframalpha.com/input/?i=∫%5B0,1%5D+log(x)%2F(x%5E2-1)+dx
integral_0^1 log(x)/(x^2 - 1) dx = π^2/8?
1.2337
(??)
sympy
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'
python sympy
Why does integral_0^1 log(x)/(x^2 - 1) dx not work in SymPy?
AttributeError: 'Not' object has no attribute '_eval_power'
http://www.ms.u-tokyo.ac.jp/kyoumu/a20170524.pdf#page=4
(OK)
Wolfram|Alpha Examples:
https://www.wolframalpha.com/input/?i=∫%5B0,1%5D+log(x)%2F(x%5E2-1)+dx
integral_0^1 log(x)/(x^2 - 1) dx = π^2/8?
1.2337
(??)
sympy
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'
python sympy
python sympy
edited Nov 12 '18 at 12:47
user6655984
asked Nov 12 '18 at 12:01
mrrclb48zmrrclb48z
546
546
^
is not the power operator in Python. Have you triedx**2
?
– user8408080
Nov 12 '18 at 12:52
add a comment |
^
is not the power operator in Python. Have you triedx**2
?
– user8408080
Nov 12 '18 at 12:52
^
is not the power operator in Python. Have you tried x**2
?– user8408080
Nov 12 '18 at 12:52
^
is not the power operator in Python. Have you tried x**2
?– user8408080
Nov 12 '18 at 12:52
add a comment |
2 Answers
2
active
oldest
votes
Write f = log(x)/(x**2-1)
because in Python, powers are denoted by **
(and ^
is XOR). This is why the error is thrown. However, SymPy is still unable to integrate that function: the integral returns unevaluated. These polylog-type nonelementary integrals give a lot of trouble to SymPy.
If you are okay with a floating point answer, then use numerical integration:
print(Integral(f,(x, 0, 1)).evalf())
which returns 1.23370055013617
...
A thing worth trying with such integrals is nsimplify
, which finds a symbolic answer than matches the outcome of numeric integration.
>>> nsimplify(Integral(f, (x, 0, 1)), [pi, E])
pi**2/8
Here the list [pi, E]
includes the two most famous math constants, which are likely to appear in integrals. (Another constant that shows up often is EulerGamma
).
add a comment |
In python, the power symbol is not ^
but **
.
Use this:
from sympy import *
# var("x")
x = symbols('x', positive=True)
f=log(x)/(x**2-1)
print(integrate(f,(x, 0, 1)))
Results:
Integral(log(x)/((x - 1)*(x + 1)), (x, 0, 1))
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53261761%2fintegration-in-sympy-raises-no-attribute-eval-power-error%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Write f = log(x)/(x**2-1)
because in Python, powers are denoted by **
(and ^
is XOR). This is why the error is thrown. However, SymPy is still unable to integrate that function: the integral returns unevaluated. These polylog-type nonelementary integrals give a lot of trouble to SymPy.
If you are okay with a floating point answer, then use numerical integration:
print(Integral(f,(x, 0, 1)).evalf())
which returns 1.23370055013617
...
A thing worth trying with such integrals is nsimplify
, which finds a symbolic answer than matches the outcome of numeric integration.
>>> nsimplify(Integral(f, (x, 0, 1)), [pi, E])
pi**2/8
Here the list [pi, E]
includes the two most famous math constants, which are likely to appear in integrals. (Another constant that shows up often is EulerGamma
).
add a comment |
Write f = log(x)/(x**2-1)
because in Python, powers are denoted by **
(and ^
is XOR). This is why the error is thrown. However, SymPy is still unable to integrate that function: the integral returns unevaluated. These polylog-type nonelementary integrals give a lot of trouble to SymPy.
If you are okay with a floating point answer, then use numerical integration:
print(Integral(f,(x, 0, 1)).evalf())
which returns 1.23370055013617
...
A thing worth trying with such integrals is nsimplify
, which finds a symbolic answer than matches the outcome of numeric integration.
>>> nsimplify(Integral(f, (x, 0, 1)), [pi, E])
pi**2/8
Here the list [pi, E]
includes the two most famous math constants, which are likely to appear in integrals. (Another constant that shows up often is EulerGamma
).
add a comment |
Write f = log(x)/(x**2-1)
because in Python, powers are denoted by **
(and ^
is XOR). This is why the error is thrown. However, SymPy is still unable to integrate that function: the integral returns unevaluated. These polylog-type nonelementary integrals give a lot of trouble to SymPy.
If you are okay with a floating point answer, then use numerical integration:
print(Integral(f,(x, 0, 1)).evalf())
which returns 1.23370055013617
...
A thing worth trying with such integrals is nsimplify
, which finds a symbolic answer than matches the outcome of numeric integration.
>>> nsimplify(Integral(f, (x, 0, 1)), [pi, E])
pi**2/8
Here the list [pi, E]
includes the two most famous math constants, which are likely to appear in integrals. (Another constant that shows up often is EulerGamma
).
Write f = log(x)/(x**2-1)
because in Python, powers are denoted by **
(and ^
is XOR). This is why the error is thrown. However, SymPy is still unable to integrate that function: the integral returns unevaluated. These polylog-type nonelementary integrals give a lot of trouble to SymPy.
If you are okay with a floating point answer, then use numerical integration:
print(Integral(f,(x, 0, 1)).evalf())
which returns 1.23370055013617
...
A thing worth trying with such integrals is nsimplify
, which finds a symbolic answer than matches the outcome of numeric integration.
>>> nsimplify(Integral(f, (x, 0, 1)), [pi, E])
pi**2/8
Here the list [pi, E]
includes the two most famous math constants, which are likely to appear in integrals. (Another constant that shows up often is EulerGamma
).
edited Nov 13 '18 at 3:31
answered Nov 12 '18 at 12:54
user6655984
add a comment |
add a comment |
In python, the power symbol is not ^
but **
.
Use this:
from sympy import *
# var("x")
x = symbols('x', positive=True)
f=log(x)/(x**2-1)
print(integrate(f,(x, 0, 1)))
Results:
Integral(log(x)/((x - 1)*(x + 1)), (x, 0, 1))
add a comment |
In python, the power symbol is not ^
but **
.
Use this:
from sympy import *
# var("x")
x = symbols('x', positive=True)
f=log(x)/(x**2-1)
print(integrate(f,(x, 0, 1)))
Results:
Integral(log(x)/((x - 1)*(x + 1)), (x, 0, 1))
add a comment |
In python, the power symbol is not ^
but **
.
Use this:
from sympy import *
# var("x")
x = symbols('x', positive=True)
f=log(x)/(x**2-1)
print(integrate(f,(x, 0, 1)))
Results:
Integral(log(x)/((x - 1)*(x + 1)), (x, 0, 1))
In python, the power symbol is not ^
but **
.
Use this:
from sympy import *
# var("x")
x = symbols('x', positive=True)
f=log(x)/(x**2-1)
print(integrate(f,(x, 0, 1)))
Results:
Integral(log(x)/((x - 1)*(x + 1)), (x, 0, 1))
answered Nov 12 '18 at 12:53
seraloukseralouk
5,76722339
5,76722339
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53261761%2fintegration-in-sympy-raises-no-attribute-eval-power-error%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
^
is not the power operator in Python. Have you triedx**2
?– user8408080
Nov 12 '18 at 12:52