5.47.0
(%i8) f(x) := x*exp(atan(x)) / (1+x^2)^(3/2);
x exp(atan(x))
(%o8) f(x) := --------------
2 3/2
(1 + x )
(%i9) integrate(f(x),x);
/ atan(x)
[ x %e
(%o9) I ----------- dx
] 2 3/2
/ (x + 1)
Apparently
theta := atan(x), belongs to (-%pi/2, %pi/2)
=>
integrate( f(x), x) == integrate( sin(theta)*exp(theta) , theta )
But maxima fails to solve it.
To find an antiderivative, Maxima's integration code tries various methods. When no method is successful, Maxima returns a nonform. Unfortunately, Maxima's methods are not exhaustive, so it's not guaranteed that if an antiderivative can be expressed in a particular form that Maxima will find it.
I cannot find any evidence that Maxima is unable to find this antiderivative due to a bug--I think it is due to an algorithmic weakness. Possibly this report should be filed as a feature request, not a bug.
We are, of course, interested in extending the usefulness of Maxima, so please consider filing a feature request.
I agree with you so much.
Sorry to bother you guys.
Ticket moved from /p/maxima/bugs/4309/
Just for fun, I tried to see if I could get maxima to do this. The substitution
t=atan(x)
works well:If we assume
cos(t)>=0
, we're left withintegrate(exp(t)*sin(t),t)
:And differentiating this result produces the original integrand.
I don't know anything about the Risch algorithm, but isn't the integrand an elementary function? Or maybe
exp(atan(x))
doesn't count?FWIW, this is quite a bit different from what Wolfram Alpha returns for the integral.