MathGroup Archive 2005

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

Search the Archive

Re: issues with integrating Boole

  • To: mathgroup at smc.vnet.net
  • Subject: [mg61887] Re: issues with integrating Boole
  • From: "antononcube" <antononcube at gmail.com>
  • Date: Thu, 3 Nov 2005 04:59:00 -0500 (EST)
  • References: <dka05c$6us$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

A note on why QuasiMonteCarlo fails to evaluate the bool2 integral.

When Method option is given the value MonteCarlo or QuasiMonteCarlo,
then the symbolic preprocessing is skipped. So the integration will be
in the region over the entire region {a, -2, 2}, {b, -1, 1}, which is
symmetric over 0 along both axises.

The ordinate of the first point in the low discrepancy (Hammersley)
sequence used in QuasiMonteCarlo is 0. The integration stops since b is
in the denominator in boole2. (NIntegrate should give a message, but it
doesn't in this case).

We can do two things:

1. Perturb the integration boundaries

In[40]:=
NIntegrate[boole2, {a, -2, 2}, {b, -1.000001, 1}, Method ->
QuasiMonteCarlo]

Out[40]=
3.99961

2. Use QuasiMonteCarlo together with the method
SymbolicPiecewiseSubdivision (which gives wrong result in this case)

In[33]:=
NIntegrate[boole2, {a, -2, 2}, {b, -1, 1},
  Method -> {SymbolicPiecewiseSubdivision, Method -> QuasiMonteCarlo}]

Out[33]=
1.33333

If Method->MultiDimensional is used, the sampling point {0,0} of the
multidimensional rule makes the integration stop as with
Method->QuasiMonteCarlo (this time a message is given though):

In[78]:=
NIntegrate[boole2, {a, -2, 2}, {b, -1, 1}, Method -> MultiDimensional]

NIntegrate::inum:
                                  2
                       -a + Sqrt[a  + 4 b]
                   Abs[-------------------]
                                b                  Abs[<<1>>]
   Integrand Boole[------------------------ > 1 && ---------- > 1]
                              2                        2
     is not numerical at {a, b} = {0., 0.}.

Out[78]=
NIntegrate[boole2,{a,-2,2},{b,-1,1},Method->MultiDimensional]

If Method->MultiDimensional is used with perturbed boundaries we get an
answer close to 4 for bool2:

In[63]:=
NIntegrate[boole2, {a, -2, 2}, {b, -1.000001, 1}, Method ->
MultiDimensional]

NIntegrate::slwcon:Numerical integration converging too slowly; suspect
one of the following: singularity, value of the integration being 0,
oscillatory integrand, or insufficient WorkingPrecision. If your
integrand is oscillatory try using the option Method->Oscillatory in
NIntegrate.

NIntegrate::ncvb:
   NIntegrate failed to converge to prescribed accuracy after 13
     recursive bisections in a near {a, b} = {0.048584, 0.951501}.

Out[63]=4.


  • Prev by Date: Re: Running the kernel as a daemon?
  • Next by Date: Re: statistics questions
  • Previous by thread: issues with integrating Boole
  • Next by thread: Re: issues with integrating Boole