Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

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

Search the Archive

Re: problem using Ersek's RootSearch

  • To: mathgroup at smc.vnet.net
  • Subject: [mg80294] Re: problem using Ersek's RootSearch
  • From: "Tim Birks" <pystab at hotmail.com>
  • Date: Thu, 16 Aug 2007 07:25:31 -0400 (EDT)
  • Organization: School of Physics, University of Bath, UK
  • References: <f9uegi$bci$1@smc.vnet.net>

"Bill Rowe" <readnewsciv at sbcglobal.net> wrote in message 
news:f9uegi$bci$1 at smc.vnet.net...
> On 8/14/07 at 6:55 AM, pystab at hotmail.com (Tim Birks) wrote:

>>f[x_] := Module[{p},
>>p = x^2;
>>Return[If[x > 0., Cos[p], Cos[p]]]
>>];
>
> This code is needlessly complex. There is no need for the local
> variable p nor a need for Module. I assume this is a toy example
> since the result of this code is will be no different than
>
> f[x_]:=Cos[x^2]

Indeed, this was a cut-down version of something more complicated. I guess 
you missed the part where I said so.

> Assuming you are trying to define a piecewise continuous
> function to work with RootSearch or other Mathematica commands,
> probably the best choice is to use the command Piecewise which
> seems to work fine with RootSearch. That is:
>
> In[10]:= << Enhancements`RootSearch`;
>          f = Piecewise[{{Cos[x^2], x > 0}, {Cos[x^2], x <= 0}}];
>
> In[12]:= RootSearch[f == 0, {x, -5, 5}]
>
> Out[12]= {{x->-4.85406},{x->-4.51889},{x->-4.15677},{x->-3.75994},{x->\
> -3.31596},{x->-2.8025},{x->-2.1708},{x->-1.25331},{x->1.25331},{x->2.\
> 1708},{x->2.8025},{x->3.31596},{x->3.75994},{x->4.15677},{x->4.51889},\
> {x->4.85406}}

Your suggestion also works well for the functions I'm really interested in, 
so many thanks for a practical solution to my problem!

However, as is often my experience with Mathematica, I now have a working 
method without really understanding why it works and why the previous 
attempt doesn't. What's wrong with defining a function using If? Is the 
reason obvious to those in the know, or is it hocus pocus?

T.




  • Prev by Date: Questions about InputField
  • Next by Date: Re: Extracting terms of a multivariate polynomial order by order
  • Previous by thread: Re: problem using Ersek's RootSearch
  • Next by thread: Re: problem using Ersek's RootSearch