Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

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

Search the Archive

Re: Boolean Integral

  • To: mathgroup at smc.vnet.net
  • Subject: [mg62388] Re: Boolean Integral
  • From: "Valeri Astanoff" <astanoff at yahoo.fr>
  • Date: Wed, 23 Nov 2005 01:12:05 -0500 (EST)
  • References: <dlupfj$nb2$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

This is the way I would do it.
(not very clever, but it works):

In[1]:=
chi[func_,y1_,y2_]:=Boole[y1<func<y2];
foo[x_]:=-BesselJ[1,x]
y1=.12; y2=.16;
x1=0; x2=20;

r1=Table[FindRoot[foo[x] == y1,{x,u}],{u,x1,x2,(x2-x1)/100}];
r2=Table[FindRoot[foo[x] == y2,{x,u}],{u,x1,x2,(x2-x1)/100}];

s1=Select[Union[r1,SameTest -> (Abs[(x/.#2)-(x/.#1)]<10^-5&)],
    x1<(x/.#)<x2&];
s2=Select[Union[r2,SameTest -> (Abs[(x/.#2)-(x/.#1)]<10^-5&)],
    x1<(x/.#)<x2&] ;

xx=Union[{x1},x /. s1, x /. s2,{x2}]//Sort;
Sum[ NIntegrate[chi[foo[x],y1,y2],{x,xx[[i]],xx[[i+1]]}],
    {i,1,Length[xx]-1}]//Timing

Out[9]={0.485 Second, 1.33977}


hth

v.a.


  • Prev by Date: How does NIntegrate suppress messages?
  • Next by Date: Re: Confusing results with N[expr]?
  • Previous by thread: Re: Boolean Integral
  • Next by thread: Re: Boolean Integral