MathGroup Archive 2007

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

Search the Archive

problem using Ersek's RootSearch

  • To: mathgroup at smc.vnet.net
  • Subject: [mg80159] problem using Ersek's RootSearch
  • From: "Tim Birks" <pystab at hotmail.com>
  • Date: Tue, 14 Aug 2007 06:55:33 -0400 (EDT)
  • Organization: School of Physics, University of Bath, UK

I have downloaded the RootSearch package by Ted Ersek from MathSource
http://library.wolfram.com/infocenter/MathSource/4482/
and it looks great. I could use it to greatly improve much of what I do with 
Mathematica. Unfortunately, it doesn't work consistently for reasons that 
seem to have nothing to do with the quality of the algorithm.

Here's an example, following installation of the package and starting my 
notebook with
Needs["Ersek`RootSearch`"]

I define a function f[x] in one of a number of ways, all of which are 
mathematically the same, and then plot the function and (attempt to) find 
the roots with
Plot[f[x], {x, -5, 5}]
RootSearch[f[x] == 0, {x, -5, 5}]

So, here are two definitions of f[x] that fail:
f[x_] := Module[{p},
p = x^2;
Return[If[x > 0., Cos[p], Cos[p]]]
];

(I shan't attempt to transcribe the error message but the output is $Failed) 
and
f[x_] := Module[{p},
p = x;
Return[If[x > 0., Cos[p^2], Cos[p^2]]]
];


(the output is an empty list), and another two that succeed, giving a list 
of 16 replacement rules for x as expected (and thus showing that the 
RootSearch algorithm isn't the problem):
f[x_] := Module[{p},
p = x;
Return[If[x > 0., Cos[x^2], Cos[x^2]]]
];

and
f[x_] := Module[{p},
p = x^2;
Return[Cos[p]]
];


In all 4 cases the function plots OK. Replacing RootSearch with FindRoot in 
all 4 cases returns a single solution without reporting an error. I'm 
running version 6.0.1.0 in Windows XP.

I really don't see the pattern in which cases works and which doesn't, other 
than a general tendency to fall over the more complications I put into the 
definition. I know that if I really just needed the roots of Cos[x^2] I 
could use much better-written functions and the use of p is redundant, but 
I'm using the above definitions to represent the more complicated functions 
that I really am interested in.

Any clues as to what's happening and how it can be fixed?

(Thanks BTW to all who have answered my previous questions, your comments 
have been very useful.)

T




  • Prev by Date: RE: Re: question in mathematica
  • Next by Date: Re: Drawing Potatoes and a Problem with Piecewise
  • Previous by thread: Matheamatica 6 + Dual G5 = highly unstable??
  • Next by thread: Re: problem using Ersek's RootSearch