issues with integrating Boole
- To: mathgroup at smc.vnet.net
- Subject: [mg61861] issues with integrating Boole
- From: Mark Fisher <mark at markfisher.net>
- Date: Wed, 2 Nov 2005 04:09:29 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
I suspect a bug. I'm using 5.2 for Microsoft Windows (June 20, 2005).
In what follows, boole1 and boole2 describe the same region (which can
be confirmed with a contour plot): a triangle with a base of length 4, a
height of length 2, and thus an area of 4. Although Integrate returns 4
for boole1, it returns 4/3 for boole2. NIntegrate (using the default
method) returns answers that agree with Integrate. Nevertheless,
NIntegrate with Method -> MonteCarlo returns the correct result (up to
the numerical error). On the other hand, with Method -> QuasiMonteCarlo,
NIntegrate evaluates boole1 but not boole2.
boole1 = Boole[a+b<1 && b-a<1 && b>-1]
boole2 = Boole[And@@Thread[Abs[x/.Solve[1 - a x - b x^2 == 0, x]]>1]]
Integrate[{boole1, boole2}, {a,-2,2}, {b,-1,1}]
NIntegrate[{boole1, boole2}, {a,-2,2}, {b,-1,1}]
NIntegrate[{boole1, boole2}, {a,-2,2}, {b,-1,1}, Method -> MonteCarlo]
NIntegrate[{boole1, boole2}, {a,-2,2}, {b,-1,1}, Method -> QuasiMonteCarlo]
FYI, there is a reason for using expressions such as boole2. In
time-series analysis, the stationarity of an autoregressive process
depends on the condition and all of the roots of a certain polynomial
lie outside the unit circle. For first- and second-order autoregressive
processes, it is easy to describe the region of stationarity in more
direct ways (such as boole1), but for higher-order processes it becomes
much harder. So I was just trying this out for a simple case.
--Mark