MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Integrate and Boole problems

  • To: mathgroup at smc.vnet.net
  • Subject: [mg58446] Re: Integrate and Boole problems
  • From: Maxim <ab_def at prontomail.com>
  • Date: Sat, 2 Jul 2005 04:07:09 -0400 (EDT)
  • References: <da0bq0$fm8$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

On Thu, 30 Jun 2005 08:51:12 +0000 (UTC), Chris <topher at csh.rit.edu> wrote:

> I'm using Mathematica 5.1 and I'm getting some inconsistent results
> when integrating the Boole function. For example:
>
> Integrate[Boole[((x - 1)^2 + y^2 + z^2 - 3^2)*((x + 1)^2 + y^2 + z^2 -
> 3^2) = 0], {x, -Infinity, Infinity}, {y, -Infinity, Infinity}, {z,
> -Infinity, Infinity}];
>
>
> N[%]
>
> 50.2654821239234 + 3.829918318813164*^-9*I
>
>
> NIntegrate[Boole[((x - 1)^2 + y^2 + z^2 - 3^2)*((x + 1)^2 + y^2 + z^2
> -3^2) = 0], {x, -Infinity, Infinity}, {y, -Infinity, Infinity}, {z,
> -Infinity, Infinity}]
>
> 108.90854533339399 - 2.749275252793041*^-29*I
>
> Am I doing something wrong or is this just a limit of the Integrate
> function?
>

I assume that Boole[... = 0] is actually Boole[... <= 0]. In version 5.1.0  
Integrate just returns the outer integral (with respect to x) unevaluated.  
NIntegrate apparently uses the method SymbolicPiecewiseSubdivision and it  
works fine. On the other hand, Mathematica often fails on symbolic  
integration of the functions of the type Sqrt[r^2 - x^2 - y^2 - z^2]. So  
if there is an error, most likely it is not related to Boole or other  
piecewise functions.

Here it is easy to find the exact value of the integral. We're just  
looking for the volume of the union of two spheres with two spherical  
segments removed. The volume of a spherical segment with radius R and  
height h is

In[1]:=
Integrate[r^2*Sin[theta],
   {r, R - h, R}, {theta, 0, ArcCos[(R - h)/r]}, {phi, 0, 2*Pi}]

Out[1]= (-(1/3))*h^2*Pi*(h - 3*R)

And substituting the numerical values, we obtain

In[2]:= 2*(4*Pi*R^3/3 -2*%) /. {R -> 3, h -> 2}

Out[2]= (104*Pi)/3

Owing to the piecewise handling routines, NIntegrate gave a good  
approximation.

Maxim Rytin
m.r at inbox.ru


  • Prev by Date: Re: a question about the UnitStep function
  • Next by Date: Re: ListInterpolation
  • Previous by thread: Re: Integrate and Boole problems
  • Next by thread: Re: Integrate and Boole problems