Re: Debug of FindRoot
- To: mathgroup at smc.vnet.net
- Subject: [mg78906] Re: [mg78871] Debug of FindRoot
- From: DrMajorBob <drmajorbob at bigfoot.com>
- Date: Thu, 12 Jul 2007 05:23:41 -0400 (EDT)
- References: <13498482.1184172901724.JavaMail.root@m35>
- Reply-to: drmajorbob at bigfoot.com
Where the derivative is large, you need a better starting point... especially when there are discontinuities. For some of your starting points, FindRoot did a secant step that took it into the wrong region, so naturally, it found the wrong root. Bi = 0.5; saved = {}; xvalues[{x_, y_}] := AppendTo[saved, x] ClickPane[ Plot[{BesselJ[0, z]/BesselJ[1, z], z/Bi}, {z, 0.001, 12}], xvalues] Click near the intersections (careful to stay on the correct side of the nearest discontinuity), then saved {0.925933, 4.02841, 7.15494, 10.2815} FindRoot[BesselJ[0, z]/BesselJ[1, z] == z/Bi, {z, #}] & /@ saved {{z -> 0.940771}, {z -> 3.95937}, {z -> 7.08638}, {z -> 10.2225}} Bobby On Wed, 11 Jul 2007 05:20:24 -0500, Miguel <misvrne at gmail.com> wrote: > To resolve one of the heat equations it is necesary to calculate the > solution of z for BesselJ[0,z]/BesselJ[1,z]==z/Bi, where Bi is the > Biot number (equal to 0.5, for example). > > 1.- Plot[{BesselJ[0,z]/BesselJ[1,z],z/Bi},{z,0.001,12}]. > >> From this plot I deduce the ranges, more or less, {1,4,7,10}. > > 2.- FindRoot[BesselJ[0,z]/BesselJ[1,z]==z/Bi,{z,#}]&/@{1,4,7,10} > {{z->0.940771},{z->3.95937},{z->0.940771},{z->3.95937}} > > I dont understand the reason. With others differents intervals it > works fine. > > > -- DrMajorBob at bigfoot.com