#1011 integrate(t^2*log(t)/((t^2-1)*(t^4+1)), t, 0, 1) wrong?

closed
nobody
5
2006-11-05
2006-10-23
Anonymous
No

Symbolic integration seems to return an incorrect result:

(%i1) integrate(t^2*log(t)/((t^2-1)*(t^4+1)), t, 0, 1);
(sqrt(2) + 1) %pi
(%o1) ------------------
16 sqrt(2)
(%i2) float(%);
(%o2) 1.053029287545515
(%i3) romberg(t^2*log(t)/((t^2-1)*(t^4+1)), t,
0.0000001, 0.9999999);
(%o3) 0.1806718095951
(%i4) float(%pi^2/(16*(2+sqrt(2))));
(%o4) 0.18067126259065

Discussion

• Raymond Toy - 2006-10-23

Logged In: YES
user_id=28849

Maxima uses the substitution t = exp(-y) to change the
integral from 0 to 1 to 0 to inf. Then it uses its routine
to handle this infinite integral by converting it to an
integral from minf to inf, because the integrand is even.
Finally, it uses rectzto%pi2 to integrate this final
integrand.

rectzto%pi2 needs to find the poles of the denominator. I'm
guessing it's getting that wrong.

• Raymond Toy - 2006-11-03

Logged In: YES
user_id=28849

The issue appears to be in log-imag-0-2%pi. Some of the
poles are of the form (-1)^(1/4) or sqrt(-%i). The call to
simplify %plog(pole) doesn't actually simplify and the noun
form is returned (I think). If we replace

(defun log-imag-0-2%pi (x)
(let ((plog (simplify ((%plog) ,x))))

with

(defun log-imag-0-2%pi (x)
(let ((plog (simplify (\$rectform `((%plog) ,x)))))

maxima returns -(sqrt(2)-2)*%pi^2/32 which is
.1806712625906549, which corresponds pretty well with the
numerical result from romberg and quad_qags.

The test suite runs fine with this change.

I think the real problem is in the simplifier for plog, but
I'm not too motivated in fixing that.

• Raymond Toy - 2006-11-05

Logged In: YES
user_id=28849

Fixed in defint.lisp as suggested.

• Raymond Toy - 2006-11-05
• status: open --> closed