[Maxima] double integrals seem to give different answers
drdieterkaiser at web.de
Sat Nov 21 18:57:59 CST 2009
Am Freitag, den 20.11.2009, 21:36 -0500 schrieb G. Jay Kerns:
> Dear Maxima list,
> f(x,y,z) := exp((x^2 + y^2 +z^2)^(3/2));
> x: rho * sin(phi) * cos(theta);
> y: rho * sin(phi) * sin(theta);
> z: rho * cos(phi);
> J: rho^2 * sin(phi);
> Then the following double integrals give different answers... why?
> integrate(integrate(f(x,y,z) * J, rho,0,1), theta,0,2*%pi);
> integrate(integrate(trigsimp(f(x,y,z)) * J, rho,0,1), theta,0,2*%pi);
> (The second one is the correct answer). By the way, the inner
> integrals give the same answer although the first one without trigsimp
> is long and complicated.
> It would seem the moral of the story is, "Do as much simplification as
> possible before calling integrate." Is this true, or is there a more
> general principle that I am missing?
> I would appreciate any insight.
I think you have found a further example for a bug we already know, see
Bug Id: 2880797 "bad answer in integrate(sqrt(sin(t)^2+cos(t)^2),t,0,2*%
The routine atan-poles in sin.lisp does not count the multiplicities of
the poles correctly. (Another bug concerning the boundaries of the
integration interval has been corrected.)
A trace of the code shows, that for the second example atan-poles is not
called and the result is correct.
A further hint that the routine atan-poles is the origin of the problem
is, that with triginverses:all, you get a correct result too. For this
case atan(tan(x)) expressions are simplified and the routine atan-poles
is no longer called.
A possible correction might be to do the simplification of atan(tan(x))
--> x in the routine INTSUBS to avoid a call of ATAN-POLES.
More information about the Maxima