MathGroup Archive 2002

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

Search the Archive

Re: ALL roots of non-polynomial equation

  • To: mathgroup at smc.vnet.net
  • Subject: [mg35956] Re: ALL roots of non-polynomial equation
  • From: Selwyn Hollis <slhollis at earthlink.net>
  • Date: Fri, 9 Aug 2002 05:18:04 -0400 (EDT)
  • References: <aitgk4$cr3$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Mihajlo,

Here's a little program that works fairly well. It detects sign changes 
over a mesh of points to determine initial guesses for FindRoot. The 
"res" parameter is the mesh size.

allRoots[fn_, {x_, a_, b_}, res_] := FindRoot[fn, {x,#}]& /@
    Module[{meshpoints = Table[x, {x,a,b,res}], vals},
     vals = fn /. x->meshpoints;
     meshpoints[[Flatten[Position[Drop[vals*RotateRight[vals], 1],
      _?(NonPositive[#]&)]]]] + .5*res]

If the mesh isn't fine enough, some roots will be missed. For example,

    allRoots[Sin[3x^2]-.3x, {x, 0, 4}, .1]

doesn't give all the roots in the interval, but this does:

    allRoots[Sin[3x^2]-.3x, {x, 0, 4}, .01]

---
Selwyn Hollis
slhollis at mac.com



Mihajlo Vanevic wrote:
> Can Mathematica find (localize) ALL roots of non-polynomial equation
> 
> eq[x]==0
> 
> on a given segment x \in [a,b],  a,b=Real??
> 
> (for example  Sin[x]==0, for   0.1<x<10.1 Pi )
> 
> 
> 
> 
> 


  • Prev by Date: Re: One to the power Infinity
  • Next by Date: Re: Problems with ToString[]
  • Previous by thread: ALL roots of non-polynomial equation
  • Next by thread: RE: ALL roots of non-polynomial equation