Re: Boolean Integral
- To: mathgroup at smc.vnet.net
- Subject: [mg62447] Re: Boolean Integral
- From: Peter Pein <petsie at dordos.net>
- Date: Thu, 24 Nov 2005 06:33:47 -0500 (EST)
- References: <dlupfj$nb2$1@smc.vnet.net> <dm1ah8$hvk$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
dh schrieb: > Hi Roberto, > If your function does not behave too exotic, an increase of the number > of sample points may help: GaussPoints->n, where n is big enough (see > the manual). > > If your function is slightly pathologic, you may help NIntegrate by > splitting the integral region into pieces, where the function behaves well. > > Plot has an adaptive algorithm to determine the plot points. As a last > resort, you could get the > > Daniel > LOL: "get the Daniel" :-)) I'm pretty sure you had something like In[1]:= f[x_] = Boole[12 < -100*BesselJ[1, x] < 16]; In[2]:= Block[{$DisplayFunction = #1 & }, p = Plot[f[x], {x, 0, 20}, PlotPoints -> 1234]]; In[3]:= Length[p[[1,1,1,1]]] Out[3]= 42732 In[4]:=reduceLine[l_Line] := Module[{ll = l[[1]]}, Scan[Function[{firlas}, ll = Flatten[(Union[{First[#1], Last[#1]}] & ) /@ Split[ll, Equal @@ firlas /@ {##1} & ], 1]], {First, Last}]; Line[ll]] In[5]:= Show[p2 = ReplacePart[p, rlin = reduceLine[p[[1,1,1]]], {1, 1, 1}]] Out[5]= Graphics[] In[6]:= Length @@ rlin Out[6]= 26 In[7]:= -Plus @@ Subtract @@@ Partition[Cases[rlin[[1]], {x_, 1.} :> x], 2] Out[7]= 1.3377339165593574 in mind !? Peter