MathGroup Archive 2002

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

Search the Archive

RE: List, FindRoot, Bessel

  • To: mathgroup at smc.vnet.net
  • Subject: [mg33643] RE: [mg33628] List, FindRoot, Bessel
  • From: "Wolf, Hartmut" <Hartmut.Wolf at t-systems.com>
  • Date: Thu, 4 Apr 2002 19:40:05 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

> -----Original Message-----
> From: Riadh Alimi [mailto:alimir3 at cti.ecp.fr]
To: mathgroup at smc.vnet.net
> Sent: Thursday, April 04, 2002 1:09 AM
> To: mathgroup at smc.vnet.net
> Subject: [mg33643] [mg33628] List, FindRoot, Bessel
> 
> 
> Hi !
> 
> I'm trying to find the first n roots of an equation involving Bessel
> Functions and to create a List of them.
> 
> The best thing I find so far is :
> n = 10;
> For[i = 0, i < n,
>   Print[FindRoot[- k BesselJ[1, k] + 30 BesselJ[0, k] == 0, {k,
>         2.32 + i Pi}]];
>   i++]
> 
> And the result I get is :
> 
> {k->3.2}
> {k->5.2}
> {k->8.3}
> ....
> 
> Does anyone know what {k->3.2} means ? And how I could get 
> only the value
> 3.2 instead of {k->3.2} in order to create a list?
> 
> Thank you
> 
> 
> 
Riadh,

with the expression ...

In[4]:= sols = Function[i, 
      FindRoot[-k BesselJ[1, k] + 30 BesselJ[0, k] == 0, {k, 2.32 + i Pi}]]
/@
     Range[0, 9]

Out[4]=
{{k -> 2.32614}, {k -> 5.34098}, {k -> 8.37707}, {k -> 11.4221}, {k -> 
      14.4748}, {k -> 17.5348}, {k -> 20.602}, {k -> 23.6762}, {k -> 
      26.7568}, {k -> 29.8435}}

... you get your solutions as a list of replacement rules. A list of values
then simply is attained by:

In[5]:= k /. sols

However, quite often it is more convenient to use the rules, e.g. in

In[6]:=
Plot[-k BesselJ[1, k] + 30 BesselJ[0, k], {k, 0, 12\[Pi]}, 
  Epilog -> {Hue[0], PointSize[.01], Point[{k, 0}] /. sols}]


--
Hartmut



  • Prev by Date: RE: List, FindRoot, Bessel
  • Next by Date: Re: problems with ContourPlot
  • Previous by thread: RE: List, FindRoot, Bessel
  • Next by thread: Re: List, FindRoot, Bessel