Re: Weirdness from double integrals?
- To: mathgroup at smc.vnet.net
- Subject: [mg95741] Re: [mg95708] Weirdness from double integrals?
- From: danl at wolfram.com
- Date: Sun, 25 Jan 2009 21:51:13 -0500 (EST)
- References: <200901251153.GAA00724@smc.vnet.net>
> I'm new to Mathematica 7 (fiddling with a trial version) and I've bumped > into something that's confusing me. > > Just to make sure I understand Mathematica, I'm playing with finding the > gravitational field around extended objects using integration. So far > I've had no problem (e.g., lines, rings, planes, even Newton's shell > theorem popped out easily enough), but I'm getting something that's > confusing about double definite integration the Integrate that's leaving > me puzzled. Here's the (cleaned-up) transcript from math: > > In[1]:= p = {0, 0, h} > > Out[1]= {0, 0, h} > > In[2]:= s = {x, y, 0} > > Out[2]= {x, y, 0} > > In[3]:= q = p - s > > Out[3]= {-x, -y, h} > > In[4]:= dm = rho (* dx dy *) > > Out[4]= rho > > In[5]:= integrand = -G * dm * q/(q.q)^(3/2) > > G rho x G rho y G h rho > Out[5]= {-----------------, -----------------, -(-----------------)} > 2 2 2 3/2 2 2 2 3/2 2 2 2 3/2 > (h + x + y ) (h + x + y ) (h + x + y ) > > In[7]:= Integrate[integrand, {x, -x0, x0}, {y, -y0, y0}] > > Out[7]= {0, 0, 0} > > In[9]:= Integrate[Integrate[integrand, {x, -x0, x0}, Assumptions -> x0 > > 0 && h > 0], {y, -y0, y0}, Assumptions -> x0 > 0 && y0 > 0 && h > 0] > > x0 y0 > Out[9]= {0, 0, -2 G rho (Pi - 2 ArcCot[----------------------])} > 2 2 2 > h Sqrt[h + x0 + y0 ] > > It would seem to me, less assumptions, that Out[7] and Out[9] should be > the same, but Out[7] is clearly wrong (read: "not what I expected" :-) > -- while the x and y components of the integration are zero by symmetry, > the z component clearly should not be. Out[9] looks correct, but I > thought these would have been the same computation; converting In[7] to > traditional form in the front end appears to confirm my understanding > that it does indeed represent a double definite integral over the > integrand. > > So what is there about doing double definite integrals with Integrate > that I'm missing? Why aren't these computations the same? > > Thanks. > > -- > Erik Max Francis && max at alcyone.com && http://www.alcyone.com/max/ > San Jose, CA, USA && 37 18 N 121 57 W && AIM, Y!M erikmaxfrancis > He who can, does. He who cannot, teaches. > -- George Bernard Shaw > There are many subtleties to this. First, if you do an explicit multiple integral (that is, using ont Integrate rather than iterating several of them), then the GenerateConditions option is only used for the last integration. This is documented but certainly constitutes "fine print". For the GenerateConditions->False behavior of prior integrals, it is common that they might give a spurious zero due to splitting ranges and making conflicting hidden assumptions on parameters that cause results to be not everywhere applicable. One possible way around might be to set GenerateConditions->True so that it will be in effect for all levels of the integration. Integrate[integrand[[3]], {x, -x0, x0}, {y, -y0, y0}, GenerateConditions -> True] Problem now is Mathematica 7 claims this diverges. I need to look into this more closely, but offhand I have to say this looks like a bug in convergence testing. As you have found, best is to give applicable assumptions. This variant gives a useful result. Integrate[integrand[[3]], {x, -x0, x0}, {y, -y0, y0}, Assumptions -> {x0 > 0, y0 > 0, h > 0] If instead I only specify Element[h, Reals] I still get what is perhaps a valid result, but longer and expressed in terms of complex logs; I think imaginary parts will cancel, for all parameters real. Daniel Lichtblau Wolfram Research
- References:
- Weirdness from double integrals?
- From: Erik Max Francis <max@alcyone.com>
- Weirdness from double integrals?