MathGroup Archive 2003

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

Search the Archive

Re: Integration of BesselJ[1,z] and BesselJ[0,z]

  • To: mathgroup at smc.vnet.net
  • Subject: [mg41830] Re: [mg41779] Integration of BesselJ[1,z] and BesselJ[0,z]
  • From: Bobby Treat <drmajorbob-MathGroup3528 at mailblocks.com>
  • Date: Fri, 6 Jun 2003 09:51:03 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

The main reason to use ListPlot is that Plot will reduce things to 
machine precision for speed, and that causes the problem you're seeing. 
  But you have done that anyway, by using a machine precision increment 
(0.1), and ListPlot also reduces precision, unless you explicitly have 
set the precision of your numbers.

In this plot I have focused in on the problem interval (from your 
original plot), used an infinite-precision iterator, and sampled the 
function more closely.

f[ts_] = Integrate[BesselJ[0, t0], {t0, 0, ts}];
Table[{ts, f[ts]}, {ts, 27, 44, 1/200}];
ListPlot[%, PlotRange -> All, PlotJoined -> True]

But no joy!!

In this one, I have cranked up the precision of the integral, before 
giving it to ListPlot.  Try various values of p, to see the effect.

p = 30;
f[ts_] = N[Integrate[BesselJ[0, t0], {t0, 0, ts}], p];
Table[{ts, f[ts]}, {ts, 27, 44, 1/200}];
ListPlot[%, PlotRange -> All, PlotJoined -> True]

Nice and smooth!

But using Plot loses that extra precision:

p=50;
f[ts_] = N[Integrate[BesselJ[0, t0], {t0, 0, ts}], p];
Plot[f[t], {t, 27, 44}, PlotPoints -> 200, PlotRange -> All];

Ugly again!  The same thing happens if we use ListPlot and a machine 
precision iterator:

p = 30;
f[ts_] = N[Integrate[BesselJ[0, t0], {t0, 0, ts}], p];
Table[{ts, f[ts]}, {ts, 27, 44, 1/200.}];
ListPlot[%, PlotRange -> All, PlotJoined -> True]

Bobby

-----Original Message-----
From: RJM <rmatyi at comcast.net>
To: mathgroup at smc.vnet.net
Subject: [mg41830] [mg41779] Integration of BesselJ[1,z] and BesselJ[0,z]

Hello, I am having problems with the integration of the Bessel function 
of the first kind. If I use the expression for the first order function 
(BesselJ[1,z]), the function itself is just fine, showing the expected 
damped oscillatory behavior starting at (x,y) = (0,0). When integrated 
(Integrate [BesselJ[1, t1], {t1, 0, t}]) the result is again the 
expected result with a damped oscillation converging to +1. However, if 
I do the same using the zero-order function BesselJ[0,z] the starting 
function again looks fine starting at (x,y) = (0,1) with damped 
oscillations -- but when I integrate BesselJ[0,z], the result starts to 
get &quot;noisy&quot; after the fifth local maximum, very noisy 6th 
local maximum, junping to y=0 at the 6th local minimum. After the noisy 
7th local maximum, however, the integral &quot;settles down&quot; to 
the expected damped oscillation converging on +1!! The code to generate 
plots showing this behavior is as follows: &lt;&lt; Graphics`Graphics` 
Table[{e1, BesselJ[1, e1]}, {e1, 0, 50, 0.2}]; ListPlot[%, PlotRange 
-&gt; All, PlotJoined -&gt; True] Integinten[t_] = Integrate 
[BesselJ[1, t1], {t1, 0, t}]; Table[{t, Integinten[t]}, {t, 0, 50, 
0.1}]; ListPlot[%, PlotRange -&gt; All, PlotJoined -&gt; True] 
Table[{e0, BesselJ[0, e0]}, {e0, 0, 50, 0.2}]; ListPlot[%, PlotRange 
-&gt; All, PlotJoined -&gt; True] Integinten[ts_] = Integrate 
[BesselJ[0, t0], {t0, 0, ts}]; Table[{ts, Integinten[ts]}, {ts, 0, 50, 
0.1}]; ListPlot[%, PlotRange -&gt; All, PlotJoined -&gt; True] I have 
run this using version 4.0 under Windows 98 and version 4.2.1 under 
Windows 2000 with nominally identical results. Any explanations on this 
strange behavior or a proposed fix would be appreciated. Regards, Rich 
Matyi 


  • Prev by Date: RE: For[] command in Show[] function
  • Next by Date: Re: For[] command in Show[] function
  • Previous by thread: Re: Integration of BesselJ[1,z] and BesselJ[0,z]
  • Next by thread: Quick "Random[]" question